Jump to content

Hardware Decoding No Longer Working


jbirmingham40

Recommended Posts

jbirmingham40

I am unable to play any videos that require transcoding if hardware accelerate is enabled. As soon as I disable hardware acceleration the video plays fine. Everything worked great using even the latest betas up till 3.6.0.83. The problems started when I upgraded to the 4.0.0.1 and 4.0.0.2 releases from the beta releases.

Edited by jbirmingham40
Link to comment
Share on other sites

jbirmingham40

I think my original theory around missing command line parameters is wrong.  Looking at the two files I attached there is clearly a complete argument list provided in both cases.  Must have been a copy and paste error when I first debugged this.

 

I did however notice the ffmpeg file is incomplete when I run with the hardware acceleration enabled.  That partial string at the end of the file is actually what is on the file system.  It is not a an upload or copy/paste issue.  Running a ps however I can see the process is running well after I stop the viewing the show with hardware acceleration enabled.  Below is the output when I run the same ffmpeg from the command line.  

[root@[member="Orion"] logs]# /opt/emby-server/bin/ffmpeg -analyzeduration 3000000 -fflags +discardcorruptts+fillwallclockdts -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -f mpegts -i http://127.0.0.1:8096/LiveTv/LiveStreamFiles/dfc9a2726b904292a9cdfded02854b04/stream.ts -map_metadata -1 -map_chapters -1 -threads 0 -sn -c:v:0 h264_vaapi -b:v:0 5000000 -maxrate 5000000 -bufsize 10000000 -profile high -level 4.1 -look_ahead 0 -force_key_frames "expr:gte(t,n_forced*3)" -vf deinterlace_vaapi -vsync -1 -codec:a:0 libmp3lame -disposition:a:0 default -ac:a:0 2 -ab:a:0 192000 -f segment -max_delay 5000000 -avoid_negative_ts disabled -start_at_zero -segment_time 3 -individual_header_trailer 0 -segment_format mpegts -segment_list_entry_prefix hls/159285f5dbd72d91bbc967fc5888036d/ -segment_list_type m3u8 -segment_start_number 0 -segment_list /home/emby/transcoding-temp/159285f5dbd72d91bbc967fc5888036d.m3u8 -y /home/emby/transcoding-temp/159285f5dbd72d91bbc967fc5888036d%d.ts
ffmpeg version 4.0.2-emby_2018_12_09 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
  configuration: --cc=x86_64-pc-linux-gnu-gcc --arch=x86_64 --prefix=/home/embybuilder/Buildbot/x64/ffmpeg-x64/staging --pkg-config=pkg-config --disable-doc --disable-ffplay --disable-vdpau --disable-xlib --enable-fontconfig --enable-gnutls --enable-gpl --enable-iconv --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libzvbi --enable-version3 --enable-libsmbclient --enable-cuda --enable-cuvid --enable-libmfx --enable-nvenc --enable-vaapi --enable-cross-compile --cross-prefix=x86_64-pc-linux-gnu- --extra-libs='-lexpat -lfreetype -lfribidi -lfontconfig -liconv -lpng -lz -lvorbis -logg -lnettle -lhogweed -lgmp -laddns-samba4 -lasn1util-samba4 -lauthkrb5-samba4 -lCHARSET3-samba4 -lcliauth-samba4 -lcli-cldap-samba4 -lcli-ldap-common-samba4 -lcli-nbt-samba4 -lcli-smb-common-samba4 -lcom_err -lcommon-auth-samba4 -ldbwrap-samba4 -ldcerpc-binding -ldcerpc-samba-samba4 -ldl -lflag-mapping-samba4 -lgenrand-samba4 -lgensec-samba4 -lgse-samba4 -lgssapi_krb5 -llibcli-lsa3-samba4 -llibsmb-samba4 -linterfaces-samba4 -liov-buf-samba4 -lk5crypto -lkrb5 -lkrb5samba-samba4 -lkrb5support -lldb -lldbsamba-samba4 -lmessages-dgm-samba4 -lmessages-util-samba4 -lmsghdr-samba4 -lmsrpc3-samba4 -lndr -lndr-krb5pac -lndr-nbt -lndr-samba-samba4 -lndr-standard -lreplace-samba4 -lsamba-cluster-support-samba4 -lsamba-credentials -lsamba-debug-samba4 -lsamba-errors -lsamba-hostconfig -lsamba-modules-samba4 -lsamba-security-samba4 -lsamba-sockets-samba4 -lsamba-util -lsamba3-util-samba4 -lsamdb -lsamdb-common-samba4 -lsecrets3-samba4 -lserver-id-db-samba4 -lserver-role-samba4 -lsmbconf -lsmbd-shim-samba4 -lsmb-transport-samba4 -lsocket-blocking-samba4 -lsys-rw-samba4 -ltalloc -ltalloc-report-samba4 -ltdb -ltdb-wrap-samba4 -ltevent -ltevent-util -ltime-basic-samba4 -lutil-cmdline-samba4 -lutil-reg-samba4 -lutil-setid-samba4 -lutil-tdb-samba4 -luuid -lwbclient -lwinbind-client-samba4 -ldrm' --target-os=linux --enable-shared --disable-static
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
[mpeg2video @ 0x1df6080] Invalid frame dimensions 0x0.
    Last message repeated 10 times
