[Issue]: IPTV FREEBOX CODEC #3435

Closed
opened 2026-02-06 23:21:25 +03:00 by OVERLORD · 20 comments
Owner

Originally created by @ckd77 on GitHub (Dec 10, 2021).

Please describe your bug

Hi!

I can't get the iptv from my freebox delta to work under jellyfin.
My playlist.m3u works perfectly in VLC.

I tested a comparison of the ffmpeg from jellyfin and the base one from the debian distro.

Jellyfin ffmpeg test

root@f35e3ca803d1:/usr/lib/jellyfin-ffmpeg# ./ffmpeg -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd"
ffmpeg version 4.3.1-Jellyfin Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --arch=amd64 --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-vdpau --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvenc --enable-nvdec --enable-ffnvcodec
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
[rtsp @ 0x55f3488d4d40] UDP timeout, retrying with TCP
[rtsp @ 0x55f3488d4d40] method SETUP failed: 461 Unsupported Transport
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd: could not find codec parameters

Debian ffmpeg test

ffmpeg -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd"

ffmpeg version 4.3.3-0+deb11u1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
[NULL @ 0x55b2145fa340] non-existing PPS 0 referenced
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[aac @ 0x55b2145f3c80] Multiple frames in a packet.
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
[h264 @ 0x55b2145fa340] non-existing PPS 0 referenced
Last message repeated 1 times
[h264 @ 0x55b2145fa340] decode_slice_header error
[h264 @ 0x55b2145fa340] no frame!
Input #0, rtsp, from 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd':
Metadata:
title : unknown
comment : unknown
Duration: N/A, start: 5297.065444, bitrate: N/A
Program 13675
Stream #0:2: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(top first), 1440x1080 [SAR 4:3 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:3(fra): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 140 kb/s
Stream #0:4(qad): Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 63 kb/s
Stream #0:0(qaa): Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 64 kb/s
Stream #0:1(fra,fra,fra): Subtitle: dvb_teletext, 492x250
At least one output file must be specified

I tested the apha2 the problem persists.

Any idea why? Thank

Jellyfin Version

10.7.7

if other:

No response

Environment

- OS: Debian 
- Virtualization: Docker
- Clients: Browser
- Browser: Chrome 96.0.4664.93
- FFmpeg Version: 4.3.1
- Playback Method: Direct Stream IPTV M3U
- Hardware Acceleration: N/A
- Plugins: N/A
- Reverse Proxy: N/A
- Base URL: N/A
- Networking: Host
- Storage: local

Jellyfin logs

