Jump to content

Confirmed Linux Intel Quick Sync Transcoding


darrenkdean
 Share

Go to solution Solved by robrhedrick,

Recommended Posts

darrenkdean

After a week of Linux testing & more than a dozen server rebuilds, I am happy to report that we have confirmed Intel Quick Sync Transcoding working perfectly in CentOS 7.2.1511, but only in CentOS 7.2.1511.  I am starting this thread in hopes of saving anyone interested in cutting over to a Linux server, the headache, heartache, & time waste going down dead end roads.  The end result is excellent, but it's Linux which is not easy & comes with a host of obstacles.  There will be a great deal of work in Terminal (command line) & you will have to compile a custom FFMpeg to get it working.

 

I would be curious to know if any others have been able to get & confirm Intel Quick Sync Transcoding working well in any other distros?

 

The only successful, stable build we were able to achieve Intel Quick Sync Transcoding on what CentOS 7.2.1511 & only with the included Kernel.  The most current version of CentOS, & the Kernel that CentOS 7.2.1511 will immediately try to update while running updates, we could not get Intel Media Server Studio & the related dependencies to setup correctly.  We had to take great care to run updates while preventing the kernel from upgrading in the process.

 

That's it for now, CentOS 7.2.1511 confirmed working with Intel QSV transcoding.

 

 

594de9629ce70_Capture.png

Edited by darrenkdean
  • Like 1
Link to comment
Share on other sites

mastrmind11

Yeah CentOS and RHEL are the only linux distros that Intel is supporting.  Supposedly Ubuntu 14.04 kernel still supports QSV but who wants to run a 10 yr old distro.

Link to comment
Share on other sites

puithove

Very cool, and nice for you to share for others who might want to set it up.

 

On the other side of things, using Intel's hardware decode/encode is easy via VAAPI.  Essentially no further configuration needed.

Edited by puithove
  • Like 2
Link to comment
Share on other sites

@@darrenkdean, looks like you have removed your post but we tested and verified that CentOS 7 is working fine. Are you all set now? thanks.

Link to comment
Share on other sites

darrenkdean

@@darrenkdean, looks like you have removed your post but we tested and verified that CentOS 7 is working fine. Are you all set now? thanks.

Yes, apologies.  robrhedrick & I have been working on this together for a week or so.  There had been some blocks/limiters placed into the yum.conf file to prevent certain updates.  Once removed, install went through as expected.

Edited by darrenkdean
Link to comment
Share on other sites

darrenkdean

Very cool, and nice for you to share for others who might want to set it up.

 

On the other side of things, using Intel's hardware decode/encode is easy via VAAPI.  Essentially no further configuration needed.

 

I want to double back on this very quickly.  When you say that Intel hardware decode/encode works with VAAPI with no further configuration, are you saying that Intel Quick Sync (specifically) is confirmed 100% working, utilizing the VAAPI option in Emby?  What am I missing?

Link to comment
Share on other sites

puithove

I want to double back on this very quickly.  When you say that Intel hardware decode/encode works with VAAPI with no further configuration, are you saying that Intel Quick Sync (specifically) is confirmed 100% working, utilizing the VAAPI option in Emby?  What am I missing?

 

Yes, that's correct.  VAAPI provides the common interface (API) to do Video Accelleration (VA), and it can use multiple different backends (including Intel's Quick Sync hardware).  I recently updated my server to a Kaby Lake system (previously had Nvidia NVENC going).  All I had to do was swap out the video driver and add my emby user (the user the Emby Server runs under) to the video group so that it has access to the video hardware.  After that, ffmpeg (and therefore Emby) is able to use VAAPI to hardware decode and encode (transcode).

 

No need to install a special kernel, Intel Media Server Studio, etc. that you have to do to get QSV working.

  • Like 1
Link to comment
Share on other sites

  • Solution
robrhedrick

 

After failing miserably with @@darrenkdean with Intel Quicksync on the supposedly supported -yeah right- CentOS Gold images (7.2.1511 and 7.1.1503) I went back to the drawing board. Since @@puithove said vaapi should work out of the box once the drivers are installed, I decided to go back to Ubuntu.

 

I have successfully configured transcoding on Ubuntu server using vaapi with some nuances that are not well documented.

 

For those who are interested:

Hardware:intel nuc i3 d34010wyk (Haswell)

Distributor ID: Ubuntu

Description:    Ubuntu 16.04.2 LTS

Release:        16.04

Codename:       xenial

 

Installation steps

1. install ubuntu server 16.04.2

2. sudo apt-get update && sudo apt upgrade

3. sudo apt-get dist-upgrade

4. sudo apt-get install vainfo

4. reboot for good measure

5. download and install the intel vaapi drivers


sudo dpkg -i intel-graphics-update-tool_2.0.2_amd64.deb

sudo apt-get install -f

    Note: links to the other Ubuntu flavors of the driver package for x64... if you need x86 or other tools, you browse the directories on this site.

    

    Ubuntu 12.04(x64): 


    Ubuntu 12.10(x64):


    Ubuntu 13.04(x64):


    Ubuntu 13.10(x64):


    Ubuntu 14.04(x64):


    Ubuntu 14.10(x64):


    Ubuntu 15.04(x64):


    Ubuntu 15.10(x64):


    Ubuntu 16.04(x64):


    Ubuntu 16.10(x64):


    Ubuntu 17.04(x64):


 

6. add my user account to the video group

sudo usermod -a -G video rob

7. reboot for good measure

 

8. see if the driver is working.

rob@tv:~$ vainfo

error: can't connect to X server! <-- ignore this, not important

libva info: VA-API version 0.39.4

libva info: va_getDriverName() returns 0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so

libva info: Found init function __vaDriverInit_0_39

libva info: va_openDriver() returns 0 <--  :)

