Jellyfin Forum
SOLVED: Unable to record live TV but am able to view it - 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: SOLVED: Unable to record live TV but am able to view it (/t-solved-unable-to-record-live-tv-but-am-able-to-view-it)



Unable to record live TV but am able to view it - generically_named - 2024-03-05

Hi all,

I have setup the m3u tuner in my Jellyfin instance with the Adelaide Free to Air TV channels: https://i.mjh.nz/au/Adelaide/raw-tv.m3u8

My issue is that I can view Channel 10, Channel 10Peach and Channel 10Bold live but cannot record them. I have tried forcing transcoding on my user and when viewing live this is still successful. Looking at the logs (see logs appended at end of post) it appears the same thing happens as ffprobe attempts to probe the link (https://i.mjh.nz/10bold-sa.m3u8, it is geo-restricted) but fails. The difference is that the second time, when I am watching live, it provides the -useragent option which seems to do something. In experiments on my Windows computer with ffprobe I found the following:

Command:
Code:
ffprobe -v error -show_format -show_streams "https://i.mjh.nz/10bold-sa.m3u8"
Returns:
Code:
https://i.mjh.nz/10bold-sa.m3u8: Server returned 404 Not Found

But if I specify user agent:
Command: 
Code:
ffprobe -v error -show_format -show_streams -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763" "https://i.mjh.nz/10bold-sa.m3u8"

Returns: 
Code:
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_tag_string=[27][0][0][0]
codec_tag=0x001b
width=1280
height=720
coded_width=1280
coded_height=720
closed_captions=0
film_grain=0
has_b_frames=1
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=31
color_range=tv
color_space=bt709
color_transfer=bt709
color_primaries=bt709
chroma_location=left
field_order=unknown
refs=1
is_avc=false
nal_length_size=0
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000
start_pts=899205232
start_time=9991.169244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=53
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=2873200
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=LC
codec_type=audio
codec_tag_string=[15][0][0][0]
codec_tag=0x000f
sample_fmt=fltp
sample_rate=48000
channels=2
channel_layout=stereo
bits_per_sample=0
initial_padding=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=899207032
start_time=9991.189244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=2873200
TAG:language=und
[/STREAM]
[STREAM]
index=2
codec_name=scte_35
codec_long_name=SCTE 35 Message Queue
profile=unknown
codec_type=data
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=N/A
start_time=N/A
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=2873200
[/STREAM]
[STREAM]
index=3
codec_name=timed_id3
codec_long_name=timed ID3 metadata
profile=unknown
codec_type=data
codec_tag_string=ID3
codec_tag=0x20334449
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=N/A
start_time=N/A
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=2873200
[/STREAM]
[STREAM]
index=4
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_tag_string=[27][0][0][0]
codec_tag=0x001b
width=1024
height=576
coded_width=1024
coded_height=576
closed_captions=0
film_grain=0
has_b_frames=1
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=31
color_range=tv
color_space=bt709
color_transfer=bt709
color_primaries=bt709
chroma_location=left
field_order=unknown
refs=1
is_avc=false
nal_length_size=0
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000
start_pts=899205232
start_time=9991.169244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=53
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1828200
[/STREAM]
[STREAM]
index=5
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=LC
codec_type=audio
codec_tag_string=[15][0][0][0]
codec_tag=0x000f
sample_fmt=fltp
sample_rate=48000
channels=2
channel_layout=stereo
bits_per_sample=0
initial_padding=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=899207032
start_time=9991.189244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1828200
TAG:language=und
[/STREAM]
[STREAM]
index=6
codec_name=scte_35
codec_long_name=SCTE 35 Message Queue
profile=unknown
codec_type=data
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=N/A
start_time=N/A
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1828200
[/STREAM]
[STREAM]
index=7
codec_name=timed_id3
codec_long_name=timed ID3 metadata
profile=unknown
codec_type=data
codec_tag_string=ID3
codec_tag=0x20334449
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=899223232
start_time=9991.369244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1828200
[/STREAM]
[STREAM]
index=8
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_tag_string=[27][0][0][0]
codec_tag=0x001b
width=960
height=540
coded_width=960
coded_height=540
closed_captions=0
film_grain=0
has_b_frames=1
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=31
color_range=tv
color_space=bt709
color_transfer=bt709
color_primaries=bt709
chroma_location=left
field_order=unknown
refs=1
is_avc=false
nal_length_size=0
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000
start_pts=899205232
start_time=9991.169244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=52
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1504800
[/STREAM]
[STREAM]
index=9
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=LC
codec_type=audio
codec_tag_string=[15][0][0][0]
codec_tag=0x000f
sample_fmt=fltp
sample_rate=48000
channels=2
channel_layout=stereo
bits_per_sample=0
initial_padding=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=899207032
start_time=9991.189244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1504800
TAG:language=und
[/STREAM]
[STREAM]
index=10
codec_name=scte_35
codec_long_name=SCTE 35 Message Queue
profile=unknown
codec_type=data
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=N/A
start_time=N/A
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1504800
[/STREAM]
[STREAM]
index=11
codec_name=timed_id3
codec_long_name=timed ID3 metadata
profile=unknown
codec_type=data
codec_tag_string=ID3
codec_tag=0x20334449
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=899223232
start_time=9991.369244
duration_ts=N/A
duration=N/A
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:variant_bitrate=1504800
[/STREAM]
[FORMAT]
filename=https://i.mjh.nz/10bold-sa.m3u8
nb_streams=12
nb_programs=3
format_name=hls
format_long_name=Apple HTTP Live Streaming
start_time=9991.169244
duration=N/A
size=1320
bit_rate=N/A
probe_score=100
[/FORMAT]

Trying to open the m3u8 link (https://i.mjh.nz/10bold-sa.m3u8) in VLC appears to be a fools errand as VLC spits the dummy the same way ffprobe does returning a 404. Opening the link in a browser however and feeding the downloaded m3u8 file to Windows Media Player (the new one on Windows 10 not the old one that existed in 7) it is able to stream no problem. VLC will still not open this m3u8 file. Drilling down into the file we see that it is multi-resolution and drilling down into one of those links we find multiple .ts streams with associated key files:

https://i.mjh.nz/10bold-sa.m3u8 m3u8 file:
Code:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS

#EXT-X-STREAM-INF:BANDWIDTH=2873200,AVERAGE-BANDWIDTH=2961200,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=25.000,SUBTITLES="subs"
https://dai.google.com/linear/hls/pb/event/uaOe3c3CTWSMacikv1mV2g/stream/f3ba01e3-1cad-47e9-87fc-48bae6dbbaba:TPE/variant/ad17b9e2fc6d43b49162adf3af4d518a/bandwidth/2873200.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1828200,AVERAGE-BANDWIDTH=1861200,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=1024x576,FRAME-RATE=25.000,SUBTITLES="subs"
https://dai.google.com/linear/hls/pb/event/uaOe3c3CTWSMacikv1mV2g/stream/f3ba01e3-1cad-47e9-87fc-48bae6dbbaba:TPE/variant/34594be309d8a2189f08473c69289ffc/bandwidth/1828200.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1504800,AVERAGE-BANDWIDTH=1531200,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=25.000,SUBTITLES="subs"
https://dai.google.com/linear/hls/pb/event/uaOe3c3CTWSMacikv1mV2g/stream/f3ba01e3-1cad-47e9-87fc-48bae6dbbaba:TPE/variant/7bc1d381422a6cff33d25301d23f2b4c/bandwidth/1504800.m3u8
#EXT-X-MEDIA:TYPE=SUBTITLES,NAME="English",DEFAULT=NO,AUTOSELECT=NO,FORCED=NO,LANGUAGE="eng",GROUP-ID="subs",URI="https://dai.google.com/linear/hls/pb/event/uaOe3c3CTWSMacikv1mV2g/stream/f3ba01e3-1cad-47e9-87fc-48bae6dbbaba:TPE/variant/4d1b61dd17691d3956f6b323feb066c4/bandwidth/000.m3u8"

Excerpt from the 1280x720 m3u8 file:
Code:
#EXT-X-KEY:METHOD=AES-128,URI="https://net10-livestream-keys.play.cbsi.video/10BoldSA/key/K65800.key",IV=0x0000000000000000000000000001010D
#EXTINF:6.00000,
https://net10-livestream.play.cbsi.video/10BoldSA/stream420240305T101744_65805.ts

I am at a loss for how to proceed as modifying the ffprobe/ffmpeg programming in my Jellyfin instance is a bit beyond me (I don't know where to look, if I am pointed in the right direction I can probably figure it out). 

I was warned that this could be considered an attempt to circumvent DRM, it is not. Recording free to air TV is legal in Australia and this channel is a Free to air channel. The fact I can stream it in Jellyfin live I think shows how we are not circumventing DRM but fixing an issue with ffprobe/ffmpeg's stream interpretation/management.

Any help would be greatly appreciated

Log of Jellyfin attempting to record:
Code:
[2024-03-05 09:43:06.080 +00:00] [DBG] [61] Emby.Server.Implementations.LiveTv.LiveTvMediaSourceProvider: MediaSources: [MediaSourceInfo { Protocol: Http, Id: "2b9fbe6b3f1c32692733c1cc2d3e5e08", Path: "https://i.mjh.nz/10bold-sa.m3u8", EncoderPath: null, EncoderProtocol: null, Type: Default, Container: null, Size: null, Name: null, IsRemote: True, ETag: null, RunTimeTicks: null, ReadAtNativeFramerate: False, IgnoreDts: True, IgnoreIndex: False, GenPtsInput: False, SupportsTranscoding: True, SupportsDirectStream: True, SupportsDirectPlay: True, IsInfiniteStream: True, RequiresOpening: True, OpenToken: "LiveTvChannel_b1296ce0d17a17abee829599d4fd1b1b_2b9fbe6b3f1c32692733c1cc2d3e5e08", RequiresClosing: True, LiveStreamId: null, BufferMs: 1500, RequiresLooping: False, SupportsProbing: True, VideoType: null, IsoType: null, Video3DFormat: null, MediaStreams: [MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: "SDR", VideoRangeType: "SDR", VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "SDR", NalLengthSize: null, IsInterlaced: True, 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: Video, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null }, MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: null, VideoRangeType: null, VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "", 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: Audio, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null }], MediaAttachments: [], Formats: [], Bitrate: null, Timestamp: null, RequiredHttpHeaders: [("User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.85 Safari/537.36")], TranscodingUrl: null, TranscodingSubProtocol: null, TranscodingContainer: null, AnalyzeDurationMs: null, TranscodeReasons: 0, DefaultAudioStreamIndex: null, DefaultSubtitleStreamIndex: null, VideoStream: MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: "SDR", VideoRangeType: "SDR", VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "SDR", NalLengthSize: null, IsInterlaced: True, 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: Video, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null } }]
[2024-03-05 09:43:06.080 +00:00] [INF] [61] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "generically_named". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-05 09:43:06.081 +00:00] [DBG] [61] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Jellyfin Media Player", Path: "https://i.mjh.nz/10bold-sa.m3u8", isEligibleForDirectPlay: True, isEligibleForDirectStream: False
[2024-03-05 09:43:06.081 +00:00] [DBG] [61] Jellyfin.Api.Helpers.MediaInfoHelper: DirectPlay Result for Profile: "Jellyfin Media Player", Path: "https://i.mjh.nz/10bold-sa.m3u8", PlayMethod: DirectPlay, AudioStreamIndex: -1, SubtitleStreamIndex: null, Reasons: 0
[2024-03-05 09:43:06.081 +00:00] [INF] [61] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Jellyfin Media Player", Path="https://i.mjh.nz/10bold-sa.m3u8", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/b1296ce0-d17a-17ab-ee82-9599d4fd1b1b/stream?MediaSourceId=2b9fbe6b3f1c32692733c1cc2d3e5e08&Static=true&AudioStreamIndex=-1&api_key=<token>"
[2024-03-05 09:43:06.082 +00:00] [INF] [61] Emby.Server.Implementations.LiveTv.LiveTvManager: Opening channel stream from "Emby", external channel Id: "m3u_464db0b32520b55ea9ab3e05f8566404967b61a25cb0f43eef9c0e7a8d05d2a9"
[2024-03-05 09:43:06.083 +00:00] [INF] [61] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Streaming Channel "m3u_464db0b32520b55ea9ab3e05f8566404967b61a25cb0f43eef9c0e7a8d05d2a9"
[2024-03-05 09:43:06.084 +00:00] [INF] [61] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Live stream opened after 0.0008ms
[2024-03-05 09:43:06.084 +00:00] [INF] [61] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Returning mediasource streamId "2b9fbe6b3f1c32692733c1cc2d3e5e08", mediaSource.Id "2b9fbe6b3f1c32692733c1cc2d3e5e08", mediaSource.LiveStreamId null
[2024-03-05 09:43:06.084 +00:00] [INF] [61] Emby.Server.Implementations.Library.MediaSourceManager: Waiting 3000ms before probing the live stream
[2024-03-05 09:43:09.084 +00:00] [INF] [61] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: "/usr/lib/jellyfin-ffmpeg/ffprobe" "-analyzeduration 3000000 -i \"https://i.mjh.nz/10bold-sa.m3u8\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2024-03-05 09:43:09.084 +00:00] [DBG] [61] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting ffprobe with args "-analyzeduration 3000000 -i \"https://i.mjh.nz/10bold-sa.m3u8\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2024-03-05 09:43:10.830 +00:00] [ERR] [84] Emby.Server.Implementations.Library.MediaSourceManager: Error probing live tv stream
MediaBrowser.Common.FfmpegException: ffprobe failed - streams and format are both null.
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.LiveStreamHelper.AddMediaInfoWithProbe(MediaSourceInfo mediaSource, Boolean isAudio, String cacheKey, Boolean addProbeDelay, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken)

