Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

ffmpeg and media sdk

Jayram_M_
Beginner
864 Views
My current system:
***
OS: Ubuntu Linux  14.04 with kernel 3.14.5-MSSr6 #1 SMP.
Hardware: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz
***
 
1) I managed to complete the detailed instruction for installing intel media sdk on generic Linux OS.
I followed the instruction given in 
https://ffmpeg.org/pipermail/ffmpeg-user/2015-October/028761.html
https://software.intel.com/en-us/articles/how-to-setup-media-server-studio-on-secondary-os-of-linux
- All sample_encode works with the media sdk
 
2) I also compiled the latest ffmpeg from github following the procedure presented in 
https://ffmpeg.org/pipermail/ffmpeg-user/2015-October/028761.html
 
3) I was testing compression of video camera feed using the command

>> /opt/ffmpeg_qsv/bin/ffmpeg -f v4l2 -framerate 30 -video_size 640x480 -i /dev/video0 -c:v h264_qsv -b:v 2000k out.mp4 -loglevel 1000000
 
I got the following error:

[h264_qsv @ 0x2e327e0] Error initializing an internal MFX session
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
 
Things that I tried:
1) ensure user is part of video group
2) Run the command with sudo and su
3) export LD_LIBRARY_PATH (export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/mediasdk/lib64)
4) add ld.so.conf
/etc/ld.so.conf.d/intel-mediasdk.conf -> /opt/intel/mediasdk/lib64
5) ldconfig -p -N | grep intel.mediasdk
    libmfxsw64.so (libc6,x86-64) => /opt/intel/mediasdk/lib64/libmfxsw64.so
    libmfxhw64.so (libc6,x86-64) => /opt/intel/mediasdk/lib64/libmfxhw64.so

6) Testing with a sample yuv file instead of camera feed got the same error
 

Please see the detailed log attached.

 
Any help to proceed next would be appreciated.
 
Regards,
Jay
0 Kudos
2 Replies
Surbhi_M_Intel
Employee
864 Views

Hi Jay, 

We have recently created a white paper on this topic i.e. configuring QSV in ffmpeg on Intel hardware which is what you are trying to set up. Your hardware seems to be supported Intel Media Server Studio and you have verified using samples, coming to set up ffmpeg and test, will recommend you to go through this paper - http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/quicksync-video-ffmpeg-install-valid.pdf 
Also, it's better to start your test with a local file than a stream captured from camera, if it's work fine, move to stream captured from camera. 

Let us know if after following the white paper you still come across any issue. 

Thanks,
Surbhi

0 Kudos
Jayram_M_
Beginner
864 Views

Hi Surbhi,

Thanks for the link to the paper. The instruction that I followed is pretty much similar. Also, I tested with a local file and it generated the same error.

Here is the command:

/opt/ffmpeg_qsv/bin/ffmpeg -y -i ~/software/MediaServerStudioEssentials2016/MediaSamples_Linux_2016_bin/content/test_stream.264 -vcodec h264_qsv -acodec copy -b:v 8000k ~/out.mp4

The stdout from the run is shown below:

ffmpeg version n3.0-3-gb80083a Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
  configuration: --disable-shared --enable-static --enable-gpl --enable-nonfree --enable-fontconfig --enable-libfaac --enable-libfreetype --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-version3 --enable-ffplay --disable-doc --disable-ffserver --enable-pthreads --enable-filters --enable-libvorbis --enable-libtheora --enable-runtime-cpudetect --enable-libass --enable-bzlib --enable-zlib --prefix=/opt/ffmpeg_qsv/ --enable-libmfx
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[h264 @ 0x3bb1540] Increasing reorder buffer to 1
Input #0, h264, from '/home/jayram/software/MediaServerStudioEssentials2016/MediaSamples_Linux_2016_bin/content/test_stream.264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (High), yuv420p, 176x96 [SAR 1:1 DAR 11:6], 30 fps, 30 tbr, 1200k tbn, 60 tbc
[h264_qsv @ 0x3bedf60] Error initializing an internal MFX session
Output #0, mp4, to '/home/jayram/out.mp4':
    Stream #0:0: Video: h264, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 30 fps
    Metadata:
      encoder         : Lavc57.24.102 h264_qsv
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Like before, I got the same error "Error initializing an internal MFX session".

I followed the instruction given in https://software.intel.com/en-us/articles/how-to-setup-media-server-studio-on-secondary-os-of-linux for installing the libva, libdrm and libmfx from the mediasdk/opensource folder. This process is not described in the document that you shared.

Regards, Jay

 

0 Kudos
Reply