vainfo: VA-API version: 0.39 (libva 1.7.3)

vainfo: Driver version: Intel i965 driver for Intel® Haswell Mobile - 1.7.0 <--  :)

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

 

Next I installed emby server...

9. sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/emby/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/emby-server.list"

sudo apt-get update

sudo apt-get install emby-server


 

10. I configured the basic settings in emby and added a tv shows library that I mounted from a network share and let it do a library scan.

11. configure the transcoding settings.

5951338627a50_transcode1.png

12. Add the emby service account to the video group

sudo usermod -a -G video emby

13. restart the emby-server service

sudo service emby-server restart

 

Next I dropped the max stream rate on my profile to 1Mbps to force transcoding.

 

Now the moment of truth, can I stream an episode of Doc McStuffins??

Negatory ghost rider... negatory  :(

 



http://10.40.2.62:8096/emby/videos/db9f051e9372be2089aba232fe5a6357/hls1/main/0.ts?DeviceId=a115e402809fd1477f633bcca08418e04ac02e1b&MediaSourceId=db9f051e9372be2089aba232fe5a6357&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=0&VideoBitrate=808001&AudioBitrate=192000&Level=51&Profile=high&PlaySessionId=f7366b8d88ee4869a2f81c53e73125c2&api_key=a1698c68e32e4da2a0ff33027d832ebc&CopyTimestamps=false&TranscodingMaxAudioChannels=6&EnableSubtitlesInManifest=false&Tag=75cbbd69e9e09c597079f21c093812b4&RequireAvc=true&RequireNonAnamorphic=false&DeInterlace=true&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False

{"Protocol":"File","Id":"db9f051e9372be2089aba232fe5a6357","Path":"/mnt/tv/Doc McStuffins/Season 04/Doc McStuffins - S04E02-03 - First Day of Med School + Stuffy Gets His Scrubs WEBDL-720p.mkv","Type":"Default","Container":"mkv","Name":"720P/H264/AAC","IsRemote":false,"ETag":"75cbbd69e9e09c597079f21c093812b4","RunTimeTicks":14417920000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"SupportsProbing":true,"RequiresLooping":false,"VideoType":"VideoFile","MediaStreams":[{"Codec":"aac","TimeBase":"1/1000","CodecTimeBase":"1/48000","DisplayTitle":"AAC stereo Default","IsInterlaced":false,"ChannelLayout":"stereo","BitRate":192000,"Channels":2,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Profile":"HE-AAC","Type":"Audio","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0,"IsAnamorphic":false},{"Codec":"h264","TimeBase":"1/1000","CodecTimeBase":"1001/48000","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"BitRate":3442628,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":720,"Width":1280,"AverageFrameRate":23.9760246,"RealFrameRate":23.9760246,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":31,"IsAnamorphic":false},{"Codec":"subrip","TimeBase":"1/1000","CodecTimeBase":"0/1","DisplayTitle":"Und Default","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Level":0,"IsAnamorphic":false}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":3634628,"RequiredHttpHeaders":{}}

/var/lib/emby-server/ffmpeg/20170308/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/mnt/tv/Doc McStuffins/Season 04/Doc McStuffins - S04E02-03 - First Day of Med School + Stuffy Gets His Scrubs WEBDL-720p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:1 -map 0:0 -map -0:s -codec:v:0 h264_vaapi -b:v 808001 -maxrate 808001 -bufsize 1616002 -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=404" -copyts -vsync -1 -codec:a:0 copy -copypriorss:a:0 0 -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3 -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 0 -segment_list "/var/lib/emby-server/transcoding-temp/b1898a73930b72ea411dce3264c527f6.m3u8" -y "/var/lib/emby-server/transcoding-temp/b1898a73930b72ea411dce3264c527f6%d.ts"


ffmpeg version N-83692-gb8a7dcbde2-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.1 (Debian 5.4.1-5) 20170205
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
libavutil 55. 47.100 / 55. 47.100
libavcodec 57. 81.100 / 57. 81.100
libavformat 57. 66.102 / 57. 66.102
libavdevice 57. 3.100 / 57. 3.100
libavfilter 6. 74.100 / 6. 74.100
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
[AVHWDeviceContext @ 0x4817340] No VA display found for device: /dev/dri/renderD128.
[vaapi @ 0x312f1e0] Failed to create a VAAPI device


 

wwwwwhyyyyy?!?!?!

 

simple answer: vaapi transcoding on Ubuntu does not work with the ffmpeg that comes with the emby server installation as of the 3.2.20.0 

 

Next steps:

Install ffmpeg from jonathonf/ffmpeg-3 and its dependancies...

1. sudo add-apt-repository ppa:jonathonf/ffmpeg-3

2. sudo apt-get update && sudo apt install ffmpeg libav-tools x264 x265

3. sudo apt update && sudo apt upgrade

Next lets verify which version is installed

root@tv:~# sudo apt-cache policy ffmpeg

ffmpeg:

  Installed: 7:3.3.2-1~16.04.york1

  Candidate: 7:3.3.2-1~16.04.york1

  Version table:

 *** 7:3.3.2-1~16.04.york1 500

        500 http://ppa.launchpad.net/jonathonf/ffmpeg-3/ubuntu xenial/main amd64 Packages

        100 /var/lib/dpkg/status

     7:2.8.11-0ubuntu0.16.04.1 500

        500 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages

        500 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages

     7:2.8.6-1ubuntu2 500

        500 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

 

looks good...

 

root@tv:~# ffmpeg -version

ffmpeg version 3.3.2-1~16.04.york1 Copyright © 2000-2017 the FFmpeg developers

built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609

configuration: --prefix=/usr --extra-version='1~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared

...

 

lets get the path to ffmpeg

root@tv:~# which ffmpeg

/usr/bin/ffmpeg

 


...a side note... this is the 2nd time I am writing this... when I got to this point last time, I accidentally clicked the x instead of a new tab. Lesson: compose the message in Notepad++ then paste into the thread.


 

4. update the FFmpeg path to use the path to the downloaded version.

595134fca52b8_transcode2.png

 

5. restart the emby-server service

sudo service emby-server restart

 

Test streaming Friends Season 3 Episode 3

Yahtzee with heavenly bells and all!

 



http://10.40.2.62:8096/emby/videos/b3cad47fa592a9a04ae8471ae3ab7c40/hls1/main/0.ts?DeviceId=a115e402809fd1477f633bcca08418e04ac02e1b&MediaSourceId=b3cad47fa592a9a04ae8471ae3ab7c40&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&VideoBitrate=616001&AudioBitrate=384000&Level=51&Profile=high&PlaySessionId=0c99c8ba72f14fb58f46c6c3afcc1460&api_key=a1698c68e32e4da2a0ff33027d832ebc&CopyTimestamps=false&TranscodingMaxAudioChannels=6&EnableSubtitlesInManifest=false&Tag=7ded1fcbe409e32b5ae26d4ef7966e9a&RequireAvc=true&RequireNonAnamorphic=false&DeInterlace=true&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False

{"Protocol":"File","Id":"b3cad47fa592a9a04ae8471ae3ab7c40","Path":"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv","Type":"Default","Container":"mkv","Name":"720P/H264/AC3","IsRemote":false,"ETag":"7ded1fcbe409e32b5ae26d4ef7966e9a","RunTimeTicks":13683840000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"SupportsProbing":true,"RequiresLooping":false,"VideoType":"VideoFile","MediaStreams":[{"Codec":"h264","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1001/48000","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"BitRate":9769175,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":720,"Width":1280,"AverageFrameRate":23.9760246,"RealFrameRate":23.9760246,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":40,"IsAnamorphic":false},{"Codec":"ac3","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1/48000","DisplayTitle":"Eng Dolby Digital 5.1 Default","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":640000,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0,"IsAnamorphic":false},{"Codec":"subrip","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"0/1","DisplayTitle":"Eng Default","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Level":0,"IsAnamorphic":false}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":10409175,"RequiredHttpHeaders":{}}

/usr/bin/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -b:v 616001 -maxrate 616001 -bufsize 1232002 -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=404" -copyts -vsync -1 -codec:a:0 aac -strict experimental -ac 6 -ab 384000 -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3 -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 0 -segment_list "/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8" -y "/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949%d.ts"


ffmpeg version 3.3.2-1~16.04.york1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --prefix=/usr --extra-version='1~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Input #0, matroska,webm, from 'file:/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.0
creation_time : 1970-01-01T00:00:01.357173Z
Duration: 00:22:48.38, start: 0.000000, bitrate: 9769 kb/s
Chapter #0:0: start 0.000000, end 67.359000
Metadata:
title : 00:00:00.000
Chapter #0:1: start 67.359000, end 751.668000
Metadata:
title : 00:01:07.359
Chapter #0:2: start 751.668000, end 1295.294000
Metadata:
title : 00:12:31.668
Chapter #0:3: start 1295.294000, end 1368.384000
Metadata:
title : 00:21:35.294
Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
Stream #0:2(eng): Subtitle: subrip (default)
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39490.ts' for writing
Output #0, segment, to '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949%d.ts':
Metadata:
encoder : Lavf57.71.100
Stream #0:0: Video: h264 (h264_vaapi) (High), vaapi_vld, 720x404 [SAR 1:1 DAR 180:101], q=0-31, 616 kb/s, 23.98 fps, 90k tbn, 23.98 tbc (default)
Metadata:
encoder : Lavc57.89.100 h264_vaapi
Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp, 384 kb/s (default)
Metadata:
encoder : Lavc57.89.100 aac
Unrepairable overflow!
frame= 28 fps=0.0 q=-0.0 size=N/A time=00:00:01.74 bitrate=N/A speed=3.47x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39491.ts' for writing
frame= 90 fps= 90 q=-0.0 size=N/A time=00:00:04.01 bitrate=N/A speed=3.99x
frame= 137 fps= 91 q=-0.0 size=N/A time=00:00:06.10 bitrate=N/A speed=4.04x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39492.ts' for writing
frame= 177 fps= 88 q=-0.0 size=N/A time=00:00:07.78 bitrate=N/A speed=3.86x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39493.ts' for writing
frame= 220 fps= 87 q=-0.0 size=N/A time=00:00:09.57 bitrate=N/A speed= 3.8x
frame= 256 fps= 84 q=-0.0 size=N/A time=00:00:11.05 bitrate=N/A speed=3.65x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39494.ts' for writing
frame= 293 fps= 83 q=-0.0 size=N/A time=00:00:12.52 bitrate=N/A speed=3.54x
frame= 332 fps= 82 q=-0.0 size=N/A time=00:00:14.18 bitrate=N/A speed=3.51x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39495.ts' for writing
frame= 372 fps= 82 q=-0.0 size=N/A time=00:00:15.78 bitrate=N/A speed=3.47x
frame= 413 fps= 82 q=-0.0 size=N/A time=00:00:17.62 bitrate=N/A speed=3.48x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39496.ts' for writing
frame= 449 fps= 81 q=-0.0 size=N/A time=00:00:18.98 bitrate=N/A speed=3.42x
frame= 494 fps= 81 q=-0.0 size=N/A time=00:00:20.88 bitrate=N/A speed=3.44x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39497.ts' for writing
frame= 536 fps= 82 q=-0.0 size=N/A time=00:00:22.63 bitrate=N/A speed=3.45x
frame= 575 fps= 81 q=-0.0 size=N/A time=00:00:24.29 bitrate=N/A speed=3.43x
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39498.ts' for writing


 

To confirm that ffmpeg that comes with the emby server build indeed was not working, I change the ffmpeg path back, restarted the emby-server service and attempted to play the same Friends Season 3 Episode 3...

 

No dice...

 



http://10.40.2.62:8096/emby/videos/b3cad47fa592a9a04ae8471ae3ab7c40/hls1/main/0.ts?DeviceId=a115e402809fd1477f633bcca08418e04ac02e1b&MediaSourceId=b3cad47fa592a9a04ae8471ae3ab7c40&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&VideoBitrate=616001&AudioBitrate=384000&Level=51&Profile=high&PlaySessionId=c783a452e2de463a9166c1e170923800&api_key=a1698c68e32e4da2a0ff33027d832ebc&CopyTimestamps=false&TranscodingMaxAudioChannels=6&EnableSubtitlesInManifest=false&Tag=7ded1fcbe409e32b5ae26d4ef7966e9a&RequireAvc=true&RequireNonAnamorphic=false&DeInterlace=true&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False

{"Protocol":"File","Id":"b3cad47fa592a9a04ae8471ae3ab7c40","Path":"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv","Type":"Default","Container":"mkv","Name":"720P/H264/AC3","IsRemote":false,"ETag":"7ded1fcbe409e32b5ae26d4ef7966e9a","RunTimeTicks":13683840000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"SupportsProbing":true,"RequiresLooping":false,"VideoType":"VideoFile","MediaStreams":[{"Codec":"h264","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1001/48000","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"BitRate":9769175,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":720,"Width":1280,"AverageFrameRate":23.9760246,"RealFrameRate":23.9760246,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":40,"IsAnamorphic":false},{"Codec":"ac3","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1/48000","DisplayTitle":"Eng Dolby Digital 5.1 Default","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":640000,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0,"IsAnamorphic":false},{"Codec":"subrip","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"0/1","DisplayTitle":"Eng Default","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Level":0,"IsAnamorphic":false}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":10409175,"RequiredHttpHeaders":{}}

/var/lib/emby-server/ffmpeg/20170308/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -b:v 616001 -maxrate 616001 -bufsize 1232002 -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=404" -copyts -vsync -1 -codec:a:0 aac -strict experimental -ac 6 -ab 384000 -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3 -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 0 -segment_list "/var/lib/emby-server/transcoding-temp/d59bce0f2bc521596ddeb66cdda044c6.m3u8" -y "/var/lib/emby-server/transcoding-temp/d59bce0f2bc521596ddeb66cdda044c6%d.ts"


ffmpeg version N-83692-gb8a7dcbde2-static http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.1 (Debian 5.4.1-5) 20170205
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
libavutil 55. 47.100 / 55. 47.100
libavcodec 57. 81.100 / 57. 81.100
libavformat 57. 66.102 / 57. 66.102
libavdevice 57. 3.100 / 57. 3.100
libavfilter 6. 74.100 / 6. 74.100
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
[AVHWDeviceContext @ 0x57f7420] No VA display found for device: /dev/dri/renderD128.
[vaapi @ 0x312f1e0] Failed to create a VAAPI device


I hope this saves someone else some frustration. 

Edited by robrhedrick
  • Like 4
Link to comment
Share on other sites

puithove

Ah, some distro-specific niggles.  On Arch, as packaged, we use the distro's ffmpeg, which is built with VAAPI enabled.

 

Glad you got it working, and thanks for sharing the details.

Link to comment
Share on other sites

  • 4 months later...
rathmore

Confirmed. Adding the user, that emby server uses, to the video group worked for me. 

  • asrock J4205-ITX
  • Emby 3.2.36.0
  • Ubuntu server 16.04, kernel 4.4.0
  • VAAPI enabled

transcoding 1080p 

Load is ~ 70% on a single core. Coming from ~ 98% on all cores.
Not bad for an integrated cpu

Will try to transcode 4K later on. Currently using sata300 hdd's etc, simply to try out this setup

Link to comment
Share on other sites

My original thread https://emby.media/community/index.php?/topic/48588-confirmed-linux-intel-quick-sync-transcoding/&do=findComment&comment=461458

 

After failing miserably with @@darrenkdean with Intel Quicksync on the supposedly supported -yeah right- CentOS Gold images (7.2.1511 and 7.1.1503) I went back to the drawing board. Since @@puithove said vaapi should work out of the box once the drivers are installed, I decided to go back to Ubuntu.

 

I have successfully configured transcoding on Ubuntu server using vaapi with some nuances that are not well documented.

 

For those who are interested:

Hardware:intel nuc i3 d34010wyk (Haswell)

Distributor ID: Ubuntu

Description: Ubuntu 16.04.2 LTS

Release: 16.04

Codename: xenial

 

Installation steps

1. install ubuntu server 16.04.2

2. sudo apt-get update && sudo apt upgrade

3. sudo apt-get dist-upgrade

4. sudo apt-get install vainfo

4. reboot for good measure

5. download and install the intel vaapi drivers

wget https://download.01.org/gfx/ubuntu/16.04/main/pool/main/i/intel-graphics-update-tool/intel-graphics-update-tool_2.0.2_amd64.deb

sudo dpkg -i intel-graphics-update-tool_2.0.2_amd64.deb

sudo apt-get install -f

Note: links to the other Ubuntu flavors of the driver package for x64... if you need x86 or other tools, you browse the directories on this site.

 

Ubuntu 12.04(x64):

https://download.01.org/gfx/ubuntu/12.04/main/pool/12.04/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0-0ubuntu1_amd64.deb

Ubuntu 12.10(x64):

https://download.01.org/gfx/ubuntu/12.10/main/pool/12.10/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.1_amd64.deb

Ubuntu 13.04(x64):

https://download.01.org/gfx/ubuntu/13.04/main/pool/13.04/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.2-0intel3_amd64.deb

Ubuntu 13.10(x64):

https://download.01.org/gfx/ubuntu/13.10/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.4-0intel1_amd64.deb

Ubuntu 14.04(x64):

https://download.01.org/gfx/ubuntu/14.04/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.7-0intel1_amd64.deb

Ubuntu 14.10(x64):

https://download.01.org/gfx/ubuntu/14.10/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.1.0-0intel1_amd64.deb

Ubuntu 15.04(x64):

https://download.01.org/gfx/ubuntu/15.04/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.2.0-0intel1_amd64.deb

Ubuntu 15.10(x64):

https://download.01.org/gfx/ubuntu/15.10/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.4.0-0intel1_amd64.deb

Ubuntu 16.04(x64):

https://download.01.org/gfx/ubuntu/16.04/main/pool/main/i/intel-graphics-update-tool/intel-graphics-update-tool_2.0.2_amd64.deb

Ubuntu 16.10(x64):

https://download.01.org/gfx/ubuntu/16.10/main/pool/main/i/intel-graphics-update-tool/intel-graphics-update-tool_2.0.4_amd64.deb

Ubuntu 17.04(x64):

https://download.01.org/gfx/ubuntu/17.04/main/pool/main/i/intel-graphics-update-tool/intel-graphics-update-tool_2.0.5_amd64.deb

 

6. add my user account to the video group

sudo usermod -a -G video rob

7. reboot for good measure

 

8. see if the driver is working.

rob@tv:~$ vainfo

error: can't connect to X server! <-- ignore this, not important

libva info: VA-API version 0.39.4

libva info: va_getDriverName() returns 0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so

libva info: Found init function __vaDriverInit_0_39

libva info: va_openDriver() returns 0 <-- :)

vainfo: VA-API version: 0.39 (libva 1.7.3)

vainfo: Driver version: Intel i965 driver for Intel® Haswell Mobile - 1.7.0 <-- :)

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

 

Next I installed emby server...

9. sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/emby/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/emby-server.list"

sudo apt-get update

sudo apt-get install emby-server

other install flavors: https://software.opensuse.org/download.html?project=home%3Aemby&package=emby-server

 

10. I configured the basic settings in emby and added a tv shows library that I mounted from a network share and let it do a library scan.

11. configure the transcoding settings.

5951338627a50_transcode1.png

12. Add the emby service account to the video group

sudo usermod -a -G video emby

13. restart the emby-server service

sudo service emby-server restart

 

Next I dropped the max stream rate on my profile to 1Mbps to force transcoding.

 

Now the moment of truth, can I stream an episode of Doc McStuffins??

Negatory ghost rider... negatory :(

 

 

http://10.40.2.62:8096/emby/videos/db9f051e9372be2089aba232fe5a6357/hls1/main/0.ts?DeviceId=a115e402809fd1477f633bcca08418e04ac02e1b&MediaSourceId=db9f051e9372be2089aba232fe5a6357&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=0&VideoBitrate=808001&AudioBitrate=192000&Level=51&Profile=high&PlaySessionId=f7366b8d88ee4869a2f81c53e73125c2&api_key=a1698c68e32e4da2a0ff33027d832ebc&CopyTimestamps=false&TranscodingMaxAudioChannels=6&EnableSubtitlesInManifest=false&Tag=75cbbd69e9e09c597079f21c093812b4&RequireAvc=true&RequireNonAnamorphic=false&DeInterlace=true&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False

{"Protocol":"File","Id":"db9f051e9372be2089aba232fe5a6357","Path":"/mnt/tv/Doc McStuffins/Season 04/Doc McStuffins - S04E02-03 - First Day of Med School + Stuffy Gets His Scrubs WEBDL-720p.mkv","Type":"Default","Container":"mkv","Name":"720P/H264/AAC","IsRemote":false,"ETag":"75cbbd69e9e09c597079f21c093812b4","RunTimeTicks":14417920000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"SupportsProbing":true,"RequiresLooping":false,"VideoType":"VideoFile","MediaStreams":[{"Codec":"aac","TimeBase":"1/1000","CodecTimeBase":"1/48000","DisplayTitle":"AAC stereo Default","IsInterlaced":false,"ChannelLayout":"stereo","BitRate":192000,"Channels":2,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Profile":"HE-AAC","Type":"Audio","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0,"IsAnamorphic":false},{"Codec":"h264","TimeBase":"1/1000","CodecTimeBase":"1001/48000","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"BitRate":3442628,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":720,"Width":1280,"AverageFrameRate":23.9760246,"RealFrameRate":23.9760246,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":31,"IsAnamorphic":false},{"Codec":"subrip","TimeBase":"1/1000","CodecTimeBase":"0/1","DisplayTitle":"Und Default","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Level":0,"IsAnamorphic":false}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":3634628,"RequiredHttpHeaders":{}}

/var/lib/emby-server/ffmpeg/20170308/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/mnt/tv/Doc McStuffins/Season 04/Doc McStuffins - S04E02-03 - First Day of Med School + Stuffy Gets His Scrubs WEBDL-720p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:1 -map 0:0 -map -0:s -codec:v:0 h264_vaapi  -b:v 808001 -maxrate 808001 -bufsize 1616002 -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=404" -copyts -vsync -1 -codec:a:0 copy -copypriorss:a:0 0 -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3  -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 0 -segment_list "/var/lib/emby-server/transcoding-temp/b1898a73930b72ea411dce3264c527f6.m3u8" -y "/var/lib/emby-server/transcoding-temp/b1898a73930b72ea411dce3264c527f6%d.ts"


ffmpeg version N-83692-gb8a7dcbde2-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.1 (Debian 5.4.1-5) 20170205
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
  libavutil      55. 47.100 / 55. 47.100
  libavcodec     57. 81.100 / 57. 81.100
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  3.100 / 57.  3.100
  libavfilter     6. 74.100 /  6. 74.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[AVHWDeviceContext @ 0x4817340] No VA display found for device: /dev/dri/renderD128.
[vaapi @ 0x312f1e0] Failed to create a VAAPI device 
wwwwwhyyyyy?!?!?!

 

simple answer: vaapi transcoding on Ubuntu does not work with the ffmpeg that comes with the emby server installation as of the 3.2.20.0

 

Next steps:

Install ffmpeg from jonathonf/ffmpeg-3 and its dependancies...

1. sudo add-apt-repository ppa:jonathonf/ffmpeg-3

2. sudo apt-get update && sudo apt install ffmpeg libav-tools x264 x265

3. sudo apt update && sudo apt upgrade

Next lets verify which version is installed

root@tv:~# sudo apt-cache policy ffmpeg

ffmpeg:

Installed: 7:3.3.2-1~16.04.york1

Candidate: 7:3.3.2-1~16.04.york1

Version table:

*** 7:3.3.2-1~16.04.york1 500

500 http://ppa.launchpad.net/jonathonf/ffmpeg-3/ubuntu xenial/main amd64 Packages

100 /var/lib/dpkg/status

7:2.8.11-0ubuntu0.16.04.1 500

500 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages

500 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages

7:2.8.6-1ubuntu2 500

500 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

 

looks good...

 

root@tv:~# ffmpeg -version

ffmpeg version 3.3.2-1~16.04.york1 Copyright © 2000-2017 the FFmpeg developers

built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609

configuration: --prefix=/usr --extra-version='1~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared

...

 

lets get the path to ffmpeg

root@tv:~# which ffmpeg

/usr/bin/ffmpeg

 

 

4. update the FFmpeg path to use the path to the downloaded version.

595134fca52b8_transcode2.png

 

5. restart the emby-server service

sudo service emby-server restart

 

Test streaming Friends Season 3 Episode 3

Yahtzee with heavenly bells and all!

 

http://10.40.2.62:8096/emby/videos/b3cad47fa592a9a04ae8471ae3ab7c40/hls1/main/0.ts?DeviceId=a115e402809fd1477f633bcca08418e04ac02e1b&MediaSourceId=b3cad47fa592a9a04ae8471ae3ab7c40&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&VideoBitrate=616001&AudioBitrate=384000&Level=51&Profile=high&PlaySessionId=0c99c8ba72f14fb58f46c6c3afcc1460&api_key=a1698c68e32e4da2a0ff33027d832ebc&CopyTimestamps=false&TranscodingMaxAudioChannels=6&EnableSubtitlesInManifest=false&Tag=7ded1fcbe409e32b5ae26d4ef7966e9a&RequireAvc=true&RequireNonAnamorphic=false&DeInterlace=true&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False

{"Protocol":"File","Id":"b3cad47fa592a9a04ae8471ae3ab7c40","Path":"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv","Type":"Default","Container":"mkv","Name":"720P/H264/AC3","IsRemote":false,"ETag":"7ded1fcbe409e32b5ae26d4ef7966e9a","RunTimeTicks":13683840000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"SupportsProbing":true,"RequiresLooping":false,"VideoType":"VideoFile","MediaStreams":[{"Codec":"h264","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1001/48000","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"BitRate":9769175,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":720,"Width":1280,"AverageFrameRate":23.9760246,"RealFrameRate":23.9760246,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":40,"IsAnamorphic":false},{"Codec":"ac3","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1/48000","DisplayTitle":"Eng Dolby Digital 5.1 Default","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":640000,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0,"IsAnamorphic":false},{"Codec":"subrip","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"0/1","DisplayTitle":"Eng Default","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Level":0,"IsAnamorphic":false}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":10409175,"RequiredHttpHeaders":{}}

/usr/bin/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi  -b:v 616001 -maxrate 616001 -bufsize 1232002 -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=404" -copyts -vsync -1 -codec:a:0 aac -strict experimental -ac 6 -ab 384000  -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3  -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 0 -segment_list "/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8" -y "/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949%d.ts"


ffmpeg version 3.3.2-1~16.04.york1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version='1~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Input #0, matroska,webm, from 'file:/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv':
  Metadata:
    encoder         : libebml v1.3.0 + libmatroska v1.4.0
    creation_time   : 1970-01-01T00:00:01.357173Z
  Duration: 00:22:48.38, start: 0.000000, bitrate: 9769 kb/s
    Chapter #0:0: start 0.000000, end 67.359000
    Metadata:
      title           : 00:00:00.000
    Chapter #0:1: start 67.359000, end 751.668000
    Metadata:
      title           : 00:01:07.359
    Chapter #0:2: start 751.668000, end 1295.294000
    Metadata:
      title           : 00:12:31.668
    Chapter #0:3: start 1295.294000, end 1368.384000
    Metadata:
      title           : 00:21:35.294
    Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    Stream #0:2(eng): Subtitle: subrip (default)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
  Stream #0:1 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39490.ts' for writing
Output #0, segment, to '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949%d.ts':
  Metadata:
    encoder         : Lavf57.71.100
    Stream #0:0: Video: h264 (h264_vaapi) (High), vaapi_vld, 720x404 [SAR 1:1 DAR 180:101], q=0-31, 616 kb/s, 23.98 fps, 90k tbn, 23.98 tbc (default)
    Metadata:
      encoder         : Lavc57.89.100 h264_vaapi
    Stream #0:1: Audio: aac (LC), 48000 Hz, 5.1, fltp, 384 kb/s (default)
    Metadata:
      encoder         : Lavc57.89.100 aac
Unrepairable overflow!
frame=   28 fps=0.0 q=-0.0 size=N/A time=00:00:01.74 bitrate=N/A speed=3.47x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39491.ts' for writing
frame=   90 fps= 90 q=-0.0 size=N/A time=00:00:04.01 bitrate=N/A speed=3.99x    
frame=  137 fps= 91 q=-0.0 size=N/A time=00:00:06.10 bitrate=N/A speed=4.04x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39492.ts' for writing
frame=  177 fps= 88 q=-0.0 size=N/A time=00:00:07.78 bitrate=N/A speed=3.86x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39493.ts' for writing
frame=  220 fps= 87 q=-0.0 size=N/A time=00:00:09.57 bitrate=N/A speed= 3.8x    
frame=  256 fps= 84 q=-0.0 size=N/A time=00:00:11.05 bitrate=N/A speed=3.65x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39494.ts' for writing
frame=  293 fps= 83 q=-0.0 size=N/A time=00:00:12.52 bitrate=N/A speed=3.54x    
frame=  332 fps= 82 q=-0.0 size=N/A time=00:00:14.18 bitrate=N/A speed=3.51x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39495.ts' for writing
frame=  372 fps= 82 q=-0.0 size=N/A time=00:00:15.78 bitrate=N/A speed=3.47x    
frame=  413 fps= 82 q=-0.0 size=N/A time=00:00:17.62 bitrate=N/A speed=3.48x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39496.ts' for writing
frame=  449 fps= 81 q=-0.0 size=N/A time=00:00:18.98 bitrate=N/A speed=3.42x    
frame=  494 fps= 81 q=-0.0 size=N/A time=00:00:20.88 bitrate=N/A speed=3.44x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39497.ts' for writing
frame=  536 fps= 82 q=-0.0 size=N/A time=00:00:22.63 bitrate=N/A speed=3.45x    
frame=  575 fps= 81 q=-0.0 size=N/A time=00:00:24.29 bitrate=N/A speed=3.43x    
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e3949.m3u8.tmp' for writing
[segment @ 0x560a00edeea0] Opening '/var/lib/emby-server/transcoding-temp/8c3b94f7724c7f66bcf32b78c67e39498.ts' for writing 
To confirm that ffmpeg that comes with the emby server build indeed was not working, I change the ffmpeg path back, restarted the emby-server service and attempted to play the same Friends Season 3 Episode 3...

 

No dice...

 

http://10.40.2.62:8096/emby/videos/b3cad47fa592a9a04ae8471ae3ab7c40/hls1/main/0.ts?DeviceId=a115e402809fd1477f633bcca08418e04ac02e1b&MediaSourceId=b3cad47fa592a9a04ae8471ae3ab7c40&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=1&VideoBitrate=616001&AudioBitrate=384000&Level=51&Profile=high&PlaySessionId=c783a452e2de463a9166c1e170923800&api_key=a1698c68e32e4da2a0ff33027d832ebc&CopyTimestamps=false&TranscodingMaxAudioChannels=6&EnableSubtitlesInManifest=false&Tag=7ded1fcbe409e32b5ae26d4ef7966e9a&RequireAvc=true&RequireNonAnamorphic=false&DeInterlace=true&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False

{"Protocol":"File","Id":"b3cad47fa592a9a04ae8471ae3ab7c40","Path":"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv","Type":"Default","Container":"mkv","Name":"720P/H264/AC3","IsRemote":false,"ETag":"7ded1fcbe409e32b5ae26d4ef7966e9a","RunTimeTicks":13683840000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"RequiresClosing":false,"SupportsProbing":true,"RequiresLooping":false,"VideoType":"VideoFile","MediaStreams":[{"Codec":"h264","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1001/48000","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"BitRate":9769175,"BitDepth":8,"RefFrames":1,"IsDefault":true,"IsForced":false,"Height":720,"Width":1280,"AverageFrameRate":23.9760246,"RealFrameRate":23.9760246,"Profile":"High","Type":"Video","AspectRatio":"16:9","Index":0,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"PixelFormat":"yuv420p","Level":40,"IsAnamorphic":false},{"Codec":"ac3","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"1/48000","DisplayTitle":"Eng Dolby Digital 5.1 Default","IsInterlaced":false,"ChannelLayout":"5.1","BitRate":640000,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Type":"Audio","Index":1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Level":0,"IsAnamorphic":false},{"Codec":"subrip","Language":"eng","TimeBase":"1/1000","CodecTimeBase":"0/1","DisplayTitle":"Eng Default","IsInterlaced":false,"IsDefault":true,"IsForced":false,"Type":"Subtitle","Index":2,"IsExternal":false,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Level":0,"IsAnamorphic":false}],"PlayableStreamFileNames":[],"Formats":[],"Bitrate":10409175,"RequiredHttpHeaders":{}}

/var/lib/emby-server/ffmpeg/20170308/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/mnt/tv/Friends/Season 03/Friends - S03E03 - The One With The Jam Bluray-720p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi  -b:v 616001 -maxrate 616001 -bufsize 1232002 -level 41 -force_key_frames "expr:gte(t,n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=404" -copyts -vsync -1 -codec:a:0 aac -strict experimental -ac 6 -ab 384000  -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3  -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 0 -segment_list "/var/lib/emby-server/transcoding-temp/d59bce0f2bc521596ddeb66cdda044c6.m3u8" -y "/var/lib/emby-server/transcoding-temp/d59bce0f2bc521596ddeb66cdda044c6%d.ts"


ffmpeg version N-83692-gb8a7dcbde2-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.1 (Debian 5.4.1-5) 20170205
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
  libavutil      55. 47.100 / 55. 47.100
  libavcodec     57. 81.100 / 57. 81.100
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  3.100 / 57.  3.100
  libavfilter     6. 74.100 /  6. 74.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[AVHWDeviceContext @ 0x57f7420] No VA display found for device: /dev/dri/renderD128.
[vaapi @ 0x312f1e0] Failed to create a VAAPI device 
I hope this saves someone else some frustration.

Nicely done, I will earmark, this post for when I make the jump to my new server. Though I don't know if vaapi is supported on a vm to host hardware. Does anyone know if there is an AMD CPU equivalent to Intel quicksync in the ryzen series CPUs?

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

puithove

Nicely done, I will earmark, this post for when I make the jump to my new server. Though I don't know if vaapi is supported on a vm to host hardware. Does anyone know if there is an AMD CPU equivalent to Intel quicksync in the ryzen series CPUs?

 

 

Sent from my iPhone using Tapatalk

 

If you're talking about a fully virtualized machine, then no, you won't be able to use the on-board Intel GPU in the VM.  You could use a discrete GPU (Nvidia) with PCI-passthrough so that the card is actually attached as part of the VM's hardware.

 

For using the Intel on-board chip though, I've seen posts where folks have gotten it working in containers (linux host) - both Docker and LXC.

 

There currently is no AMD equivalent.

  • Like 1
Link to comment
Share on other sites

rathmore

 

If you're talking about a fully virtualized machine, then no, you won't be able to use the on-board Intel GPU in the VM.  You could use a discrete GPU (Nvidia) with PCI-passthrough so that the card is actually attached as part of the VM's hardware.

 

For using the Intel on-board chip though, I've seen posts where folks have gotten it working in containers (linux host) - both Docker and LXC.

 

There currently is no AMD equivalent.

True.

Also trying to get things running in docker containers. Will be reporting findings back here, though this can take some time (as in weeks) 

Link to comment
Share on other sites

  • 3 weeks later...

Don't know why this isn't working with my Intel J3455. I followed the steps one by one, but at the end, my transcoding is made by my CPU instead of GPU.

 

Can anybody help me?

 

[meiden@ubuntu]:(60.7kb)~$ sudo apt-cache policy ffmpeg
ffmpeg:
  Installed: 7:3.4-1~16.04.york0
  Candidate: 7:3.4-1~16.04.york0
  Version table:
 *** 7:3.4-1~16.04.york0 500
        500 http://ppa.launchpad.net/jonathonf/ffmpeg-3/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     7:2.8.11-0ubuntu0.16.04.1 500
        500 http://archive.ubuntu.com/ubuntu xenial-security/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
     7:2.8.6-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
 

[meiden@ubuntu]:(60.7kb)~$ ffmpeg -version
ffmpeg version n3.2.8 Copyright © 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --enable-libfreetype --enable-filter=drawtext --enable-fontconfig --disable-asm --enable-libx264 --enable-gpl
libavutil      55. 34.101 / 55. 34.101
libavcodec     57. 64.101 / 57. 64.101
libavformat    57. 56.101 / 57. 56.101
libavdevice    57.  1.100 / 57.  1.100
libavfilter     6. 65.100 /  6. 65.100
libswscale      4.  2.100 /  4.  2.100
libswresample   2.  3.100 /  2.  3.100
libpostproc    54.  1.100 / 54.  1.100
 

I think that's something wrong with this.

Link to comment
Share on other sites

SOLVED.

 

Looking at the output of whichmpeg:

 

[meiden@ubuntu]:(60.7kb)~$ which ffmpeg
/usr/local/bin/ffmpeg

 

I've set that folder as the path of ffmpeg in my system. That resulted in the behaviour that I've commented before. Then I decided to change that path and I set the one given by the OP instead, which is "/usr/bin/ffmpeg/".

 

Now it's succesfully working like charm. I don't know why that ffmpeg command says that my path is that particular one, but I think that I don't really care ever since  that now works as it should :D

 

Thank you for your help!!
 

Edited by Meiden
Link to comment
Share on other sites

For me using ubuntu 16 and emby 3.2.40.0 the only thing that i had to do to get vaapi working was to add emby to the video group and configure transcoding properly. After that it worked.

I was using debian but was getting annoyed with a few "security improvements" i could not figure out how to bypass for my own use.

Link to comment
Share on other sites

SkyBehind

For me using ubuntu 16 and emby 3.2.40.0 the only thing that i had to do to get vaapi working was to add emby to the video group and configure transcoding properly. After that it worked.

I was using debian but was getting annoyed with a few "security improvements" i could not figure out how to bypass for my own use.

I believe because starting with version .36, ffmpeg started coming packaged with Emby.

Link to comment
Share on other sites

The problem was that Emby was using its own ffmpeg. If do a "/usr/bin/ffmpeg -version", it says that I've got the tweaked version succesfully installed:

[meiden@ubuntu]:(60.7kb)~$ /usr/bin/ffmpeg -version
ffmpeg version 3.4-1~16.04.york0 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --prefix=/usr --extra-version='1~16.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libavresample   3.  7.  0 /  3.  7.  0
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100

So I just had to change the path to the correct one. It's solved for me and I can confirm that VAAPI is working as it should on my Intel J3455.

Edited by Meiden
Link to comment
Share on other sites

The problem was that Emby was using its own ffmpeg. If do a "/usr/bin/ffmpeg -version", it says that I've got the tweaked version succesfully installed:

[meiden@ubuntu]:(60.7kb)~$ /usr/bin/ffmpeg -version
ffmpeg version 3.4-1~16.04.york0 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --prefix=/usr --extra-version='1~16.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libavresample   3.  7.  0 /  3.  7.  0
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100

So I just had to change the path to the correct one. It's solved for me and I can confirm that VAAPI is working as it should on my Intel J3455.

Hifive! Thats the same processor i am using. lol i have a mini itx build running my emby server: https://www.newegg.com/Product/Product.aspx?Item=N82E16813157727

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...