[2021-12-10 14:59:31.765 +01:00] [INF] [46] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: DeviceProfile { Name: null, Id: null, Identification: null, FriendlyName: null, Manufacturer: null, ManufacturerUrl: null, ModelName: null, ModelDescription: null, ModelNumber: null, ModelUrl: null, SerialNumber: null, EnableAlbumArtInDidl: False, EnableSingleAlbumArtLimit: False, EnableSingleSubtitleLimit: False, SupportedMediaTypes: "Audio,Photo,Video", UserId: null, AlbumArtPn: null, MaxAlbumArtWidth: 0, MaxAlbumArtHeight: 0, MaxIconWidth: null, MaxIconHeight: null, MaxStreamingBitrate: 120000000, MaxStaticBitrate: 100000000, MusicStreamingTranscodingBitrate: 384000, MaxStaticMusicBitrate: null, SonyAggregationFlags: null, ProtocolInfo: null, TimelineOffsetSeconds: 0, RequiresPlainVideoItems: False, RequiresPlainFolders: False, EnableMSMediaReceiverRegistrar: False, IgnoreTranscodeByteRangeRequests: False, XmlRootAttributes: [], DirectPlayProfiles: [DirectPlayProfile { Container: "webm", AudioCodec: "vorbis,opus", VideoCodec: "vp8,vp9,av1", Type: Video }, DirectPlayProfile { Container: "mp4,m4v", AudioCodec: "aac,mp3,opus,flac,vorbis", VideoCodec: "h264,vp8,vp9,av1", Type: Video }, DirectPlayProfile { Container: "mov", AudioCodec: "aac,mp3,opus,flac,vorbis", VideoCodec: "h264", Type: Video }, DirectPlayProfile { Container: "opus", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "opus", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "mp3", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "aac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4a", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4b", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "flac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webma", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "webma", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "wav", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "ogg", AudioCodec: null, VideoCodec: null, Type: Audio }], TranscodingProfiles: [TranscodingProfile { Container: "ts", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "opus", Type: Audio, VideoCodec: null, AudioCodec: "opus", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "wav", Type: Audio, VideoCodec: null, AudioCodec: "wav", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "opus", Type: Audio, VideoCodec: null, AudioCodec: "opus", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "wav", Type: Audio, VideoCodec: null, AudioCodec: "wav", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "ts", Type: Video, VideoCodec: "h264", AudioCodec: "aac,mp3", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "webm", Type: Video, VideoCodec: "vpx", AudioCodec: "vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp4", Type: Video, VideoCodec: "h264", AudioCodec: "aac,mp3,opus,flac,vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: null, MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }], ContainerProfiles: [], CodecProfiles: [CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: "aac", Container: null }, CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: null, Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: NotEquals, Property: IsAnamorphic, Value: "true", IsRequired: False }, ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "high|main|baseline|constrained baseline|high 10", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "51", IsRequired: False }, ProfileCondition { Condition: NotEquals, Property: IsInterlaced, Value: "true", IsRequired: False }], ApplyConditions: [], Codec: "h264", Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: NotEquals, Property: IsAnamorphic, Value: "true", IsRequired: False }, ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "main", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "120", IsRequired: False }, ProfileCondition { Condition: NotEquals, Property: IsInterlaced, Value: "true", IsRequired: False }], ApplyConditions: [], Codec: "hevc", Container: null }], ResponseProfiles: [ResponseProfile { Container: "m4v", AudioCodec: null, VideoCodec: null, Type: Video, OrgPn: null, MimeType: "video/mp4", Conditions: [] }], SubtitleProfiles: [SubtitleProfile { Format: "vtt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ass", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ssa", Method: External, DidlMode: null, Language: null, Container: null }] }
[2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "ckd77". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec"
[2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec"
[2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.LiveTvManager: Opening channel stream from "Emby", external channel Id: "m3u_07fdd7bf72bdc4c2c213e6987c6cf89b2d8c957d36ef16734d480f2a56916453"
[2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Streaming Channel m3u_07fdd7bf72bdc4c2c213e6987c6cf89b2d8c957d36ef16734d480f2a56916453
[2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Live stream opened after 0.0041ms
[2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Returning mediasource streamId "2d8c957d36ef16734d480f2a56916453", mediaSource.Id "2d8c957d36ef16734d480f2a56916453", mediaSource.LiveStreamId null
[2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.Library.MediaSourceManager: Waiting 3000ms before probing the live stream
[2021-12-10 14:59:34.769 +01:00] [INF] [46] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: "/usr/lib/jellyfin-ffmpeg/ffprobe" "-analyzeduration 3000000 -i \"rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd\" -threads 0 -v warning -print_format json -show_streams -show_format"
[2021-12-10 14:59:44.799 +01:00] [ERR] [19] Emby.Server.Implementations.Library.MediaSourceManager: Error probing live tv stream
System.Exception: 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 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)
[2021-12-10 14:59:44.799 +01:00] [INF] [19] Emby.Server.Implementations.Library.MediaSourceManager: Live stream opened: {"Protocol":"Rtsp","Id":"2d8c957d36ef16734d480f2a56916453","Path":"rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd","Type":"Default","IsRemote":true,"ReadAtNativeFramerate":false,"IgnoreDts":true,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":false,"SupportsDirectPlay":true,"IsInfiniteStream":true,"RequiresOpening":true,"RequiresClosing":true,"LiveStreamId":"a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_2d8c957d36ef16734d480f2a56916453","RequiresLooping":false,"SupportsProbing":true,"MediaStreams":[{"VideoRange":"SDR","DisplayTitle":"SDR","IsInterlaced":true,"BitRate":20000000,"IsDefault":false,"IsForced":false,"Type":"Video","Index":-1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false},{"DisplayTitle":"","IsInterlaced":false,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":-1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false}],"MediaAttachments":[],"Formats":[],"Bitrate":20000000,"RequiredHttpHeaders":{},"AnalyzeDurationMs":3000}
[2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "ckd77". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec"
[2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec"
[2021-12-10 14:59:44.800 +01:00] [WRN] [19] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://vod.leduteil.lan:8096/Items/a88484e4b4023f2ee781d06cd1162088/PlaybackInfo?UserId=8bb9bc6634094e25921a7f214072372e&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=140000000" to "192.168.10.10" in 0:00:13.0411687 with Status Code 200
[2021-12-10 15:00:01.088 +01:00] [INF] [19] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 3000000 -rtsp_transport tcp -rtsp_transport udp -rtsp_flags prefer_tcp -fflags +igndts -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -maxrate 20000000 -bufsize 40000000 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none  -force_key_frames:0 "expr:gte(t,n_forced*3)" -vf "yadif=0:-1:0" -start_at_zero -flags -global_header -vsync -1 -codec:a:0 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/267a5bf0bd9975d43eed7759be454b85/" -hls_playlist_type event -hls_segment_filename "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85%d.ts" -y "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85.m3u8"
[2021-12-10 15:00:04.509 +01:00] [INF] [48] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.10.10" closed
[2021-12-10 15:00:11.120 +01:00] [ERR] [38] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[2021-12-10 15:00:26.337 +01:00] [INF] [40] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.10.10" request

FFmpeg logs

/videos/a88484e4-b402-3f2e-e781-d06cd1162088/live.m3u8

{"Protocol":3,"Id":"2d8c957d36ef16734d480f2a56916453","Path":"rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1\u0026service=201\u0026flavour=hd","EncoderPath":null,"EncoderProtocol":null,"Type":0,"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_2d8c957d36ef16734d480f2a56916453","BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":null,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":null,"CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"Comment":null,"TimeBase":null,"CodecTimeBase":null,"Title":null,"VideoRange":"SDR","localizedUndefined":null,"localizedDefault":null,"localizedForced":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":1,"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},{"Codec":null,"CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"Comment":null,"TimeBase":null,"CodecTimeBase":null,"Title":null,"VideoRange":null,"localizedUndefined":null,"localizedDefault":null,"localizedForced":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":0,"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":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":3000,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 3000000 -rtsp_transport tcp -rtsp_transport udp -rtsp_flags prefer_tcp -fflags +igndts -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -maxrate 20000000 -bufsize 40000000 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none  -force_key_frames:0 "expr:gte(t,n_forced*3)" -vf "yadif=0:-1:0" -start_at_zero -flags -global_header -vsync -1 -codec:a:0 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/267a5bf0bd9975d43eed7759be454b85/" -hls_playlist_type event -hls_segment_filename "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85%d.ts" -y "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85.m3u8"


ffmpeg version 4.3.1-Jellyfin Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --arch=amd64 --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-vdpau --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvenc --enable-nvdec --enable-ffnvcodec
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd: could not find codec parameters

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @ckd77 on GitHub (Dec 10, 2021). ### Please describe your bug Hi! I can't get the iptv from my freebox delta to work under jellyfin. My playlist.m3u works perfectly in VLC. I tested a comparison of the ffmpeg from jellyfin and the base one from the debian distro. Jellyfin ffmpeg test > root@f35e3ca803d1:/usr/lib/jellyfin-ffmpeg# ./ffmpeg -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" > ffmpeg version 4.3.1-Jellyfin Copyright (c) 2000-2020 the FFmpeg developers > built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04) > configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --arch=amd64 --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-vdpau --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvenc --enable-nvdec --enable-ffnvcodec > libavutil 56. 51.100 / 56. 51.100 > libavcodec 58. 91.100 / 58. 91.100 > libavformat 58. 45.100 / 58. 45.100 > libavdevice 58. 10.100 / 58. 10.100 > libavfilter 7. 85.100 / 7. 85.100 > libswscale 5. 7.100 / 5. 7.100 > libswresample 3. 7.100 / 3. 7.100 > libpostproc 55. 7.100 / 55. 7.100 > [rtsp @ 0x55f3488d4d40] UDP timeout, retrying with TCP > [rtsp @ 0x55f3488d4d40] method SETUP failed: 461 Unsupported Transport > rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd: could not find codec parameters Debian ffmpeg test > # ffmpeg -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" > ffmpeg version 4.3.3-0+deb11u1 Copyright (c) 2000-2021 the FFmpeg developers > built with gcc 10 (Debian 10.2.1-6) > configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared > libavutil 56. 51.100 / 56. 51.100 > libavcodec 58. 91.100 / 58. 91.100 > libavformat 58. 45.100 / 58. 45.100 > libavdevice 58. 10.100 / 58. 10.100 > libavfilter 7. 85.100 / 7. 85.100 > libavresample 4. 0. 0 / 4. 0. 0 > libswscale 5. 7.100 / 5. 7.100 > libswresample 3. 7.100 / 3. 7.100 > libpostproc 55. 7.100 / 55. 7.100 > [NULL @ 0x55b2145fa340] non-existing PPS 0 referenced > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [aac @ 0x55b2145f3c80] Multiple frames in a packet. > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > [h264 @ 0x55b2145fa340] non-existing PPS 0 referenced > Last message repeated 1 times > [h264 @ 0x55b2145fa340] decode_slice_header error > [h264 @ 0x55b2145fa340] no frame! > Input #0, rtsp, from 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd': > Metadata: > title : unknown > comment : unknown > Duration: N/A, start: 5297.065444, bitrate: N/A > Program 13675 > Stream #0:2: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(top first), 1440x1080 [SAR 4:3 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc > Stream #0:3(fra): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 140 kb/s > Stream #0:4(qad): Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 63 kb/s > Stream #0:0(qaa): Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 64 kb/s > Stream #0:1(fra,fra,fra): Subtitle: dvb_teletext, 492x250 > At least one output file must be specified I tested the apha2 the problem persists. Any idea why? Thank ### Jellyfin Version 10.7.7 ### if other: _No response_ ### Environment ```markdown - OS: Debian - Virtualization: Docker - Clients: Browser - Browser: Chrome 96.0.4664.93 - FFmpeg Version: 4.3.1 - Playback Method: Direct Stream IPTV M3U - Hardware Acceleration: N/A - Plugins: N/A - Reverse Proxy: N/A - Base URL: N/A - Networking: Host - Storage: local ``` ### Jellyfin logs ```shell [2021-12-10 14:59:31.765 +01:00] [INF] [46] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: DeviceProfile { Name: null, Id: null, Identification: null, FriendlyName: null, Manufacturer: null, ManufacturerUrl: null, ModelName: null, ModelDescription: null, ModelNumber: null, ModelUrl: null, SerialNumber: null, EnableAlbumArtInDidl: False, EnableSingleAlbumArtLimit: False, EnableSingleSubtitleLimit: False, SupportedMediaTypes: "Audio,Photo,Video", UserId: null, AlbumArtPn: null, MaxAlbumArtWidth: 0, MaxAlbumArtHeight: 0, MaxIconWidth: null, MaxIconHeight: null, MaxStreamingBitrate: 120000000, MaxStaticBitrate: 100000000, MusicStreamingTranscodingBitrate: 384000, MaxStaticMusicBitrate: null, SonyAggregationFlags: null, ProtocolInfo: null, TimelineOffsetSeconds: 0, RequiresPlainVideoItems: False, RequiresPlainFolders: False, EnableMSMediaReceiverRegistrar: False, IgnoreTranscodeByteRangeRequests: False, XmlRootAttributes: [], DirectPlayProfiles: [DirectPlayProfile { Container: "webm", AudioCodec: "vorbis,opus", VideoCodec: "vp8,vp9,av1", Type: Video }, DirectPlayProfile { Container: "mp4,m4v", AudioCodec: "aac,mp3,opus,flac,vorbis", VideoCodec: "h264,vp8,vp9,av1", Type: Video }, DirectPlayProfile { Container: "mov", AudioCodec: "aac,mp3,opus,flac,vorbis", VideoCodec: "h264", Type: Video }, DirectPlayProfile { Container: "opus", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "opus", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "mp3", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "aac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4a", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "m4b", AudioCodec: "aac", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "flac", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webma", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "webm", AudioCodec: "webma", VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "wav", AudioCodec: null, VideoCodec: null, Type: Audio }, DirectPlayProfile { Container: "ogg", AudioCodec: null, VideoCodec: null, Type: Audio }], TranscodingProfiles: [TranscodingProfile { Container: "ts", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "opus", Type: Audio, VideoCodec: null, AudioCodec: "opus", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "wav", Type: Audio, VideoCodec: null, AudioCodec: "wav", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "opus", Type: Audio, VideoCodec: null, AudioCodec: "opus", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp3", Type: Audio, VideoCodec: null, AudioCodec: "mp3", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "aac", Type: Audio, VideoCodec: null, AudioCodec: "aac", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "wav", Type: Audio, VideoCodec: null, AudioCodec: "wav", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "ts", Type: Video, VideoCodec: "h264", AudioCodec: "aac,mp3", Protocol: "hls", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 1, SegmentLength: 0, BreakOnNonKeyFrames: True }, TranscodingProfile { Container: "webm", Type: Video, VideoCodec: "vpx", AudioCodec: "vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Streaming, EnableSubtitlesInManifest: False, MaxAudioChannels: "6", MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }, TranscodingProfile { Container: "mp4", Type: Video, VideoCodec: "h264", AudioCodec: "aac,mp3,opus,flac,vorbis", Protocol: "http", EstimateContentLength: False, EnableMpegtsM2TsMode: False, TranscodeSeekInfo: Auto, CopyTimestamps: False, Context: Static, EnableSubtitlesInManifest: False, MaxAudioChannels: null, MinSegments: 0, SegmentLength: 0, BreakOnNonKeyFrames: False }], ContainerProfiles: [], CodecProfiles: [CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: "aac", Container: null }, CodecProfile { Type: VideoAudio, Conditions: [ProfileCondition { Condition: Equals, Property: IsSecondaryAudio, Value: "false", IsRequired: False }], ApplyConditions: [], Codec: null, Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: NotEquals, Property: IsAnamorphic, Value: "true", IsRequired: False }, ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "high|main|baseline|constrained baseline|high 10", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "51", IsRequired: False }, ProfileCondition { Condition: NotEquals, Property: IsInterlaced, Value: "true", IsRequired: False }], ApplyConditions: [], Codec: "h264", Container: null }, CodecProfile { Type: Video, Conditions: [ProfileCondition { Condition: NotEquals, Property: IsAnamorphic, Value: "true", IsRequired: False }, ProfileCondition { Condition: EqualsAny, Property: VideoProfile, Value: "main", IsRequired: False }, ProfileCondition { Condition: LessThanEqual, Property: VideoLevel, Value: "120", IsRequired: False }, ProfileCondition { Condition: NotEquals, Property: IsInterlaced, Value: "true", IsRequired: False }], ApplyConditions: [], Codec: "hevc", Container: null }], ResponseProfiles: [ResponseProfile { Container: "m4v", AudioCodec: null, VideoCodec: null, Type: Video, OrgPn: null, MimeType: "video/mp4", Conditions: [] }], SubtitleProfiles: [SubtitleProfile { Format: "vtt", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ass", Method: External, DidlMode: null, Language: null, Container: null }, SubtitleProfile { Format: "ssa", Method: External, DidlMode: null, Language: null, Container: null }] } [2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "ckd77". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec" [2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2021-12-10 14:59:31.766 +01:00] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec" [2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.LiveTvManager: Opening channel stream from "Emby", external channel Id: "m3u_07fdd7bf72bdc4c2c213e6987c6cf89b2d8c957d36ef16734d480f2a56916453" [2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Streaming Channel m3u_07fdd7bf72bdc4c2c213e6987c6cf89b2d8c957d36ef16734d480f2a56916453 [2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Live stream opened after 0.0041ms [2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Returning mediasource streamId "2d8c957d36ef16734d480f2a56916453", mediaSource.Id "2d8c957d36ef16734d480f2a56916453", mediaSource.LiveStreamId null [2021-12-10 14:59:31.767 +01:00] [INF] [46] Emby.Server.Implementations.Library.MediaSourceManager: Waiting 3000ms before probing the live stream [2021-12-10 14:59:34.769 +01:00] [INF] [46] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: "/usr/lib/jellyfin-ffmpeg/ffprobe" "-analyzeduration 3000000 -i \"rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd\" -threads 0 -v warning -print_format json -show_streams -show_format" [2021-12-10 14:59:44.799 +01:00] [ERR] [19] Emby.Server.Implementations.Library.MediaSourceManager: Error probing live tv stream System.Exception: 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 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) [2021-12-10 14:59:44.799 +01:00] [INF] [19] Emby.Server.Implementations.Library.MediaSourceManager: Live stream opened: {"Protocol":"Rtsp","Id":"2d8c957d36ef16734d480f2a56916453","Path":"rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd","Type":"Default","IsRemote":true,"ReadAtNativeFramerate":false,"IgnoreDts":true,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":false,"SupportsDirectPlay":true,"IsInfiniteStream":true,"RequiresOpening":true,"RequiresClosing":true,"LiveStreamId":"a17c75760a04e99b68cf766e11316e1c_09efa0d56b934a82adec00a87b837fb0_2d8c957d36ef16734d480f2a56916453","RequiresLooping":false,"SupportsProbing":true,"MediaStreams":[{"VideoRange":"SDR","DisplayTitle":"SDR","IsInterlaced":true,"BitRate":20000000,"IsDefault":false,"IsForced":false,"Type":"Video","Index":-1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false},{"DisplayTitle":"","IsInterlaced":false,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":-1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false}],"MediaAttachments":[],"Formats":[],"Bitrate":20000000,"RequiredHttpHeaders":{},"AnalyzeDurationMs":3000} [2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "ckd77". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec" [2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", Path: "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2021-12-10 14:59:44.800 +01:00] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: "Unknown Profile", No video direct play profiles found for "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" with codec "Unknown codec" [2021-12-10 14:59:44.800 +01:00] [WRN] [19] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://vod.leduteil.lan:8096/Items/a88484e4b4023f2ee781d06cd1162088/PlaybackInfo?UserId=8bb9bc6634094e25921a7f214072372e&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=140000000" to "192.168.10.10" in 0:00:13.0411687 with Status Code 200 [2021-12-10 15:00:01.088 +01:00] [INF] [19] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 3000000 -rtsp_transport tcp -rtsp_transport udp -rtsp_flags prefer_tcp -fflags +igndts -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -maxrate 20000000 -bufsize 40000000 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -force_key_frames:0 "expr:gte(t,n_forced*3)" -vf "yadif=0:-1:0" -start_at_zero -flags -global_header -vsync -1 -codec:a:0 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/267a5bf0bd9975d43eed7759be454b85/" -hls_playlist_type event -hls_segment_filename "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85%d.ts" -y "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85.m3u8" [2021-12-10 15:00:04.509 +01:00] [INF] [48] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.10.10" closed [2021-12-10 15:00:11.120 +01:00] [ERR] [38] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1 [2021-12-10 15:00:26.337 +01:00] [INF] [40] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.10.10" request ``` ### FFmpeg logs ```shell /videos/a88484e4-b402-3f2e-e781-d06cd1162088/live.m3u8 {"Protocol":3,"Id":"2d8c957d36ef16734d480f2a56916453","Path":"rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1\u0026service=201\u0026flavour=hd","EncoderPath":null,"EncoderProtocol":null,"Type":0,"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_2d8c957d36ef16734d480f2a56916453","BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":null,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":null,"CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"Comment":null,"TimeBase":null,"CodecTimeBase":null,"Title":null,"VideoRange":"SDR","localizedUndefined":null,"localizedDefault":null,"localizedForced":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":1,"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},{"Codec":null,"CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"Comment":null,"TimeBase":null,"CodecTimeBase":null,"Title":null,"VideoRange":null,"localizedUndefined":null,"localizedDefault":null,"localizedForced":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":0,"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":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":3000,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null} /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 3000000 -rtsp_transport tcp -rtsp_transport udp -rtsp_flags prefer_tcp -fflags +igndts -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 libx264 -pix_fmt yuv420p -preset superfast -crf 23 -maxrate 20000000 -bufsize 40000000 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -force_key_frames:0 "expr:gte(t,n_forced*3)" -vf "yadif=0:-1:0" -start_at_zero -flags -global_header -vsync -1 -codec:a:0 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/267a5bf0bd9975d43eed7759be454b85/" -hls_playlist_type event -hls_segment_filename "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85%d.ts" -y "/config/data/transcodes/267a5bf0bd9975d43eed7759be454b85.m3u8" ffmpeg version 4.3.1-Jellyfin Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04) configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --arch=amd64 --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-vdpau --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvenc --enable-nvdec --enable-ffnvcodec libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd: could not find codec parameters ``` ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here _No response_ ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the bug label 2026-02-06 23:21:25 +03:00
Author
Owner

@crobibero commented on GitHub (Dec 10, 2021):

Try switching rtsp:// with http:// as suggested here https://github.com/jellyfin/jellyfin/issues/4282

@crobibero commented on GitHub (Dec 10, 2021): Try switching rtsp:// with http:// as suggested here https://github.com/jellyfin/jellyfin/issues/4282
Author
Owner

@ckd77 commented on GitHub (Dec 10, 2021):

Try switching rtsp:// with http:// as suggested here #4282

Already tested and this solution did not work :(

@ckd77 commented on GitHub (Dec 10, 2021): > Try switching rtsp:// with http:// as suggested here #4282 Already tested and this solution did not work :(
Author
Owner

@ckd77 commented on GitHub (Dec 13, 2021):

I installed jellyfin outside of docker, everything works fine, and even jellyfin is more responsive like loading content :) Bye docker!

@ckd77 commented on GitHub (Dec 13, 2021): I installed jellyfin outside of docker, everything works fine, and even jellyfin is more responsive like loading content :) Bye docker!
Author
Owner

@MayeulC commented on GitHub (Apr 20, 2022):

There are some issues with the Freebox:

  • It only supports UDP rstp. The actual data is sent as UPD to the server, but:
    • A firewall might block it
    • Docker NAT rules don't know where to send it as it's a new incoming connection unrelated to outgoing connections
  • In the control channel, the Freebox announces a port, but sends the data on another: https://github.com/aler9/rtsp-simple-server/issues/691

I sidestepped these by running rstp-simple-server as a rtsp proxy outside of docker to make the udp->tcp conversion, though I'm having other issues (#7630). Edit: now fixed, it somewhat works (transcode only).

@MayeulC commented on GitHub (Apr 20, 2022): There are some issues with the Freebox: - It only supports UDP rstp. The actual data is sent as UPD to the server, but: - A firewall might block it - Docker NAT rules don't know where to send it as it's a new incoming connection unrelated to outgoing connections - In the control channel, the Freebox announces a port, but sends the data on another: https://github.com/aler9/rtsp-simple-server/issues/691 I sidestepped these by running rstp-simple-server as a rtsp proxy outside of docker to make the udp->tcp conversion, though I'm having other issues (#7630). Edit: now fixed, it somewhat works (transcode only).
Author
Owner

@Mavyre commented on GitHub (Nov 28, 2022):

I sidestepped these by running rstp-simple-server as a rtsp proxy outside of docker to make the udp->tcp conversion

Could you specify how you did that using rtsp-simple-server? I'm interested into making that work. Thanks!

@Mavyre commented on GitHub (Nov 28, 2022): > I sidestepped these by running rstp-simple-server as a rtsp proxy outside of docker to make the udp->tcp conversion Could you specify how you did that using rtsp-simple-server? I'm interested into making that work. Thanks!
Author
Owner

@MayeulC commented on GitHub (Nov 29, 2022):

Well, since rtsp-simple-server does not support dynamically proxying everything (https://github.com/aler9/rtsp-simple-server/issues/824), the most complicated step is to transform the .m3u playlist into a configuration file for rtsp-simple-server, then regenerate the playlist (it is also needed to strip characters such as & and ? from the URLs).

This is the script I wrote some time ago to perform that step, it might not be perfect. The invocation goes like that: ./playlist2yaml.sh source-playlist.m3u target-paths.yaml target-new-playlist.m3u.

#!/bin/bash

PROXY="127.0.0.1:8554" # Could use [::1]:8554 for IPv6

OLD="rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service="
NEW="rtsp://$PROXY/"
PATTERN="stream"

OPTIONS="""\
    sourceAnyPortEnable: yes
    sourceOnDemand: yes  
"""
echo "paths:" > $2
echo -n "" > $3
while IFS= read -r line
do
	item=$(echo $line | grep rtsp)
	if [[ -n $item ]]
	then
		id=$(echo $item | sed "s $OLD  " |sed "s & ~ g" | sed "s = . g")
		echo "  '$PATTERN$id':" >> $2
		echo "    source: '$item'" >> $2
		echo "$OPTIONS" >> $2
		echo $NEW$PATTERN$id >> $3
	else
		echo $line >> $3
	fi
done < $1

Then concatenate the yaml with the rest of a rtsp config.

You can check it's working if ffprobe lists available streams:

ffprobe -rtsp_transport udp -analyzeduration 3000000 -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=ld" -threads 0 -v warning -print_format json -show_streams -show_format (this should work outside the container on any computer, now try replacing the URL with one that targets your proxy. Double check with transport set to tcp instead of udp. Then try inside the container with /usr/lib/jellyfin-ffmpeg/ffprobe

You may need to open your firewall to incoming feeds from the freebox for anything to work: iptables -A INPUT -p udp -s 212.27.38.253 -j ACCEPT (this is the ip of mafreebox.freebox.fr).

@MayeulC commented on GitHub (Nov 29, 2022): Well, since rtsp-simple-server does not support dynamically proxying everything (https://github.com/aler9/rtsp-simple-server/issues/824), the most complicated step is to transform the .m3u playlist into a configuration file for rtsp-simple-server, then regenerate the playlist (it is also needed to strip characters such as `&` and `?` from the URLs). This is the script I wrote some time ago to perform that step, it might not be perfect. The invocation goes like that: `./playlist2yaml.sh source-playlist.m3u target-paths.yaml target-new-playlist.m3u`. ```bash #!/bin/bash PROXY="127.0.0.1:8554" # Could use [::1]:8554 for IPv6 OLD="rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=" NEW="rtsp://$PROXY/" PATTERN="stream" OPTIONS="""\ sourceAnyPortEnable: yes sourceOnDemand: yes """ echo "paths:" > $2 echo -n "" > $3 while IFS= read -r line do item=$(echo $line | grep rtsp) if [[ -n $item ]] then id=$(echo $item | sed "s $OLD " |sed "s & ~ g" | sed "s = . g") echo " '$PATTERN$id':" >> $2 echo " source: '$item'" >> $2 echo "$OPTIONS" >> $2 echo $NEW$PATTERN$id >> $3 else echo $line >> $3 fi done < $1 ``` Then concatenate the yaml with the rest of a rtsp config. You can check it's working if ffprobe lists available streams: `ffprobe -rtsp_transport udp -analyzeduration 3000000 -i "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=ld" -threads 0 -v warning -print_format json -show_streams -show_format` (this should work outside the container on any computer, now try replacing the URL with one that targets your proxy. Double check with transport set to `tcp` instead of `udp`. Then try inside the container with `/usr/lib/jellyfin-ffmpeg/ffprobe` You may need to open your firewall to incoming feeds from the freebox for anything to work: `iptables -A INPUT -p udp -s 212.27.38.253 -j ACCEPT` (this is the ip of `mafreebox.freebox.fr`).
Author
Owner

@Mavyre commented on GitHub (Nov 30, 2022):

Great discovery. However, as I'm bridged behind a custom router, I need to enable port forwarding for udp to the rtsp simple server. As long as it can't request Free to use some ports as VLC allows to do (RTSP Client port), I can't use it :(

@Mavyre commented on GitHub (Nov 30, 2022): Great discovery. However, as I'm bridged behind a custom router, I need to enable port forwarding for udp to the rtsp simple server. As long as it can't request Free to use some ports as VLC allows to do (RTSP Client port), I can't use it :(
Author
Owner

@MayeulC commented on GitHub (Nov 30, 2022):

@Mavyre I think you should be able to run rtsp-simple-server on your custom router?

You can also forward every UDP stream from 212.27.38.253 (mafreebox.freebox.fr) to your server, I don't think it will be an issue for other features.

@MayeulC commented on GitHub (Nov 30, 2022): @Mavyre I think you should be able to run `rtsp-simple-server` on your custom router? You can also forward every UDP stream from 212.27.38.253 (mafreebox.freebox.fr) to your server, I don't think it will be an issue for other features.
Author
Owner

@Mavyre commented on GitHub (Dec 13, 2022):

@Mavyre I think you should be able to run rtsp-simple-server on your custom router?

You can also forward every UDP stream from 212.27.38.253 (mafreebox.freebox.fr) to your server, I don't think it will be an issue for other features.

That was a good idea. I reconfigured my docker network in a macvlan, which allows me to directly "plug" the docker onto the network. I then forwarded ports 5000-65535 on the router from 212.27.38.253 to my docker IP. IPTV working, tadah!

Have you had any issue with the XMLTV from free, though? Can't get it to work either

@Mavyre commented on GitHub (Dec 13, 2022): > @Mavyre I think you should be able to run `rtsp-simple-server` on your custom router? > > You can also forward every UDP stream from 212.27.38.253 (mafreebox.freebox.fr) to your server, I don't think it will be an issue for other features. That was a good idea. I reconfigured my docker network in a macvlan, which allows me to directly "plug" the docker onto the network. I then forwarded ports 5000-65535 on the router from 212.27.38.253 to my docker IP. IPTV working, tadah! Have you had any issue with the XMLTV from free, though? Can't get it to work either
Author
Owner

@MayeulC commented on GitHub (Dec 14, 2022):

forwarded [RSTP] to my docker IP

That's indeed better than what I was doing; no need for proxying.

The XMLTV used to work (albeit with manual mapping of channels). But it seems like it doesn't these days, possibly due to a jellyfin change? Here are the logs:

[12:54:15] [INF] [101] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Parsed channel: La chaîne 32 (bas débit)
[12:54:15] [INF] [101] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Parsed channel: La chaîne 32 (auto)
[12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider: xmltv path: http://xmltvfree.free.fr/xmltv.zip
[12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider: Downloading xmltv listings from http://xmltvfree.free.fr/xmltv.zip
[12:54:16] [ERR] [96] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Error adding metadata
System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)   
   at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
   at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlReader.ReadToDescendant(String name)
   at Jellyfin.XmlTv.XmlTvReader.GetChannels()
   at Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider.GetChannels(ListingsProviderInfo info, CancellationToken cancellationToken)
   at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.GetEpgChannels(IListingsProvider provider, ListingsProviderInfo info, Boolean enableCache, CancellationT>
   at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.AddMetadata(IListingsProvider provider, ListingsProviderInfo info, IEnumerable`1 tunerChannels, Boolean >
   at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.GetChannelsAsync(Boolean enableCache, CancellationToken cancellationToken)
[12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.LiveTvManager: Refreshing guide with 7 days of guide data
[12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider: xmltv path: http://xmltvfree.free.fr/xmltv.zip
[12:54:16] [ERR] [96] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Error adding metadata
System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.

I'm probably going to open a dedicated issue.

@MayeulC commented on GitHub (Dec 14, 2022): > forwarded [RSTP] to my docker IP That's indeed better than what I was doing; no need for proxying. The XMLTV used to work (albeit with manual mapping of channels). But it seems like it doesn't these days, possibly due to a jellyfin change? Here are the logs: ``` [12:54:15] [INF] [101] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Parsed channel: La chaîne 32 (bas débit) [12:54:15] [INF] [101] Emby.Server.Implementations.LiveTv.TunerHosts.M3UTunerHost: Parsed channel: La chaîne 32 (auto) [12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider: xmltv path: http://xmltvfree.free.fr/xmltv.zip [12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider: Downloading xmltv listings from http://xmltvfree.free.fr/xmltv.zip [12:54:16] [ERR] [96] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Error adding metadata System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.Throw(String res, String arg) at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlReader.ReadToDescendant(String name) at Jellyfin.XmlTv.XmlTvReader.GetChannels() at Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider.GetChannels(ListingsProviderInfo info, CancellationToken cancellationToken) at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.GetEpgChannels(IListingsProvider provider, ListingsProviderInfo info, Boolean enableCache, CancellationT> at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.AddMetadata(IListingsProvider provider, ListingsProviderInfo info, IEnumerable`1 tunerChannels, Boolean > at Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV.GetChannelsAsync(Boolean enableCache, CancellationToken cancellationToken) [12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.LiveTvManager: Refreshing guide with 7 days of guide data [12:54:16] [INF] [96] Emby.Server.Implementations.LiveTv.Listings.XmlTvListingsProvider: xmltv path: http://xmltvfree.free.fr/xmltv.zip [12:54:16] [ERR] [96] Emby.Server.Implementations.LiveTv.EmbyTV.EmbyTV: Error adding metadata System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1. ``` I'm probably going to open a dedicated issue.
Author
Owner

@Mavyre commented on GitHub (Dec 14, 2022):

@MayeulC Sounds like it's trying to directly read an XML file. I've digged into XMLTV thing, and you can add directly http://xmltvfree.free.fr/xmltv.xml. However, it seems like that xmltv isn't update since... 2006? Last update timestamp (http://xmltvfree.free.fr/timestamp.txt) indicates Sun Mar 5 13:09:56 CET 2006 😞

However, I'm currently trying another solution someone developed for TVHeadEnd here: https://gitlab.com/snouf/tvheadend_tools/. Their tv_grab_fr_mafreebox_hts python script grabs everything from mafreebox epg programme, and converts it to xmltv. It's pretty slow running, but it can grab the programme from free itself... I'll keep you posted about how well or not it works for Jellyfin

@Mavyre commented on GitHub (Dec 14, 2022): @MayeulC Sounds like it's trying to directly read an XML file. I've digged into XMLTV thing, and you can add directly http://xmltvfree.free.fr/xmltv.xml. However, it seems like that xmltv isn't update since... 2006? Last update timestamp (http://xmltvfree.free.fr/timestamp.txt) indicates Sun Mar 5 13:09:56 CET 2006 😞 However, I'm currently trying another solution someone developed for TVHeadEnd here: https://gitlab.com/snouf/tvheadend_tools/. Their tv_grab_fr_mafreebox_hts python script grabs everything from mafreebox epg programme, and converts it to xmltv. It's pretty slow running, but it can grab the programme from free itself... I'll keep you posted about how well or not it works for Jellyfin
Author
Owner

@MayeulC commented on GitHub (Dec 14, 2022):

@Mavyre I hadn't realized it hadn't been updated in such a long time. Ideally, someone would run that script and upload it to a website periodically (possibly github pages). Let me know how this goes, and maybe we can work something out!

Edit: looking at the code, it relies heavily on TVHeadEnd, I think it could be simplified a lot to grab both the m3u and guide from the Freebox, then export a proper xmltv. Don't hesitate to ping me on Matrix.

@MayeulC commented on GitHub (Dec 14, 2022): @Mavyre I hadn't realized it hadn't been updated in such a long time. Ideally, someone would run that script and upload it to a website periodically (possibly github pages). Let me know how this goes, and maybe we can work something out! Edit: looking at the code, it relies heavily on TVHeadEnd, I think it could be simplified a lot to grab both the m3u and guide from the Freebox, then export a proper xmltv. Don't hesitate to ping me on Matrix.
Author
Owner

@Mavyre commented on GitHub (Dec 14, 2022):

Maybe we could do that, but the fact there is almost 1100 channels which at least half of it, isn't in the Free TV m3u, makes a lot of work to initially filter the useful channels from the initial configuration. That could be doable with a oneshot script, though.
I'll first keep it running at home regularly for my usage with a restricted list of channels to grab!

@Mavyre commented on GitHub (Dec 14, 2022): Maybe we could do that, but the fact there is almost 1100 channels which at least half of it, isn't in the Free TV m3u, makes a lot of work to initially filter the useful channels from the initial configuration. That could be doable with a oneshot script, though. I'll first keep it running at home regularly for my usage with a restricted list of channels to grab!
Author
Owner

@Mavyre commented on GitHub (Dec 15, 2022):

Update: so far, using that script to generate an xmltv and importing it does work in Jellyfin!

@Mavyre commented on GitHub (Dec 15, 2022): Update: so far, using that script to generate an xmltv and importing it does work in Jellyfin!
Author
Owner

@Murazaki commented on GitHub (Dec 17, 2022):

@Mavyre Hey tried running this code but unsuccessfully, did you made any modifications to make it work properly ? (I have to say I have too much on my plate to dig more though)

@Murazaki commented on GitHub (Dec 17, 2022): @Mavyre Hey tried running this code but unsuccessfully, did you made any modifications to make it work properly ? (I have to say I have too much on my plate to dig more though)
Author
Owner

@Mavyre commented on GitHub (Dec 19, 2022):

@Murazaki No modification needed.

First you need to install slugify: pip3 install python-slugify

Then, under a Free internet connection, configure the channels you want and run it. Something like:

./tv_grab_fr_mafreebox_hts.py --verbose 1>/path/to/xmltv.xml
@Mavyre commented on GitHub (Dec 19, 2022): @Murazaki No modification needed. First you need to install slugify: `pip3 install python-slugify` Then, under a Free internet connection, configure the channels you want and run it. Something like: ```bash./tv_grab_fr_mafreebox_hts.py --configure ./tv_grab_fr_mafreebox_hts.py --verbose 1>/path/to/xmltv.xml ```
Author
Owner

@Mavyre commented on GitHub (Dec 20, 2022):

@MayeulC So I've made a great progress about auto XMLTV generation from the Freebox m3u.

I generated a config file using tv_grab_fr_mafreebox_hts.py --config-file orig.conf --configure, inputing 1 to include all channels by default. I then created a barbaric but working command that filters the channels to include in the XMLTV generation using the freebox m3u:

curl http://mafreebox.freebox.fr/freeboxtv/playlist.m3u | grep "#EXTINF" | cut -d "-" -f2 | cut -d "(" -f1 | sed 's,^ *,,; s, *$,,' | uniq | xargs -d '\n' -I %s grep -im1 "%s" orig.conf 1> gen.conf

That creates a gen.conf file which only contains channels available from the Freebox itself. I finally run a cron command to generate the xmltv file for the next 14 days:

tv_grab_fr_mafreebox_hts.py --config-file gen.conf --verbose --days 14 1>/path/to/xmltv.xml

I'll keep an eye to check if everything is working properly!

Edit: Everything does work!

@Mavyre commented on GitHub (Dec 20, 2022): @MayeulC So I've made a great progress about auto XMLTV generation from the Freebox m3u. I generated a config file using `tv_grab_fr_mafreebox_hts.py --config-file orig.conf --configure`, inputing 1 to include all channels by default. I then created a barbaric but working command that filters the channels to include in the XMLTV generation using the freebox m3u: ```bash curl http://mafreebox.freebox.fr/freeboxtv/playlist.m3u | grep "#EXTINF" | cut -d "-" -f2 | cut -d "(" -f1 | sed 's,^ *,,; s, *$,,' | uniq | xargs -d '\n' -I %s grep -im1 "%s" orig.conf 1> gen.conf ``` That creates a `gen.conf` file which only contains channels available from the Freebox itself. I finally run a cron command to generate the xmltv file for the next 14 days: ```bash tv_grab_fr_mafreebox_hts.py --config-file gen.conf --verbose --days 14 1>/path/to/xmltv.xml ``` I'll keep an eye to check if everything is working properly! Edit: Everything does work!
Author
Owner

@LelouBil commented on GitHub (Aug 2, 2023):

Hey, so I would like a bit of help regarding making jellyfin able to read the rtsp streams of the Freebox.
Currently I have Jellyfin running in a docker container with only the web port being proxied trought a reverse proxy, nothing else is opened.

What steps do I need to take to make it work (everything is already configured inside Jellyfin, I'm talking about making the UDP rtmp feed readable which I understood was possible without proxying by reading this thread).

@LelouBil commented on GitHub (Aug 2, 2023): Hey, so I would like a bit of help regarding making jellyfin able to read the rtsp streams of the Freebox. Currently I have Jellyfin running in a docker container with only the web port being proxied trought a reverse proxy, nothing else is opened. What steps do I need to take to make it work (everything is already configured inside Jellyfin, I'm talking about making the UDP rtmp feed readable which I understood was possible without proxying by reading this thread).
Author
Owner

@MayeulC commented on GitHub (Aug 9, 2023):

Something like that (untested, adapted from there, replace 172.1.2.3 with your jellyfin container's IP address:

sysctl net.ipv4.ip_forward=1
iptables --table nat --append PREROUTING --in-interface eth0 --protocol udp --source 212.27.38.253  --destination-port 5000:65535  --jump DNAT --to-destination 172.1.2.3:5000:65535

Edit: though with https://github.com/bluenviron/mediamtx/pull/2799 the proxy part is much simpler!

@MayeulC commented on GitHub (Aug 9, 2023): Something like that (untested, adapted from [there](https://superuser.com/a/1715976), replace `172.1.2.3` with your jellyfin container's IP address: ``` sysctl net.ipv4.ip_forward=1 iptables --table nat --append PREROUTING --in-interface eth0 --protocol udp --source 212.27.38.253 --destination-port 5000:65535 --jump DNAT --to-destination 172.1.2.3:5000:65535 ``` Edit: though with https://github.com/bluenviron/mediamtx/pull/2799 the proxy part is much simpler!
Author
Owner

@Fradouille commented on GitHub (Aug 31, 2025):

For my part, I was able to resolve this issue by setting the network mode to Host and not Bridge.
network_mode: "host"

@Fradouille commented on GitHub (Aug 31, 2025): For my part, I was able to resolve this issue by setting the network mode to Host and not Bridge. network_mode: "host"
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#3435