Quantcast
Channel: Intel® Software - Media
Viewing all 2185 articles
Browse latest View live

Valgrind shows memory leak in Simple_decode/Transcode . on NUC(D54250WYKH) machine

$
0
0

Hi All,

I  am working with  one of the H264 stream available at http://download.openbricks.org/sample/H264/big_buck_bunny_480p_H264_AAC_25fps_1800K_short.MP4/  and used  Elecard Software to  extract H264 stream.

I used Valgrind  for Decode and Transcode and seeing many occurrences  of Invalid read of size 4/ Invalid write of size 8. Also significant number of bytes are lost.

Valgrind Commad- valgrind  --leak-check=full --show-leak-kinds=all  --log-file=/tmp/ValgrndDecode.txt ...

I have attached Valgrind log for decode and Transcode. Please refer them for more details.

My system config-

$ uname -a

>>Linux NUC 3.10.0-229.1.2.39163.MSSr4.el7.centos.x86_64

CentOs Version 

$ cat /etc/centos-release 

>>CentOS Linux release 7.1.1503 (Core)

 

NUC machine-NUC(D54250WYKH) machine

           >> MSDK version --  MediaServerStudioEssentials2015R6

Regards,

Sumit Jha

 

 

 


Intel MSS R5 vs R6 transcoding test result

$
0
0

Hi Sir:

We use Artesyn PCIE-7207 to do the transcoding, the attached file is R5 vs R6 test result.

We transcode 1x 1080p stream to 1, 2, 5, or 10 x 720p, 480p, 240p stream.

The attached file is MSS R5 & R6 test result.

We are wondering why R6 CPU idle % is quite low (transcode 1080p stream to 10 x 720, 480p or 240p stream) 

Please see row 6 CPU IDLE %, Transcode 1 x 1080p stream to 10 x 720 stream, cpu idle percentage is 0.9%, quite low. (R5 test result is 46.4%)

Would you mind let me know what's the difference between Intel MSS R5 & R6, R6 support any new functions or codec?

Thanks.

Marvin

 

Not able to transcode audio stream

$
0
0

Hello,

I am using Intel INDE 2015 Professional Edition and Intel Media Server Studio Professional Edition. I have downloaded sample tutorial mediasdk-tutorials-0.0.3 from

https://software.intel.com/en-us/media-client-solutions-support/training

System Specifications:

  • Intel Core i7-4790 CPU @ 3.90GHz
  • 8 GB RAM
  • Intel HD Graphics 4600
  • Windows 7 OS

I am running simple_transcode_opaque_async tutorial to transcode 1080i stream without audio.

Stream Specifications:

  • Codec: H.264
  • Size: 3.67 GB
  • Resolution: 1920x1080

Above stream is successfully transcoded and generates the output stream.

Now I want to know whether I am able to transcode h264 video stream with audio?

Input Stream Specifications:

  • Video codec: h264
  • Audio Codec: ac3
  • Size: 3.82 GB
  • Resolution: 1920x1080

Will I be able to transcode video with audio stream?

Thanks and Regards,

Minoli

 

 

Machine and application hang when we stop or start H264 Encoding

$
0
0

Hello,

Earlier we are using Intel Media SDK 2013 and driver of version 10.18.10.3496. With this version of driver, recording/encoding in our  application ( h264 - 1080i50 format and mpeg - 720i50) working OK.

But if we install newer version of driver then our application hang when we start or stop recording/encoding. Sometime encoding not started after we start and stop encoding for 10-15 times.

Also After updating Media  SDK to 2014 R2 Client  and updating driver to ver 10.18.14.4264, then also I am facing same problem.

I attach my system log.

Regards

Parag Gandhi

AttachmentSize
DownloadSystem Info.jpg150.62 KB

[Android] arm64-v8a support

$
0
0

Top modern devices (e.g. Samsung Galaxy S6) use arm64-v8a architecture. There are no *.so libs built for it. Please, compile arm64-v8a libs