Log of me streaming that same channel:
Code:
[2024-03-05 10:21:04.397 +00:00] [DBG] [196] Emby.Server.Implementations.LiveTv.LiveTvMediaSourceProvider: MediaSources: [MediaSourceInfo { Protocol: Http, Id: "2b9fbe6b3f1c32692733c1cc2d3e5e08", Path: "https://i.mjh.nz/10bold-sa.m3u8", EncoderPath: null, EncoderProtocol: null, Type: Default, Container: null, Size: null, Name: null, IsRemote: True, ETag: null, RunTimeTicks: null, ReadAtNativeFramerate: False, IgnoreDts: True, IgnoreIndex: False, GenPtsInput: False, SupportsTranscoding: True, SupportsDirectStream: True, SupportsDirectPlay: True, IsInfiniteStream: True, RequiresOpening: True, OpenToken: "LiveTvChannel_b1296ce0d17a17abee829599d4fd1b1b_2b9fbe6b3f1c32692733c1cc2d3e5e08", RequiresClosing: True, LiveStreamId: null, BufferMs: 1500, RequiresLooping: False, SupportsProbing: True, VideoType: null, IsoType: null, Video3DFormat: null, MediaStreams: [MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: "SDR", VideoRangeType: "SDR", VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "SDR", NalLengthSize: null, IsInterlaced: True, 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: Video, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null }, MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: null, VideoRangeType: null, VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "", 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: Audio, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null }], MediaAttachments: [], Formats: [], Bitrate: null, Timestamp: null, RequiredHttpHeaders: [("User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.85 Safari/537.36")], TranscodingUrl: null, TranscodingSubProtocol: null, TranscodingContainer: null, AnalyzeDurationMs: null, TranscodeReasons: 0, DefaultAudioStreamIndex: null, DefaultSubtitleStreamIndex: null, VideoStream: MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: "SDR", VideoRangeType: "SDR", VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "SDR", NalLengthSize: null, IsInterlaced: True, 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: Video, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null } }]
[2024-03-05 10:21:04.398 +00:00] [INF] [196] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "generically_named". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-05 10:21:04.398 +00:00] [DBG] [196] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "https://i.mjh.nz/10bold-sa.m3u8", isEligibleForDirectPlay: True, isEligibleForDirectStream: False
[2024-03-05 10:21:04.398 +00:00] [DBG] [196] Jellyfin.Api.Helpers.MediaInfoHelper: DirectPlay Result for Profile: "Anonymous Profile", Path: "https://i.mjh.nz/10bold-sa.m3u8", PlayMethod: null, AudioStreamIndex: -1, SubtitleStreamIndex: null, Reasons: ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported
[2024-03-05 10:21:04.398 +00:00] [DBG] [196] Jellyfin.Api.Helpers.MediaInfoHelper: Transcode Result for Profile: "Anonymous Profile", Path: "https://i.mjh.nz/10bold-sa.m3u8", PlayMethod: Transcode, AudioStreamIndex: -1, SubtitleStreamIndex: null, Reasons: ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported
[2024-03-05 10:21:04.399 +00:00] [INF] [196] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="https://i.mjh.nz/10bold-sa.m3u8", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported ) "media:/videos/b1296ce0-d17a-17ab-ee82-9599d4fd1b1b/master.m3u8?MediaSourceId=2b9fbe6b3f1c32692733c1cc2d3e5e08&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=-1&VideoBitrate=59616000&AudioBitrate=384000&api_key=<token>&TranscodingMaxAudioChannels=2&RequireAvc=false&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&TranscodeReasons=ContainerNotSupported,%20VideoCodecNotSupported,%20AudioCodecNotSupported"
[2024-03-05 10:21:04.400 +00:00] [INF] [196] Emby.Server.Implementations.LiveTv.LiveTvManager: Opening channel stream from "Emby", external channel Id: "m3u_464db0b32520b55ea9ab3e05f8566404967b61a25cb0f43eef9c0e7a8d05d2a9"
[2024-03-05 10:21:04.400 +00:00] [INF] [196] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Streaming Channel "m3u_464db0b32520b55ea9ab3e05f8566404967b61a25cb0f43eef9c0e7a8d05d2a9"
[2024-03-05 10:21:04.402 +00:00] [INF] [196] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Live stream opened after 0.0009ms
[2024-03-05 10:21:04.402 +00:00] [INF] [196] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Returning mediasource streamId "2b9fbe6b3f1c32692733c1cc2d3e5e08", mediaSource.Id "2b9fbe6b3f1c32692733c1cc2d3e5e08", mediaSource.LiveStreamId null
[2024-03-05 10:21:04.403 +00:00] [INF] [196] Emby.Server.Implementations.Library.MediaSourceManager: Waiting 3000ms before probing the live stream
[2024-03-05 10:21:07.403 +00:00] [INF] [107] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: "/usr/lib/jellyfin-ffmpeg/ffprobe" "-analyzeduration 3000000 -i \"https://i.mjh.nz/10bold-sa.m3u8\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2024-03-05 10:21:07.403 +00:00] [DBG] [107] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting ffprobe with args "-analyzeduration 3000000 -i \"https://i.mjh.nz/10bold-sa.m3u8\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2024-03-05 10:21:08.121 +00:00] [DBG] [133] Emby.Server.Implementations.HttpServer.WebSocketConnection: WS "REDACTED_CLIENT_IP" received message: WebSocketMessage`1 { MessageType: KeepAlive, MessageId: 00000000-0000-0000-0000-000000000000, ServerId: null, Data: null }
[2024-03-05 10:21:09.452 +00:00] [ERR] [196] Emby.Server.Implementations.Library.MediaSourceManager: Error probing live tv stream
MediaBrowser.Common.FfmpegException: ffprobe failed - streams and format are both null.
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.LiveStreamHelper.AddMediaInfoWithProbe(MediaSourceInfo mediaSource, Boolean isAudio, String cacheKey, Boolean addProbeDelay, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken)
[2024-03-05 10:21:09.453 +00:00] [INF] [196] Emby.Server.Implementations.Library.MediaSourceManager: Live stream opened: MediaSourceInfo { Protocol: Http, Id: "2b9fbe6b3f1c32692733c1cc2d3e5e08", Path: "https://i.mjh.nz/10bold-sa.m3u8", EncoderPath: null, EncoderProtocol: null, Type: Default, Container: null, Size: null, Name: null, IsRemote: True, ETag: null, RunTimeTicks: null, ReadAtNativeFramerate: False, IgnoreDts: True, IgnoreIndex: False, GenPtsInput: False, SupportsTranscoding: True, SupportsDirectStream: False, SupportsDirectPlay: True, IsInfiniteStream: True, RequiresOpening: True, OpenToken: null, RequiresClosing: True, LiveStreamId: "a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_2b9fbe6b3f1c32692733c1cc2d3e5e08", BufferMs: null, RequiresLooping: False, SupportsProbing: True, VideoType: null, IsoType: null, Video3DFormat: null, MediaStreams: [MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: "SDR", VideoRangeType: "SDR", VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "SDR", NalLengthSize: null, IsInterlaced: True, IsAVC: null, ChannelLayout: null, BitRate: 20000000, 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: Video, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null }, MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: null, VideoRangeType: null, VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "", 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: Audio, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null }], MediaAttachments: [], Formats: [], Bitrate: 20000000, Timestamp: null, RequiredHttpHeaders: [("User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.85 Safari/537.36")], TranscodingUrl: null, TranscodingSubProtocol: null, TranscodingContainer: null, AnalyzeDurationMs: 3000, TranscodeReasons: 0, DefaultAudioStreamIndex: null, DefaultSubtitleStreamIndex: null, VideoStream: MediaStream { Codec: null, 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: null, CodecTimeBase: null, Title: null, VideoRange: "SDR", VideoRangeType: "SDR", VideoDoViTitle: null, LocalizedUndefined: null, LocalizedDefault: null, LocalizedForced: null, LocalizedExternal: null, DisplayTitle: "SDR", NalLengthSize: null, IsInterlaced: True, IsAVC: null, ChannelLayout: null, BitRate: 20000000, 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: Video, AspectRatio: null, Index: -1, Score: null, IsExternal: False, DeliveryMethod: null, DeliveryUrl: null, IsExternalUrl: null, IsTextSubtitleStream: False, SupportsExternalStream: False, Path: null, PixelFormat: null, Level: null, IsAnamorphic: null } }
[2024-03-05 10:21:09.453 +00:00] [INF] [196] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "generically_named". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-03-05 10:21:09.453 +00:00] [DBG] [196] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "https://i.mjh.nz/10bold-sa.m3u8", isEligibleForDirectPlay: True, isEligibleForDirectStream: False
[2024-03-05 10:21:09.453 +00:00] [DBG] [196] Jellyfin.Api.Helpers.MediaInfoHelper: DirectPlay Result for Profile: "Anonymous Profile", Path: "https://i.mjh.nz/10bold-sa.m3u8", PlayMethod: null, AudioStreamIndex: -1, SubtitleStreamIndex: null, Reasons: ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported
[2024-03-05 10:21:09.453 +00:00] [DBG] [196] Jellyfin.Api.Helpers.MediaInfoHelper: Transcode Result for Profile: "Anonymous Profile", Path: "https://i.mjh.nz/10bold-sa.m3u8", PlayMethod: Transcode, AudioStreamIndex: -1, SubtitleStreamIndex: null, Reasons: ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported
[2024-03-05 10:21:09.453 +00:00] [INF] [196] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="https://i.mjh.nz/10bold-sa.m3u8", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported ) "media:/videos/b1296ce0-d17a-17ab-ee82-9599d4fd1b1b/master.m3u8?MediaSourceId=2b9fbe6b3f1c32692733c1cc2d3e5e08&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=-1&VideoBitrate=59616000&AudioBitrate=384000&api_key=<token>&LiveStreamId=a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_2b9fbe6b3f1c32692733c1cc2d3e5e08&TranscodingMaxAudioChannels=2&RequireAvc=false&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&TranscodeReasons=ContainerNotSupported,%20VideoCodecNotSupported,%20AudioCodecNotSupported"
[2024-03-05 10:21:09.453 +00:00] [WRN] [196] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://REDACTED_SERVER_IP:8096/Items/b1296ce0d17a17abee829599d4fd1b1b/PlaybackInfo?UserId=da87ea8a37f340509e035dbd69f6bda9&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=60000000" to "REDACTED_CLIENT_IP" in 0:00:05.0818417 with Status Code 200
[2024-03-05 10:21:10.687 +00:00] [DBG] [107] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: "CustomAuthentication" was successfully authenticated.
[2024-03-05 10:21:10.687 +00:00] [DBG] [107] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: "CustomAuthentication" was successfully authenticated.
[2024-03-05 10:21:10.714 +00:00] [DBG] [33] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: "CustomAuthentication" was successfully authenticated.
[2024-03-05 10:21:10.714 +00:00] [DBG] [33] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: "CustomAuthentication" was successfully authenticated.
[2024-03-05 10:21:10.715 +00:00] [DBG] [182] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: "CustomAuthentication" was successfully authenticated.
[2024-03-05 10:21:10.717 +00:00] [INF] [33] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-03-05 10:21:10.724 +00:00] [INF] [33] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 3000000 -user_agent \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.85 Safari/537.36\" -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 \"https://i.mjh.nz/10bold-sa.m3u8\" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 h264_qsv -preset 7 -look_ahead 0 -b:v 20000000 -maxrate 20000000 -bufsize 40000000 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,yadif=0:-1:0,format=yuv420p\" -flags -global_header -codec:a:0 libfdk_aac -ac 2 -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/dc8e32b1aa2e78c34381851f49e46cc7/\" -hls_segment_filename \"/config/data/transcodes/dc8e32b1aa2e78c34381851f49e46cc7%d.ts\" -hls_playlist_type event -hls_list_size 0 -y \"/config/data/transcodes/dc8e32b1aa2e78c34381851f49e46cc7.m3u8\""