Input #0, mpegts, from 'http://127.0.0.1:8096/LiveTv/LiveStreamFiles/dfc9a2726b904292a9cdfded02854b04/stream.ts':
  Duration: N/A, start: 84086.578611, bitrate: N/A
  Program 5 
    Stream #0:0[0x51]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x480 [SAR 8:9 DAR 4:3], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x54](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x55](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Please use -profile:a or -profile:v, -profile is ambiguous
Codec AVOption look_ahead (Use VBR algorithm with look ahead) specified for output file #0 (/home/emby/transcoding-temp/159285f5dbd72d91bbc967fc5888036d%d.ts) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (h264_vaapi))
  Stream #0:1 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
[segment @ 0x1e0f440] Opening '/home/emby/transcoding-temp/159285f5dbd72d91bbc967fc5888036d0.ts' for writing
Output #0, segment, to '/home/emby/transcoding-temp/159285f5dbd72d91bbc967fc5888036d%d.ts':
  Metadata:
    encoder         : Lavf58.12.100
    Stream #0:0: Video: h264 (h264_vaapi) (High), vaapi_vld, 720x480 [SAR 8:9 DAR 4:3], q=0-31, 5000 kb/s, 29.97 fps, 90k tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc58.18.100 h264_vaapi
    Stream #0:1: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata:
      encoder         : Lavc58.18.100 libmp3lame


Edited by jbirmingham40
Link to comment
Share on other sites

Thanks, that's very helpful. Unfortunately it doesn't lead my to a diagnosis yet.

 

Could you please try these two things:

 

  • Try with a live stream that is not progressive, not interlaced
  • Try with only the hw encoder enabled but not the decoder
Link to comment
Share on other sites

jbirmingham40

Tested with multiple live streams that are not interlaced and see the exact same issue.  Tested with only the hw encoder enabled and see the exact same issue.  Let me know if you want me to upload the files.

Link to comment
Share on other sites

jbirmingham40

That appears to be the case.  Just tested some local videos.  If they direct play they are fine.  If they need to transcode they only play when hw acceleration is fully disabled.

Link to comment
Share on other sites

jbirmingham40

Below is the output from vainfo.  The one interesting bit is the path to the i965 driver.  It is trying to read this out of the directory /home/embybuilder despite the fact that the driver actually exists in /opt/emby-server/lib/dri/.  I symbolically linked it to the path below but, other than making vainfo happy, it does not seem to have made any difference.  Not sure why it is trying to read the driver from this directory.l

[root@[member="Orion"] Austin Powers]# vainfo
libva info: VA-API version 1.3.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /home/embybuilder/Buildbot/x64/libva-x64/staging/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_3
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.3 (libva 2.2.1.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.2.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointEncSliceLP
      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

Link to comment
Share on other sites

jbirmingham40

Just found this in /var/log/messages.

 

Jan 17 09:20:36 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:20:40 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:20:44 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:20:48 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:20:52 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:20:56 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:00 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:04 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:08 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:12 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:16 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:20 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:24 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:28 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:32 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:36 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:40 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

Jan 17 09:21:44 orion kernel: i915 0000:00:02.0: Resetting rcs0 after gpu hang

 

Going back in time the errors started in the log around the same time I started having issues about 9 days back. Will try rebooting later today to see if it fixes the issue.

Edited by jbirmingham40
Link to comment
Share on other sites

jbirmingham40

I just rebooted and the problem went away. Very strange. Will have to keep an eye on it. Thanks for your assistance.

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
×
×
  • Create New...