ThermoDust 12 Posted March 11, 2018 Posted March 11, 2018 Finally got VAAPI to work on my machine after a rebuild and upgrade to Debian 9. Now I need a bit more help, what is a node? When I choose the VA API one of the sections says node and it lists a device, is it already correct? Here is my VAInfo output: 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(R) Kabylake - 1.7.3 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 VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSlice VAProfileVP9Profile2 : VAEntrypointVLD This is the current emby transcoding node: /dev/dri/renderD128
Luke 42080 Posted March 11, 2018 Posted March 11, 2018 I think the default we've chosen should suffice. I think in most cases you'll only need to customize it if you have multiple gpu's.
ThermoDust 12 Posted March 11, 2018 Author Posted March 11, 2018 Can you give me an example of the command called? As when I try using /usr/bin/ffmpeg -loglevel warning -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128 -fflags +genpts -i test.mp4 -o test2.mp4 I get errors. [AVHWDeviceContext @ 0x5d43880] No VA display found for device: /dev/dri/renderD128. Device creation failed: -22. [h264 @ 0x5d74540] No device available for decoder: device type vaapi needed for codec h264. Device setup failed for decoder on input stream #0:0 : Invalid argument
Luke 42080 Posted March 11, 2018 Posted March 11, 2018 The best way to get a complete example would be to just play something in emby and then check the ffmpeg log.
ThermoDust 12 Posted March 11, 2018 Author Posted March 11, 2018 Slight issue, while it is playing I don't think it is doing so right. /usr/bin/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/srv/f1eef17e-3750-49be-83af-a11ff8ba6d3a/Media/TV Shows/Avatar- The Last Airbender/Season 01/Avatar- The Last Airbender - S01E01.mp4" -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=426:h=318" -b:v 192000 -maxrate 192000 -bufsize 384000 -profile:v 578 -level 41 -force_key_frames "expr:if(isnan(prev_forced_t),eq(t,t),gte(t,prev_forced_t+2))" -copyts -vsync -1 -codec:a:0 libmp3lame -ac 2 -ab 128000 -f segment -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 -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/b845bff822aa9d2976e6c1027db0132b.m3u8" -y "/var/lib/emby-server/transcoding-temp/b845bff822aa9d2976e6c1027db0132b%d.ts" ffmpeg version N-45194-g40102a213-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg libavutil 56. 7.101 / 56. 7.101 libavcodec 58. 13.100 / 58. 13.100 libavformat 58. 10.100 / 58. 10.100 libavdevice 58. 2.100 / 58. 2.100 libavfilter 7. 12.100 / 7. 12.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 libpostproc 55. 0.100 / 55. 0.100 [AVHWDeviceContext @ 0x440e240] No VA display found for device: /dev/dri/renderD128. Device creation failed: -22. Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': Invalid argument Error parsing global options: Invalid argument No VA display found for device: /dev/dri/renderD128. Device creation failed: -22. I got this till I changed it to hwaccel_device when I was testing
rouq 23 Posted March 11, 2018 Posted March 11, 2018 Slight issue, while it is playing I don't think it is doing so right. /usr/bin/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/srv/f1eef17e-3750-49be-83af-a11ff8ba6d3a/Media/TV Shows/Avatar- The Last Airbender/Season 01/Avatar- The Last Airbender - S01E01.mp4" -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -vf "format=nv12|vaapi,hwupload,scale_vaapi=w=426:h=318" -b:v 192000 -maxrate 192000 -bufsize 384000 -profile:v 578 -level 41 -force_key_frames "expr:if(isnan(prev_forced_t),eq(t,t),gte(t,prev_forced_t+2))" -copyts -vsync -1 -codec:a:0 libmp3lame -ac 2 -ab 128000 -f segment -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 -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/b845bff822aa9d2976e6c1027db0132b.m3u8" -y "/var/lib/emby-server/transcoding-temp/b845bff822aa9d2976e6c1027db0132b%d.ts" ffmpeg version N-45194-g40102a213-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg libavutil 56. 7.101 / 56. 7.101 libavcodec 58. 13.100 / 58. 13.100 libavformat 58. 10.100 / 58. 10.100 libavdevice 58. 2.100 / 58. 2.100 libavfilter 7. 12.100 / 7. 12.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 libpostproc 55. 0.100 / 55. 0.100 [AVHWDeviceContext @ 0x440e240] No VA display found for device: /dev/dri/renderD128. Device creation failed: -22. Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': Invalid argument Error parsing global options: Invalid argument No VA display found for device: /dev/dri/renderD128.Device creation failed: -22. I got this till I changed it to hwaccel_device when I was testing Like Luke said put it back to default and make sure that your Linux "emby" user (user owning emby server process) is part of the video group. On my Sinology NAS (it's running on Linux) that was the message I got until I put my emby user into the video group. Basically emby needs the proper rights to access the drivers. After I've done this, vaapi works like it should.
Luke 42080 Posted March 11, 2018 Posted March 11, 2018 Yes trust the defaults unless you have a reason to change them.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now