Jellyfin Forum
HW acceleration doesn' work with h264 coded videos - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: HW acceleration doesn' work with h264 coded videos (/t-hw-acceleration-doesn-work-with-h264-coded-videos)

Pages: 1 2


HW acceleration doesn' work with h264 coded videos - lordmarck - 2023-11-30

I have an unraid server with an rtx 1660 for hw transcoding and accelaration. Jellyfin works great except when it comes to videos with H264 codec. Those video go through the cpu. Anyone has any idea what could be the reason? I'm pretty new to both jellyfin and unraid so please bear with me.


RE: No h264 HW accelaeration/transcoding - TheDreadPirate - 2023-11-30

Is the video direct playing? If it direct plays on the client, the GPU will not be used. You should only see GPU usage with transcoding.


RE: HW acceleration doesn' work with h264 coded videos - lordmarck - 2023-11-30

No I tried to change the bitrate but it keeps going through the cpu.


RE: HW acceleration doesn' work with h264 coded videos - TheDreadPirate - 2023-11-30

Can you share your ffmpeg and jellyfin logs?


RE: HW acceleration doesn' work with h264 coded videos - lordmarck - 2023-11-30

where can i find them?


RE: HW acceleration doesn' work with h264 coded videos - TheDreadPirate - 2023-11-30

The container path is /config/logs, IIRC. So wherever that is mounted. You can also see your logs in the dashboard.


RE: HW acceleration doesn' work with h264 coded videos - lordmarck - 2023-11-30

This is the ffmpeg log


/videos/635d8cde-31a2-78ae-82d1-07b843341222/hls1/main/0.ts

