Jellyfin Forum
Live TV Transcode - 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: Live TV Transcode (/t-live-tv-transcode)



Live TV Transcode - williamthrilliam - 2024-02-12

Hello,

My live TV is transcoding when it shouldn't be. I'm using a HDHomeRun FLEX 4K and it works fine direct playing in other apps. I also have the setting to force direct play on live TV but it's not being respected. I did see this on github, but I'm running 10.8 and should be running with that fix. 

Server: 
Version: 10.8.13
Operating System: Linux
Architecture: X64

Client: 
Nvidia Shield

Log:
Code:
/videos/f0338991-ae98-e56c-7b4e-6309791c77b0/live.m3u8

{"Protocol":1,"Id":"native_7e3fb9393fa80fc2d3712f2e873550d2_9bd74ef4e6a5237225e66a53427f8dd2","Path":"http://192.168.87.128:8096/LiveTv/LiveStreamFiles/0ad61846543d41eca18f3325003f426f/stream.ts","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mpegts","Size":null,"Name":null,"IsRemote":false,"ETag":null,"RunTimeTicks":null,"ReadAtNativeFramerate":false,"IgnoreDts":true,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":false,"IsInfiniteStream":true,"RequiresOpening":true,"OpenToken":null,"RequiresClosing":true,"LiveStreamId":"a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_native_7e3fb9393fa80fc2d3712f2e873550d2_9bd74ef4e6a5237225e66a53427f8dd2","BufferMs":0,"RequiresLooping":false,"SupportsProbing":true,"VideoType":null,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"mpeg2video","CodecTag":null,"Language":null,"ColorRange":"tv","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/90000","CodecTimeBase":null,"Title":null,"VideoRange":"SDR","VideoRangeType":"SDR","VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"1080i MPEG2VIDEO SDR","NalLengthSize":null,"IsInterlaced":true,"IsAVC":null,"ChannelLayout":null,"BitRate":20000000,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":1080,"Width":1920,"AverageFrameRate":29.97003,"RealFrameRate":29.97003,"Profile":"Main","Type":1,"AspectRatio":"16:9","Index":-1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":4,"IsAnamorphic":false},{"Codec":"ac3","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/90000","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"Dolby Digital - 5.1","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":384000,"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":-1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":20384000,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":3000,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 3000000 -fflags +igndts -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -autorotate 0 -i "http://192.168.87.128:8096/LiveTv/LiveStreamFiles/0ad61846543d41eca18f3325003f426f/stream.ts" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 hevc_qsv -tag:v:0 hvc1 -low_power 1 -preset 7 -b:v 20000000 -maxrate 20000000 -bufsize 40000000 -g:v:0 90 -keyint_min:v:0 90 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,yadif=0:-1:0,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1080*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1080))/2)*2,format=yuv420p" -flags -global_header -codec:a:0 libfdk_aac -ac 6 -ab 384000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_base_url "hls/072aea80cfcbeb393ca9f655d0a967f7/" -hls_segment_filename "/var/lib/jellyfin/transcodes/072aea80cfcbeb393ca9f655d0a967f7%d.ts" -hls_playlist_type event -hls_list_size 0 -y "/var/lib/jellyfin/transcodes/072aea80cfcbeb393ca9f655d0a967f7.m3u8"


ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12 (Ubuntu 12.3.0-1ubuntu1~23.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --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
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
[mpeg2video @ 0x55dfc82ae300] Invalid frame dimensions 0x0.
    Last message repeated 16 times
Input #0, mpegts, from 'http://192.168.87.128:8096/LiveTv/LiveStreamFiles/0ad61846543d41eca18f3325003f426f/stream.ts':
  Duration: N/A, start: 52063.453789, bitrate: N/A
  Program 3
  Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn
    Side data:
      cpb: bitrate max/min/avg: 13683200/0/0 buffer size: 7995392 vbv_delay: N/A
  Stream #0:1[0x34](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), fltp, 384 kb/s
  Stream #0:2[0x35](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> hevc (hevc_qsv))
  Stream #0:1 -> #0:1 (ac3 (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
Output #0, hls, to '/var/lib/jellyfin/transcodes/072aea80cfcbeb393ca9f655d0a967f7.m3u8':
  Metadata:
    encoder        : Lavf60.3.100
  Stream #0:0: Video: hevc (hvc1 / 0x31637668), nv12(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 20000 kb/s, 29.97 fps, 90k tbn
    Metadata:
      encoder        : Lavc60.3.100 hevc_qsv
    Side data:
      cpb: bitrate max/min/avg: 20000000/0/20000000 buffer size: 40000000 vbv_delay: N/A
  Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 384 kb/s
    Metadata:
      encoder        : Lavc60.3.100 libfdk_aac
frame=    0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed=  0x   
frame=  62 fps=0.0 q=-0.0 size=N/A time=00:00:02.30 bitrate=N/A speed=4.32x   
frame=  103 fps= 99 q=-0.0 size=N/A time=00:00:03.64 bitrate=N/A speed=3.49x   
[hls @ 0x55dfc8654580] Opening '/var/lib/jellyfin/transcodes/072aea80cfcbeb393ca9f655d0a967f70.ts' for writing
[hls @ 0x55dfc8654580] Opening '/var/lib/jellyfin/transcodes/072aea80cfcbeb393ca9f655d0a967f7.m3u8.tmp' for writing



RE: Live TV Transcode - tmsrxzar - 2024-02-12

that's the ffmpeg log, not specifically useful other than confirming it was transcoding

the jellyfin server log is what's needed, it will contain a line TranscodeReason to say "why" it was transcoding


RE: Live TV Transcode - TheDreadPirate - 2024-02-12

What setting are you talking about for "forcing" direct play? There is a setting to force transcoding. Some clients (Android TV) have settings to force direct play. But I don't recall seeing a "force direct play" on the server side.

FWIW, a lot of newer client devices are starting to drop hardware accelerated decoding for mpeg2.


RE: Live TV Transcode - williamthrilliam - 2024-02-24

Hi thanks all, didn't seem get notified of replies.


There is a direct stream live tv (transcoding is disabled) option under preferences > playback > live tv. This is for the jellyfin android app version 0.16.5. Here are the correct logs:

Code:
[2024-02-24 09:37:47.479 -06:00] [INF] User policy for "williamthrilliam". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-02-24 09:37:47.480 -06:00] [INF] StreamBuilder.BuildVideoItem( Profile="AndroidTV-ExoPlayer", Path="http://192.168.87.128:8096/LiveTv/LiveStreamFiles/9f4e9a12c1004fbe97dd8a38fd3031ec/stream.ts", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported, AudioCodecNotSupported ) "media:/videos/f0338991-ae98-e56c-7b4e-6309791c77b0/master.m3u8?MediaSourceId=native_7e3fb9393fa80fc2d3712f2e873550d2_9bd74ef4e6a5237225e66a53427f8dd2&VideoCodec=hevc,h264&AudioCodec=aac,mp3&AudioStreamIndex=-1&VideoBitrate=119616000&AudioBitrate=384000&MaxFramerate=29.97003&api_key=<token>&LiveStreamId=a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_native_7e3fb9393fa80fc2d3712f2e873550d2_9bd74ef4e6a5237225e66a53427f8dd2&RequireAvc=false&SegmentContainer=ts&BreakOnNonKeyFrames=False&mpeg2video-level=4&mpeg2video-videobitdepth=8&mpeg2video-profile=main&aac-audiochannels=8&TranscodeReasons=ContainerNotSupported,%20AudioCodecNotSupported"
[2024-02-24 09:37:47.779 -06:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 3000000 -fflags +igndts -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel qsv -hwaccel_output_format qsv -c:v mpeg2_qsv -autorotate 0 -i \"http://192.168.87.128:8096/LiveTv/LiveStreamFiles/9f4e9a12c1004fbe97dd8a38fd3031ec/stream.ts\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 hevc_qsv -tag:v:0 hvc1 -low_power 1 -preset slow -b:v 20000000 -maxrate 20000000 -bufsize 40000000 -g:v:0 90 -keyint_min:v:0 90 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,deinterlace_qsv=mode=2,scale_qsv=format=nv12\" -flags -global_header -codec:a:0 libfdk_aac -ac 6 -ab 384000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_base_url \"hls/47a7dfd766223929b948bf8a5ff6b384/\" -hls_segment_filename \"/var/lib/jellyfin/transcodes/47a7dfd766223929b948bf8a5ff6b384%d.ts\" -hls_playlist_type event -hls_list_size 0 -y \"/var/lib/jellyfin/transcodes/47a7dfd766223929b948bf8a5ff6b384.m3u8\""
[2024-02-24 09:37:57.929 -06:00] [WRN] Slow HTTP Response from "http://192.168.87.128:8096/videos/f0338991-ae98-e56c-7b4e-6309791c77b0/live.m3u8?DeviceId=ffbfa6ce19bb40e377a62c7ee80e73b82faafb27&MediaSourceId=native_7e3fb9393fa80fc2d3712f2e873550d2_9bd74ef4e6a5237225e66a53427f8dd2&VideoCodec=hevc,h264&AudioCodec=aac,mp3&AudioStreamIndex=-1&VideoBitrate=119616000&AudioBitrate=384000&MaxFramerate=29.97003&PlaySessionId=4cf4cd7d32374ab4aa067cb43f6c0527&api_key=b508c110a5a941b2bf69e6453db0699e&LiveStreamId=a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_native_7e3fb9393fa80fc2d3712f2e873550d2_9bd74ef4e6a5237225e66a53427f8dd2&RequireAvc=false&SegmentContainer=ts&BreakOnNonKeyFrames=False&mpeg2video-level=4&mpeg2video-videobitdepth=8&mpeg2video-profile=main&aac-audiochannels=8&TranscodeReasons=ContainerNotSupported,%20AudioCodecNotSupported" to "192.168.87.49" in 0:00:10.1524101 with Status Code 200



RE: Live TV Transcode - TheDreadPirate - 2024-02-24

Strange that the video would get transcoded when only the audio was detected as needing to be transcoded. The TS container supports mpeg2 so there is no technical reason it would need to. I'm going to say that is a bug and you should submit a github ticket to the server git.

https://github.com/jellyfin/jellyfin/issues


RE: Live TV Transcode - williamthrilliam - 2024-02-24

(2024-02-24, 04:56 PM)TheDreadPirate Wrote: Strange that the video would get transcoded when only the audio was detected as needing to be transcoded.  The TS container supports mpeg2 so there is no technical reason it would need to.  I'm going to say that is a bug and you should submit a github ticket to the server git.

https://github.com/jellyfin/jellyfin/issues

Done: https://github.com/jellyfin/jellyfin/issues/11060