Technical details:
Jellyfin installation type: Docker running on Ubuntu Server 22.04 x64
Jellyfin version: 10.8.13
Clients in use: Brave Web Client; Android App (Android 12 on a Samsung Note 10+), Windows Jellyfin Client
I believe I have redacted all IP addressed in the logs...


RE: Unable to record live TV but am able to view it - TheDreadPirate - 2024-03-07

In the m3u tuner config, try enabled auto looping.


RE: Unable to record live TV but am able to view it - generically_named - 2024-03-08

(2024-03-07, 06:40 PM)TheDreadPirate Wrote: In the m3u tuner config, try enabled auto looping.
Thanks for the suggestion DreadPirate, enabled that but I'm still getting a failure:
Code:
2024-03-08 19:30:57.181 +10:30] [INF] [42] Emby.Server.Implementations.LiveTv.LiveTvManager: Opening channel stream from "Emby", external channel Id: "m3u_464db0b32520b55ea9ab3e05f8566404967b61a25cb0f43eef9c0e7a8d05d2a9"
[2024-03-08 19:30:57.184 +10:30] [INF] [42] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Streaming Channel "m3u_464db0b32520b55ea9ab3e05f8566404967b61a25cb0f43eef9c0e7a8d05d2a9"
[2024-03-08 19:30:57.187 +10:30] [INF] [42] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Live stream opened after 0.0016ms
[2024-03-08 19:30:57.187 +10:30] [INF] [42] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Returning mediasource streamId "2b9fbe6b3f1c32692733c1cc2d3e5e08", mediaSource.Id "2b9fbe6b3f1c32692733c1cc2d3e5e08", mediaSource.LiveStreamId null
[2024-03-08 19:30:57.188 +10:30] [INF] [42] Emby.Server.Implementations.Library.MediaSourceManager: Waiting 3000ms before probing the live stream
[2024-03-08 19:31:00.186 +10:30] [INF] [42] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: "/usr/lib/jellyfin-ffmpeg/ffprobe" "-analyzeduration 3000000 -i \"https://i.mjh.nz/10bold-sa.m3u8\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2024-03-08 19:31:00.186 +10:30] [DBG] [42] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting ffprobe with args "-analyzeduration 3000000 -i \"https://i.mjh.nz/10bold-sa.m3u8\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2024-03-08 19:31:01.044 +10:30] [ERR] [49] Emby.Server.Implementations.Library.MediaSourceManager: Error probing live tv stream
MediaBrowser.Common.FfmpegException: ffprobe failed - streams and format are both null.
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.LiveStreamHelper.AddMediaInfoWithProbe(MediaSourceInfo mediaSource, Boolean isAudio, String cacheKey, Boolean addProbeDelay, CancellationToken cancellationToken)
  at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken)