{"Protocol":0,"Id":"635d8cde31a278ae82d107b843341222","Path":"/media/Movies/Frozen.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv,webm","Size":2829044736,"Name":"Frozen II","IsRemote":false,"ETag":"c7cae94edd69daaa8e41c41e264f507e","RunTimeTicks":61940482048,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"h264","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":"SDR","VideoRangeType":"SDR","VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"1080p H264 SDR","NalLengthSize":"4","IsInterlaced":false,"IsAVC":true,"ChannelLayout":null,"BitRate":3653888,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"Height":808,"Width":1920,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"High","Type":1,"AspectRatio":"2.40:1","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":41,"IsAnamorphic":null},{"Codec":"ac3","CodecTag":null,"Language":"ita","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"Italian - Dolby Digital - 5.1 - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":512000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"ac3","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"English - Dolby Digital - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":640000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"ita","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"Forced","VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Forced - Italian - Default - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":3,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"ita","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"Italian - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":4,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","DisplayTitle":"English - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":5,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":4805888,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -fflags +genpts -i file:"/media/Movies/Frozen II.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:2 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/data/transcodes/346f07139710c85d5320681eec716bdb%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/346f07139710c85d5320681eec716bdb.m3u8"


ffmpeg version 6.0-Jellyfin Copyright © 2000-2023 the FFmpeg developers
built with gcc 13.2.1 (GCC) 20230801
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libfontconfig --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libopenmpt --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Input #0, matroska,webm, from 'fileConfused-facemedia/Movies/Frozen II 2019 BluRay 1080xH264 Ita Eng AC3 5.1 Sub Ita Eng.mkv':
Metadata:
title : Encoded By realDMDJ
encoder : libebml v1.3.9 + libmatroska v1.5.2
creation_time : 2020-02-27T19:49:33.000000Z
Duration: 01:43:14.05, start: 0.000000, bitrate: 3653 kb/s
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x808 [SAR 1:1 DAR 240:101], 23.98 fps, 23.98 tbr, 1k tbn (default)
Metadata:
BPS-eng : 2499732
DURATION-eng : 01:43:14.028000000
NUMBER_OF_FRAMES-eng: 148508
NUMBER_OF_BYTES-eng: 1935426678
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:1(ita): Audio: ac3, 48000 Hz, 5.1(side), fltp, 512 kb/s (default)
Metadata:
BPS-eng : 512000
DURATION-eng : 01:43:12.032000000
NUMBER_OF_FRAMES-eng: 193501
NUMBER_OF_BYTES-eng: 396290048
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:2(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
Metadata:
BPS-eng : 640000
DURATION-eng : 01:43:14.048000000
NUMBER_OF_FRAMES-eng: 193564
NUMBER_OF_BYTES-eng: 495523840
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:3(ita): Subtitle: subrip (default)
Metadata:
title : Forced
BPS-eng : 100
DURATION-eng : 00:00:02.698000000
NUMBER_OF_FRAMES-eng: 1
NUMBER_OF_BYTES-eng: 34
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:4(ita): Subtitle: subrip
Metadata:
BPS-eng : 59
DURATION-eng : 01:41:34.078000000
NUMBER_OF_FRAMES-eng: 1560
NUMBER_OF_BYTES-eng: 45457
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:5(eng): Subtitle: subrip
Metadata:
BPS-eng : 56
DURATION-eng : 01:41:34.078000000
NUMBER_OF_FRAMES-eng: 1560
NUMBER_OF_BYTES-eng: 43010
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:2 -> #0:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, hls, to '/config/data/transcodes/346f07139710c85d5320681eec716bdb.m3u8':
Metadata:
encoder : Lavf60.3.100
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x808 [SAR 1:1 DAR 240:101], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn (default)
Metadata:
BPS-eng : 2499732
DURATION-eng : 01:43:14.028000000
NUMBER_OF_FRAMES-eng: 148508
NUMBER_OF_BYTES-eng: 1935426678
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:1(eng): Audio: aac (LC), 48000 Hz, 5.1, fltp, 640 kb/s
Metadata:
BPS-eng : 640000
DURATION-eng : 01:43:14.048000000
NUMBER_OF_FRAMES-eng: 193564
NUMBER_OF_BYTES-eng: 495523840
_STATISTICS_WRITING_APP-eng: mkvmerge v41.0.0 ('Smarra') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-02-27 19:49:33
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
encoder : Lavc60.3.100 aac
frame= 0 fps=0.0 q=-1.0 size= 0kB time=-00:00:00.08 bitrate= -0.0kbits/s speed=N/A
frame= 219 fps=0.0 q=-1.0 size=N/A time=00:00:00.25 bitrate=N/A speed= 0.5x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb0.ts' for writing
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb1.ts' for writing
frame= 535 fps=533 q=-1.0 size=N/A time=00:00:13.49 bitrate=N/A speed=13.4x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb2.ts' for writing
frame= 762 fps=506 q=-1.0 size=N/A time=00:00:22.84 bitrate=N/A speed=15.2x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb3.ts' for writing
frame= 1022 fps=509 q=-1.0 size=N/A time=00:00:33.65 bitrate=N/A speed=16.8x
frame= 1226 fps=489 q=-1.0 size=N/A time=00:00:42.23 bitrate=N/A speed=16.8x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb4.ts' for writing
frame= 1328 fps=441 q=-1.0 size=N/A time=00:00:46.33 bitrate=N/A speed=15.4x
frame= 1422 fps=404 q=-1.0 size=N/A time=00:00:50.27 bitrate=N/A speed=14.3x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb5.ts' for writing
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb6.ts' for writing
frame= 1548 fps=385 q=-1.0 size=N/A time=00:00:55.73 bitrate=N/A speed=13.9x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb7.ts' for writing
frame= 1663 fps=367 q=-1.0 size=N/A time=00:01:00.51 bitrate=N/A speed=13.4x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb8.ts' for writing
frame= 1765 fps=351 q=-1.0 size=N/A time=00:01:04.67 bitrate=N/A speed=12.9x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb9.ts' for writing
frame= 1867 fps=338 q=-1.0 size=N/A time=00:01:08.83 bitrate=N/A speed=12.5x
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb10.ts' for writing
[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb11.ts' for writing
frame= 1949 fps=323 q=-1.0 size=N/A time=00:01:12.37 bitrate=N/A speed= 12x

[q] command received. Exiting.

[hls @ 0x56114998f580] Opening '/config/data/transcodes/346f07139710c85d5320681eec716bdb12.ts' for writing
frame= 1956 fps=323 q=-1.0 Lsize=N/A time=00:01:12.52 bitrate=N/A speed= 12x
video:25334kB audio:6169kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[aac @ 0x56114999ba80] Qavg: 4156.986

the jellyfin log is very long. Do you need all of it or just a piece?


RE: HW acceleration doesn' work with h264 coded videos - TheDreadPirate - 2023-11-30

That log indicates that it is transcoding just the audio (CPU only). The video is untouched.

Code:
Stream #0:0 -> #0:0 (copy)
Stream #0:2 -> #0:1 (ac3 (native) -> aac (native))



RE: HW acceleration doesn' work with h264 coded videos - lordmarck - 2023-11-30

that's weird. I was definitely watching at lower res.

the video is at 1080 60 Mbps an i was watching at 720 8 mbps


RE: HW acceleration doesn' work with h264 coded videos - TheDreadPirate - 2023-11-30

(2023-11-30, 09:15 PM)lordmarck Wrote: that's weird. I was definitely watching at lower res.

the video is at 1080 60 Mbps an i was watching at 720 8 mbps

Make sure you are selecting the ffmpeg log that corresponds to that activity.  Also, upload the log to sourcebin instead of pasting it directly in a post here.