How to transcode Audio Stream

$
0
0

Hello,

I have installed professional edition(trial period) of both Intel INDE and Intel MSS which supports audio plugin.

Now can anyone suggest a sample tutorial that shows how to transcode audio.

I have attached result of mediasdk_sys_analyzer.

Thanks and Regards,

Minoli

Encode and Decode Audio

$
0
0

Hi

I am working on Screen Capture and Encode it (Screen Capture) to h264. All this is working fine. Now i want include Audio in this.

Guide me how to add Audio to Encode and Decode it with Screen Capture i.e., Audio that is running at the time of screen capture(i.e., Screen Capture when the VLC player is playing vedio file with it's audio) and also Audio of Mike.

Till now Encoding of Screen Capture into h264 is working fine.

Also, if there any sample_Code for Audio encoding and decoding then provide me please.

 

Help me in adding audio Encoding/Decoding in it.

 

Thank you

How can we add our biterate control algorithm to msdk?

$
0
0

We want encoding 30 programs into a H.264 DVB stream (constant biterate such as 38Mbps). The statistical multiplexing bitrate control algorithm is better for it. The biterate of each program varies with contents (VBR) and the sum of total biterates is constant (CBR). 30 programs share the constant biterate and each program can borrow or loan its biterate to others at real time.

 If media skd is open source,  we can modify lookahead algorithm to adding look arround algorithm( to see other programs bitrate requirement at real time) to achieve stastistical multiplexing encoding for DVB TS.

 

 


Media SDK and OpenSSL

H264 Decode artifacts in Media Foundation for HD resolution

$
0
0

 

We are observing artifacts in HD(1920x1080) h.264 videos, for first few frames (around initial 8-10 frames, they have some black patches as if some error concealment applied). This issue is not observed with any other resolution.

Test topology is as below:

File source --> Intel Hardware H264 decoder MFT --> Custom MFT to do Video Filter -> Intel Hardware H264 Encoder->MP4 Sink

In order to fetch uncompressed video buffers i.e., decoded frames, we used the suggested methods in: https://msdn.microsoft.com/en-us/library/windows/desktop/aa473821(v=vs.85).aspx

 

This issue is observed particularly when we use the best fetching method (use the underlying Direct3D surface). No artifacts are observed, if other fetching methods are used. Is this behavior known? Is it a driver issue or might it be something related to use of the Direct3D surface method?

 

This issue is observed when using the Intel drivers 4251, 4264 and 4279 on window8.1

 

Media SDK for NUC -Intel(R) Pentium(R) CPU N3700 @ 1.60GHz

$
0
0

Hi All,

I have tried to run sample examples on Media SDK_R6 on  NUC-Intel(R) Pentium(R) CPU  N3700  @ 1.60GHz. It was giving error. Even vainfo was not working. From my previous query at this forum, I got to know that M-SDK  is not supporting Pentium processor.

I heard, that MediaSDK -R7 is about to come. So, can  you plz tell me that this SDK_R7 will be supported on  NUC- Intel(R) Pentium(R) CPU  N3700  @ 1.60GHz or not.

Error I am getting with R6/7 for simple_session ( from tutorials) is as follows-

Program received signal SIGILL, Illegal instruction.
0x00007ffff5f2d867 in ?? () from /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.17
Missing separate debuginfos, use: debuginfo-install intel-linux-media-16.4.3-44985.el7.x86_64
(gdb) bt
#0  0x00007ffff5f2d867 in ?? () from /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.17
#1  0x00007ffff5c557f3 in ?? () from /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.17
#2  0x00007ffff5ac6c09 in ?? () from /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.17
#3  0x00007ffff7dea4e3 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#4  0x00007ffff7deeb04 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#5  0x00007ffff7dea2f4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#6  0x00007ffff7dee21b in _dl_open () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff739a02b in dlopen_doit () from /usr/lib64/libdl.so.2
#8  0x00007ffff7dea2f4 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff739a62d in _dlerror_run () from /usr/lib64/libdl.so.2
#10 0x00007ffff739a0c1 in dlopen@@GLIBC_2.2.5 () from /usr/lib64/libdl.so.2
#11 0x000000000040b0c3 in MFX_DISP_HANDLE::LoadSelectedDLL(char const*, eMfxImplType, int, int, mfxInitParam&) ()
#12 0x0000000000408905 in MFXInitEx ()
#13 0x00000000004099db in MFXInit ()
#14 0x00000000004026d2 in MFXVideoSession::Init (this=0x7fffffffe210, impl=3, ver=0x7fffffffdf70) at /opt/intel/mediasdk/include/mfxvideo++.h:45
#15 0x0000000000403585 in Initialize (impl=3, ver=..., pSession=0x7fffffffe210, pmfxAllocator=0x0, bCreateSharedHandles=false)
    at ../common/common_utils_linux.cpp:28
#16 0x000000000040251b in main (argc=1, argv=0x7fffffffe328) at src/simple_session.cpp:47

 

Regards,

Sumit Jha

Video Pro Analyzer: a bug (analysis of H.264 stream)

$
0
0

It seems that indexing of the non-zero coefficients and sign flags is not right when a block is analyzed (H.264): in all cases the last non-zero coefficient is skipped in the analysis pane, and the other non-zero coefficients are counted in a straight forward way without skipping the non-zero coefficients as it should be according to section  7.3.5.3.3 Residual block CABAC syntax.

Here is an excerpt:

373        145        coded_block_flag             1

257        145        significant_coeff_flag[0]               1

304        291        last_significant_coeff_flag[0]      0

292        242        significant_coeff_flag[1]               1

380        181        last_significant_coeff_flag[1]      0

476        362        significant_coeff_flag[2]               0

284        56           significant_coeff_flag[3]               0

368        112        significant_coeff_flag[4]               0

402        224        significant_coeff_flag[5]               0

466        448        significant_coeff_flag[6]               1

376        305        last_significant_coeff_flag[6]      1

270        128        coeff_abs_level_minus1[2]           0  (indices should be 6, 1, 0)

257        128        coeff_sign_flag[2]           0

257        256        coeff_abs_level_minus1[1]           4

374        225        coeff_sign_flag[1]           1

374        76           coeff_abs_level_minus1[0]           0

504        152        coeff_sign_flag[0]           0

question about install mediaseerverstudio

$
0
0

hello Intel-giant

   I have several questions as below, please help to clarify. Thanks

   Q1.   I try to install mediaserverstudio with R7 on linux, And I found the windows link is MediaServerStudioessentials2015r7.exe,

            but the linux link is mediaserverstudioessentials2015r6.tar.gz. Is there something wrong with the file on website ??

    Q2.  I referred to the URL(https://software.intel.com/en-us/articles/how-to-setup-media-server-stud...),

            and download MSS R6 for linux, When I go to the following step, I didn't find the install_media_ubuntu.sh but install_media.sh. Is there

            some wrong with the data on Website??

4. How to setup MSS on Ubuntu* 14.04 LTB

4.1 Install Generic driver with script install_media_ubuntu.sh instead of install_media.sh

[root@host] # ./install_media_ubuntu.sh      ## refer to 9.1 in the document

 

   

 

Vaapi API based decoder on NUC -Intel(R) Pentium(R) CPU N3700

$
0
0

HI All,

I am posting this query here as I didn't find any separate forum for Vaapi based decode/encoders.

Actually, i got a reply form this forum  that Intel Media SDK is not supported for NUC -Intel(R) Pentium(R) CPU N3700.

So, I have taken libva 1.6, Kernel 4.2, vaaps-driver  from 

https://01.org/linuxgraphics/downloads/2015q2-intel-graphics-stack-release

MY vainfo-

libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.1)
vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 1.6.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD

I tried to  developed a decoder for only one I-frame using vaapi API based on this link.

http://cgit.freedesktop.org/libva/tree/test/decode/mpeg2vldemo.cpp

But my output is not coming proper. I am seeing blocky patches in output yuv...

Regards,

Sumit Jha

 

 

 

 

 

 

32-byte alignment for HEVC

$
0
0

As described in the "How to run Media SDK samples on Skylake" post, at https://software.intel.com/en-us/forums/intel-media-sdk/topic/593838 , it is necessary to use 32-byte alignment for both the width and height when encoding using HEVC.  Is there an expectation that this requirement will be relaxed in the future?  This is a bit of a pain, since if we consider 720p, a frequently used progressive video format, a 720p video frame can be used unaltered with H.264 but the height must be aligned to 736 with HEVC, requiring the creation of an additional buffer.

Also, related to this, the following code in pipeline_encode.cpp pertains to HEVC:

    // In case of HEVC when height and/or width divided with 8 but not divided with 16
    // add extended parameter to increase performance
    if ( ( !((m_mfxEncParams.mfx.FrameInfo.CropW & 15 ) ^ 8 ) ||
           !((m_mfxEncParams.mfx.FrameInfo.CropH & 15 ) ^ 8 ) ) &&
             (m_mfxEncParams.mfx.CodecId == MFX_CODEC_HEVC) )
    {
        m_ExtHEVCParam.PicWidthInLumaSamples = m_mfxEncParams.mfx.FrameInfo.CropW;
        m_ExtHEVCParam.PicHeightInLumaSamples = m_mfxEncParams.mfx.FrameInfo.CropH;
        m_EncExtParams.push_back((mfxExtBuffer*)&m_ExtHEVCParam);
    }

This code, however, preexisted the change described in the "How to run Media SDK samples on Skylake" post.  Is this code snippet still relevant for Skylake HW HEVC encoding?


Blurred Screens During Decoding With The Media SDK

$
0
0

Hi everyone.

I am using the Intel Media SDK to decode a 4K-pixel video, for a live broadcast application.
The video has a 19fps frame rate and 10Mbps bit rate, its exact resolution is 4000 x 3000 pixels.

When the application is decoding 12 of this video simultaneously, the video screens are all blurred.
Through GPU-Z, I see the GPU load is lower than 40%, and about 1.2GB graphics memory has been used.
Well when only 10 of this video are being played at the same time, everything is almost normal.

My processor is Celeron 1037U, the system memory 4GB, 1600MHz.
The system is a 64-bit Windows 7. I have installed the newest graphics driver, which is released in Sep 2015.

I tried disabling the code calling MFXVideoDECODE_DecodeFrameAsync() for some of the decoding channels,
and when I did that, the other channels did not show blurred screens again.

Can this be categorized as a hardware performance bottleneck issue? Or is some software probably not optimized correctly?

Thanks!

Multi-channel transcoding questions

$
0
0

Greetings,

So I got my multi-channel video surveillance system running. Below is what it looks like, where each channel is an MSDKThread and an MFX session. 

                             stage 0           stage 1                  stage 2                       stage 3                     stage 4                         stage 5
Channel 0:        Bit-stream file -> Decode -> Video Pre-processing -> Activity detection -> (if detected) Encode -> Output bit-stream file
                ...
Channel (N-1):  Bit-stream file -> Decode -> Video Pre-processing -> Activity detection -> (if detected) Encode -> Output bit-stream file

Both the decoders and encoders are MFX_CODEC_AVC and implemented with MSDK calls. Each channel has its own surface frame buffers.

There is one bug that puzzles me. 

In single channel tests, if I test with channel 0, which has activities, the output bit-stream file records the scenes where activities happen, as expected. If I test with channel 1, which has no activity, the output bit-stream file is empty, as expected. 

However, if I test with two channels simultaneously, channel 0's output bit-stream is not identical to that generated in the single channel test. Moreover, channel 1's output-stream file is no longer empty, but contains some seemingly random background.

Unfortunately, the two channels have the same background, so I can't easily tell whether channel 1 falsely records some frames from its own, or from channel 0.

Obviously, I need to test with two channels that have different backgrounds to confirm. But for saving time's sake, I am also posting my questions here: Is it possible, that after stage 1, channel 0's surface frame buffers could somehow get sent to channel 1, or vice versa? If so, what I need to do to prevent this from happening?

Thanks,

Robby

mfx_mft_h264ve_w7_32.dll crash

$
0
0

mfx_mft_h264ve_w7_32.dll will crash when encode stream. I have get the dump files. Why it will crash? Who can help me? Thank you very much!

Skylake HW HEVC encoding too slow to keep up with live video, depending on the frame rate and target usage

$
0
0

I've finally incorporated Skylake HW HEVC encoding and decoding into my software, and it is clear that Skylake HW HEVC encoding isn't fast enough to keep up with live video, depending on the frame rate and target usage.  For example, with 720p59.94, if I use Skylake HW HEVC encoding with a target usage of MFX_TARGETUSAGE_BEST_QUALITY, each SyncOperation() call takes about 17-21 ms to complete.  With a frame rate of 59.94 fps, the time gap between each frame is about 16.6833 ms, so 17-21 ms is too slow to keep up with live video in this case.  If I use HW H.264 encoding on the same system, each SyncOperation() call instead takes about 1.8-2.0 ms.  If I discard every other frame, for an effective frame rate of 29.97 fps, I can get by.  Skylake HW HEVC encoding is also not fast enough to keep up with live 1080i59.94 using the best quality target usage.

However, it is possible to get this to work, if a different target usage is used.  Using data from Concurrency Viewer, I've determined the average times for the call to SyncOperation() for 720p video based on the target usage:

  • Best quality (1): 17-21 ms
  • 2:  16-22 ms
  • 3:  1.5-2.6 ms
  • Balanced (4):  1.5-2.4 ms
  • 5,6:  in between 4 and 7
  • Best speed:  1.3-2.2 ms

I find it suspicious that the SyncOperation() durations for 1-2 and 3-7 are so similar.  Do each of the target usages result in different encoding settings for Skylake HW HEVC encoding, or are there really only 2 target usages that are implemented?

Is there any expectation that the results for target usages 1-2 will improve over time?  Perhaps there are some settings I can change to improve these results when using target usages 1 or 2?

Also, here's information about the system that I used to get these results:

  • Processor:  i5-6600K
  • OS:  64-bit Windows 10
  • Intel graphics driver:  15.40.7.4300
  • Intel Media SDK:  6.0.0.388

I also experienced similar results (that is, not being able to keep up with live video with the best quality target usage) on a similar system with an i7-6700T processor.

Skylake HW HEVC decoding not resilient to data loss

$
0
0

Skylake HW HEVC decoding is, unfortunately, not resilient to data loss (for the Main profile, at least).  With hardware H.264 decoding, since at least 3rd generation Intel Core processors, in case of data loss during decoding (say, due to packet loss in a networking application), at least for the MFX_PROFILE_AVC_HIGH profile, video will usually become slightly garbled, but it is able to recover from this once the data loss stops occurring.  With HEVC, however, once data loss has been encountered, the video becomes garbled and stays garbled.  This is even true if no data loss ever occurs again after the initial data loss, and it is even true when using VBR and changing the bit rate _after_ the data loss, which one might expect would reset the garbled state.  Oftentimes, upon data loss, the decoder outputs a green color that saturates each frame following the data loss--this looks horrible.

Hopefully, this is something that can be addressed in future versions of the drivers and Media SDK.

Viewing all 2185 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>