Currently exploring tvheadend to manage the live streams because I have access to reencoded streams for tvheadend from the guy who does a lot of the IPTV lists in Australia. Just getting tvheadend working is a headending headache and I'm not certain it'll work.

Any more ideas for Jellyfin to do it? Have tried using custom client header settings but that hasn't done anything.


RE: Unable to record live TV but am able to view it - TheDreadPirate - 2024-03-08

I only have some simple, public TV, IPTV channels on my Jellyfin. But my understanding is that TVHeadEnd is a must for a lot of more complex IPTV/OTA TV setups.


RE: Unable to record live TV but am able to view it - generically_named - 2024-03-09

(2024-03-08, 06:09 PM)TheDreadPirate Wrote: I only have some simple, public TV, IPTV channels on my Jellyfin.  But my understanding is that TVHeadEnd is a must for a lot of more complex IPTV/OTA TV setups.

Yeah, Jellyfin's IPTV ability is indeed fairly simple. I have eventually got Jellyfin working properly with these TV channels BUT I had to take the streams in through tvheadend and then the tvheadend plugin wasn't ideal and I'd rather Jellyfin handle recording. Given this I then have Antennas as an intermediary between tvheadend an Jellyfin.

Essentially:
- Streams configured in tvheadend
- Antennas takes streams and 're-broadcasts' them for Jellyfin
- Jellyfin takes in the Antennas streams as HDHomeRun streams and can do all the things I need it to do.

Thanks for your help DreadPirate