jellyfin / jellyfin

The Free Software Media System
https://jellyfin.org
GNU General Public License v2.0
30.97k stars 2.86k forks source link

[Issue]: Live TV (m3u tuner) broken #11679

Open Crudelis98 opened 2 weeks ago

Crudelis98 commented 2 weeks ago

Please describe your bug

I have m3u file with following content:

EXTM3U TV

EXTINF:-1,CH1

http://192.168.1.232:6666/1

EXTINF:-1,CH2

http://192.168.1.232:6666/2

...... After updating to 10.9.1 or 10.9.0, live TV is not working any more.

Reproduction Steps

  1. Create any m3u tuner in live TV.
  2. Try to play any channel from list.
  3. Error, it worked in jelly 10.8.X and works in VLC.

Jellyfin Version

10.9.0

if other:

10.9.1

Environment

- OS: Windows 10
- Linux Kernel: -
- Virtualization: - 
- Clients: All
- Browser: All
- FFmpeg Version: provided with 10.9.1
- Playback Method: All
- Hardware Acceleration: yes/no
- GPU Model: GTX 1060
- Plugins: -
- Reverse Proxy: no
- Base URL: -
- Networking: same subnet
- Storage: SSD local

Jellyfin logs

[13:56:37] [INF] [8] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Crudelis. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[13:56:37] [INF] [8] Jellyfin.LiveTv.LiveTvMediaSourceProvider: Opening channel stream from Emby, external channel Id: m3u_3773af0243f6f34c890ad662b0e60f90ccb4a485d404f671f15ea417167bde02
[13:56:37] [INF] [8] Jellyfin.LiveTv.DefaultLiveTvService: Streaming Channel m3u_3773af0243f6f34c890ad662b0e60f90ccb4a485d404f671f15ea417167bde02
[13:56:38] [INF] [9] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Opening SharedHttpStream Live stream from http://192.168.1.232:6666/1
[13:56:38] [INF] [9] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Beginning SharedHttpStream stream to C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\bee60074e7864f998591a52143a4975a.ts
[13:56:38] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Live stream opened after 468.9187ms
[13:56:38] [INF] [9] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Deleting temp file C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\bee60074e7864f998591a52143a4975a.ts
[13:56:38] [INF] [10] Jellyfin.LiveTv.DefaultLiveTvService: Returning mediasource streamId ccb4a485d404f671f15ea417167bde02, mediaSource.Id ccb4a485d404f671f15ea417167bde02, mediaSource.LiveStreamId null
[13:56:38] [INF] [10] Emby.Server.Implementations.Library.MediaSourceManager: Waiting 3000ms before probing the live stream
[13:56:41] [INF] [9] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting ffprobe with args -analyzeduration 3000000 -probesize 1G -i "http://169.254.224.54:8096/LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts" -threads 0 -v warning -print_format json -show_streams -show_format
[13:56:41] [ERR] [6] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request: Could not find file 'C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\bee60074e7864f998591a52143a4975a.ts'. URL GET /LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts.
[13:56:41] [ERR] [10] 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, CancellationToken cancellationToken) in C:\Users\DOM\Downloads\jellyfin-master\MediaBrowser.MediaEncoding\Encoder\MediaEncoder.cs:line 565
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken) in C:\Users\DOM\Downloads\jellyfin-master\MediaBrowser.MediaEncoding\Encoder\MediaEncoder.cs:line 585
   at Emby.Server.Implementations.Library.LiveStreamHelper.AddMediaInfoWithProbe(MediaSourceInfo mediaSource, Boolean isAudio, String cacheKey, Boolean addProbeDelay, CancellationToken cancellationToken) in C:\Users\DOM\Downloads\jellyfin-master\Emby.Server.Implementations\Library\LiveStreamHelper.cs:line 81
   at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken) in C:\Users\DOM\Downloads\jellyfin-master\Emby.Server.Implementations\Library\MediaSourceManager.cs:line 508

[13:56:41] [INF] [10] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Crudelis. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[13:56:42] [INF] [6] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[13:56:42] [INF] [6] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: ffmpeg -analyzeduration 3000000 -probesize 1G -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" -fflags +igndts -noautorotate -i "http://169.254.224.54:8096/LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 libx264 -preset superfast -crf 23 -maxrate 20000000 -bufsize 40000000 -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)" -sc_threshold:v:0 0 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,yadif=0:-1:0,format=yuv420p" -codec:a:0 libfdk_aac -ab 384000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\9b3b852fa82a5b6c8492892108b47355-1.mp4" -start_number 0 -hls_base_url "hls/9b3b852fa82a5b6c8492892108b47355/" -hls_segment_filename "C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\9b3b852fa82a5b6c8492892108b47355%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\9b3b852fa82a5b6c8492892108b47355.m3u8"
[13:56:42] [ERR] [8] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request: Could not find file 'C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\bee60074e7864f998591a52143a4975a.ts'. URL GET /LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts.
[13:56:42] [ERR] [8] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 1
[13:56:42] [ERR] [8] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/35ac4e35-4031-7f15-1478-89e36e70d940/live.m3u8.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
   at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory) in C:\Users\DOM\Downloads\jellyfin-master\MediaBrowser.MediaEncoding\Transcoding\TranscodeManager.cs:line 552
   at Jellyfin.Api.Controllers.DynamicHlsController.GetLiveHlsStream(Guid itemId, String container, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 enableSubtitlesInManifest) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Controllers\DynamicHlsController.cs:line 304
   at lambda_method758(Closure, Object)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\ServerStartupMessageMiddleware.cs:line 41
   at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\WebSocketHandlerMiddleware.cs:line 33
   at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\IpBasedAccessValidationMiddleware.cs:line 36
   at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\LanFilteringMiddleware.cs:line 37
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\QueryStringDecodingMiddleware.cs:line 36
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\RobotsRedirectionMiddleware.cs:line 43
   at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\LegacyEmbyRouteRewriteMiddleware.cs:line 51
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\ResponseTimeMiddleware.cs:line 66
   at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context) in C:\Users\DOM\Downloads\jellyfin-master\Jellyfin.Api\Middleware\ExceptionMiddleware.cs:line 55

FFmpeg logs

{"Protocol":1,"Id":"ccb4a485d404f671f15ea417167bde02","Path":"http://169.254.224.54:8096/LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":null,"Size":null,"Name":null,"IsRemote":false,"ETag":null,"RunTimeTicks":null,"ReadAtNativeFramerate":false,"IgnoreDts":true,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":true,"RequiresOpening":true,"OpenToken":null,"RequiresClosing":true,"LiveStreamId":"e2329f4997b378e64ccf8fa396deb76e_af999c25a00715699361240d4c6c7a53_ccb4a485d404f671f15ea417167bde02","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,"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":1,"VideoRangeType":1,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":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,"IsHearingImpaired":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,"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":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":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,"IsHearingImpaired":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":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":3000,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

ffmpeg -analyzeduration 3000000 -probesize 1G -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" -fflags +igndts -noautorotate -i "http://169.254.224.54:8096/LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 libx264 -preset superfast -crf 23 -maxrate 20000000 -bufsize 40000000 -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)" -sc_threshold:v:0 0 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,yadif=0:-1:0,format=yuv420p" -codec:a:0 libfdk_aac -ab 384000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\25c7ff4b87545623f9d8d6d70c536a0e-1.mp4" -start_number 0 -hls_base_url "hls/25c7ff4b87545623f9d8d6d70c536a0e/" -hls_segment_filename "C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\25c7ff4b87545623f9d8d6d70c536a0e%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "C:\Users\DOM\AppData\Local\jellyfin\cache\transcodes\25c7ff4b87545623f9d8d6d70c536a0e.m3u8"

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 13-win32 (GCC)
  configuration: --prefix=/opt/ffmpeg --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --disable-w32threads --enable-pthreads --enable-shared --enable-lto --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
[http @ 0000029e1c36b0c0] HTTP error 404 Not Found
http://169.254.224.54:8096/LiveTv/LiveStreamFiles/bee60074e7864f998591a52143a4975a/stream.ts: Server returned 404 Not Found

Please attach any browser or client logs here

No response

Please attach any screenshots here

image

Code of Conduct

jellyfin-bot commented 2 weeks ago

Hi, it seems like your issue report has the following item(s) that need to be addressed:

This is an automated message, currently under testing. Please file an issue here if you encounter any problems.

gnattu commented 2 weeks ago

Will enable "auto-loop livestreams" make it work for you?

Crudelis98 commented 2 weeks ago

No, I tried it as it was my guess also. It completely breaks my proxy for live TV and chunks are 3x 10 sec, so half a minute. It worked without it in jelly 10.8.X. This option helps with my other stream (not for live TV) that chunks are 2.048 sec each.

junobomb commented 2 weeks ago

Im having the same issue, Live TV M3U Streams are now broken and HRHomeRun streams via Live TV are spotty and unreliable at best on Jellyfin 10.9.1. Getting a "Playback failed due to a server error." when played.

ISI-360 commented 2 weeks ago

Can confirm this too. M3U Streams are all broken since 10.9.1.

cvium commented 2 weeks ago

@Crudelis98 Please give me the result of this Powershell command

(Invoke-WebRequest http://192.168.1.232:6666/1 -Method Head).Headers
Crudelis98 commented 2 weeks ago

Key Value


Content-disposition attachment; filename=playlist.m3u8 Connection close Content-Length 1152 Content-Type text/plain; charset=utf-8 Date Fri, 17 May 2024 15:02:54 GMT Server Werkzeug/3.0.0 Python/3.12.0

cvium commented 2 weeks ago

Key Value

Content-disposition attachment; filename=playlist.m3u8 Connection close Content-Length 1152 Content-Type text/plain; charset=utf-8 Date Fri, 17 May 2024 15:02:54 GMT Server Werkzeug/3.0.0 Python/3.12.0

There's something that doesn't add up here. Do you have the logs from 10.8?

Crudelis98 commented 2 weeks ago

No sorry, I would prefer not to make full reinstall. I guess I cant roll back?

cvium commented 2 weeks ago

Unfortunately not.

We added some mimetype checking in 10.9, but for text/plain it should behave the same as 10.8. Are you sure this specific channel worked in 10.8?

Crudelis98 commented 2 weeks ago

All of them worked. They still work in VLC and all other ffmpeg based apps.

cvium commented 2 weeks ago

I unfortunately do not have an m3u playlist that triggers this, so without the logs from 10.8 or a legally free playlist I can't do more atm.

Crudelis98 commented 2 weeks ago

Its ok (for me), I wrote the plugin that somehow works unlike m3u tunner. Thank you for help! Maybe others will provide free m3u for testing. I cannot as it contains tokens, the same that can be used for purchasing the movies on my behalf. image

greigm commented 2 weeks ago

I unfortunately do not have an m3u playlist that triggers this, so without the logs from 10.8 or a legally free playlist I can't do more atm.

There's always the free Big Buck Bunny for testing I guess? https://archive.org/details/Big_Buck_Bunny-13302 - has an m3u link, but unsure if that's in the correct format required.

Crudelis98 commented 2 weeks ago

I can confirm that compiled project after the merge, restores live TV functionality.

junobomb commented 1 week ago

Just updated to 10.9.2 and still cannot play m3u playlists on live tv as before and now HDHomeRun based channels have audio way out of sync.

Not sure if I should submit a separate case or not, but see my ffmpeg log below.

EnableAudioPlaybackTranscoding: True [2024-05-20 00:41:54.586 +00:00] [INF] [37] Jellyfin.LiveTv.LiveTvMediaSourceProvider: Opening channel stream from "Emby", external channel Id: "m3u_495ace455e0c4db7311a97a512ad23e9ccda74dd42585883e68b9a832c78e24c" [2024-05-20 00:41:54.586 +00:00] [INF] [37] Jellyfin.LiveTv.DefaultLiveTvService: Streaming Channel "m3u_495ace455e0c4db7311a97a512ad23e9ccda74dd42585883e68b9a832c78e24c" [2024-05-20 00:41:54.672 +00:00] [INF] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Opening "SharedHttpStream" Live stream from "URL REMOVED FOR SAFETY" [2024-05-20 00:41:54.730 +00:00] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Beginning "SharedHttpStream" stream to "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" [2024-05-20 00:41:54.730 +00:00] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Deleting temp file "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" [2024-05-20 00:41:54.730 +00:00] [WRN] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Zero bytes copied from stream "SharedHttpStream" to "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" but no exception raised [2024-05-20 00:41:54.731 +00:00] [ERR] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Error opening tuner System.IO.EndOfStreamException: Zero bytes copied from stream SharedHttpStream at Jellyfin.LiveTv.TunerHosts.SharedHttpStream.Open(CancellationToken openCancellationToken) at Jellyfin.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, IList1 currentLiveStreams, CancellationToken cancellationToken) [2024-05-20 00:41:54.734 +00:00] [ERR] [37] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Items/fc466b3f04640409744608c32d95dace/PlaybackInfo". MediaBrowser.Controller.LiveTv.LiveTvConflictException: Exception of type 'MediaBrowser.Controller.LiveTv.LiveTvConflictException' was thrown. at Jellyfin.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, IList1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.DefaultLiveTvService.GetChannelStreamWithDirectStreamProvider(String channelId, String streamId, List1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.LiveTvMediaSourceProvider.GetChannelStream(String id, String mediaSourceId, List1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.LiveTvMediaSourceProvider.OpenMediaSource(String openToken, List1 currentLiveStreams, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken) at Jellyfin.Api.Helpers.MediaInfoHelper.OpenMediaSource(HttpContext httpContext, LiveStreamRequest request) at Jellyfin.Api.Controllers.MediaInfoController.GetPostedPlaybackInfo(Guid itemId, Nullable1 userId, Nullable1 maxStreamingBitrate, Nullable1 startTimeTicks, Nullable1 audioStreamIndex, Nullable1 subtitleStreamIndex, Nullable1 maxAudioChannels, String mediaSourceId, String liveStreamId, Nullable1 autoOpenLiveStream, Nullable1 enableDirectPlay, Nullable1 enableDirectStream, Nullable1 enableTranscoding, Nullable1 allowVideoStreamCopy, Nullable1 allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) at lambda_method1391(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.gAwaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager) at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager) at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext) at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

cvium commented 1 week ago

@junobomb Can you do a HEAD request to your channel URL and give me the result? You can use curl curl -I <channel url>

zagub59 commented 1 week ago

Hi everyone, I don't know why this issue is closed but I have the same issue on 10.9.2 with m3u not working for LiveTV anymore (everything was ok on 10.8). Thanks for your help on this :)

pw-h commented 1 week ago

UPDATE: reinstalled Jellyfin from scratch; m3u LIVE TV works again

UPDATE2: removing and re-entering the m3u source for Live TV broke it again :-(, with the same error, Error opening tuner.

UPDATE3: i found that after enabling 'repeat livestreams automatically' iptv playback resumed working for me

Same here. Cannot get my LiveTV via m3u file working again after update from 10.8.13 to 10.9.2, channels play fine in VLC and other players.

[2024-05-20 10:40:05.026 +00:00] [INF] [6] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Pieter". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2024-05-20 10:40:05.188 +00:00] [INF] [6] Jellyfin.LiveTv.LiveTvMediaSourceProvider: Opening channel stream from "Emby", external channel Id: "m3u_96da98fee9f24869b1e7b6971628db0c7221f38b8d0a8092fa6f8a9132a9f984" [2024-05-20 10:40:05.192 +00:00] [INF] [6] Jellyfin.LiveTv.DefaultLiveTvService: Streaming Channel "m3u_96da98fee9f24869b1e7b6971628db0c7221f38b8d0a8092fa6f8a9132a9f984" [2024-05-20 10:40:05.326 +00:00] [ERR] [6] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Error opening tuner System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer. ---> System.Net.Sockets.SocketException (104): Connection reset by peer --- End of inner exception stack trace ---

Crudelis98 commented 1 week ago

Just updated to 10.9.2 and still cannot play m3u playlists on live tv as before and now HDHomeRun based channels have audio way out of sync.

Not sure if I should submit a separate case or not, but see my ffmpeg log below.

EnableAudioPlaybackTranscoding: True [2024-05-20 00:41:54.586 +00:00] [INF] [37] Jellyfin.LiveTv.LiveTvMediaSourceProvider: Opening channel stream from "Emby", external channel Id: "m3u_495ace455e0c4db7311a97a512ad23e9ccda74dd42585883e68b9a832c78e24c" [2024-05-20 00:41:54.586 +00:00] [INF] [37] Jellyfin.LiveTv.DefaultLiveTvService: Streaming Channel "m3u_495ace455e0c4db7311a97a512ad23e9ccda74dd42585883e68b9a832c78e24c" [2024-05-20 00:41:54.672 +00:00] [INF] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Opening "SharedHttpStream" Live stream from "~URL REMOVED FOR SAFETY~" [2024-05-20 00:41:54.730 +00:00] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Beginning "SharedHttpStream" stream to "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" [2024-05-20 00:41:54.730 +00:00] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Deleting temp file "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" [2024-05-20 00:41:54.730 +00:00] [WRN] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Zero bytes copied from stream "SharedHttpStream" to "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" but no exception raised [2024-05-20 00:41:54.731 +00:00] [ERR] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Error opening tuner System.IO.EndOfStreamException: Zero bytes copied from stream SharedHttpStream at Jellyfin.LiveTv.TunerHosts.SharedHttpStream.Open(CancellationToken openCancellationToken) at Jellyfin.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, IList1 currentLiveStreams, CancellationToken cancellationToken) [2024-05-20 00:41:54.734 +00:00] [ERR] [37] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Items/fc466b3f04640409744608c32d95dace/PlaybackInfo". MediaBrowser.Controller.LiveTv.LiveTvConflictException: Exception of type 'MediaBrowser.Controller.LiveTv.LiveTvConflictException' was thrown. at Jellyfin.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, IList1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.DefaultLiveTvService.GetChannelStreamWithDirectStreamProvider(String channelId, String streamId, List1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.LiveTvMediaSourceProvider.GetChannelStream(String id, String mediaSourceId, List1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.LiveTvMediaSourceProvider.OpenMediaSource(String openToken, List1 currentLiveStreams, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken) at Jellyfin.Api.Helpers.MediaInfoHelper.OpenMediaSource(HttpContext httpContext, LiveStreamRequest request) at Jellyfin.Api.Controllers.MediaInfoController.GetPostedPlaybackInfo(Guid itemId, Nullable1 userId, Nullable1 maxStreamingBitrate, Nullable1 startTimeTicks, Nullable1 audioStreamIndex, Nullable1 subtitleStreamIndex, Nullable1 maxAudioChannels, String mediaSourceId, String liveStreamId, Nullable1 autoOpenLiveStream, Nullable1 enableDirectPlay, Nullable1 enableDirectStream, Nullable1 enableTranscoding, Nullable1 allowVideoStreamCopy, Nullable1 allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) at lambda_method1391(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.gAwaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager) at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager) at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext) at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

Is the live TV working for you now? Can I close it?

pw-h commented 1 week ago

i can play m3u live TV again as long as i tick 'repeat livestreams automatically' in the m3u source setup. This issue may be closed as far as i'm concerned.

junobomb commented 1 week ago

Same here! Enabling 'repeat livestreams automatically' under the m3u settings fixed the issue.

junobomb commented 1 week ago

Just updated to 10.9.2 and still cannot play m3u playlists on live tv as before and now HDHomeRun based channels have audio way out of sync.

Not sure if I should submit a separate case or not, but see my ffmpeg log below.

EnableAudioPlaybackTranscoding: True [2024-05-20 00:41:54.586 +00:00] [INF] [37] Jellyfin.LiveTv.LiveTvMediaSourceProvider: Opening channel stream from "Emby", external channel Id: "m3u_495ace455e0c4db7311a97a512ad23e9ccda74dd42585883e68b9a832c78e24c" [2024-05-20 00:41:54.586 +00:00] [INF] [37] Jellyfin.LiveTv.DefaultLiveTvService: Streaming Channel "m3u_495ace455e0c4db7311a97a512ad23e9ccda74dd42585883e68b9a832c78e24c" [2024-05-20 00:41:54.672 +00:00] [INF] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Opening "SharedHttpStream" Live stream from "~URL REMOVED FOR SAFETY~" [2024-05-20 00:41:54.730 +00:00] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Beginning "SharedHttpStream" stream to "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" [2024-05-20 00:41:54.730 +00:00] [INF] [10] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Deleting temp file "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" [2024-05-20 00:41:54.730 +00:00] [WRN] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Zero bytes copied from stream "SharedHttpStream" to "/config/transcodes/02bbaac31ccb4abe88c86069d689d5d5.ts" but no exception raised [2024-05-20 00:41:54.731 +00:00] [ERR] [37] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Error opening tuner System.IO.EndOfStreamException: Zero bytes copied from stream SharedHttpStream at Jellyfin.LiveTv.TunerHosts.SharedHttpStream.Open(CancellationToken openCancellationToken) at Jellyfin.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, IList1 currentLiveStreams, CancellationToken cancellationToken) [2024-05-20 00:41:54.734 +00:00] [ERR] [37] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/Items/fc466b3f04640409744608c32d95dace/PlaybackInfo". MediaBrowser.Controller.LiveTv.LiveTvConflictException: Exception of type 'MediaBrowser.Controller.LiveTv.LiveTvConflictException' was thrown. at Jellyfin.LiveTv.TunerHosts.BaseTunerHost.GetChannelStream(String channelId, String streamId, IList1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.DefaultLiveTvService.GetChannelStreamWithDirectStreamProvider(String channelId, String streamId, List1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.LiveTvMediaSourceProvider.GetChannelStream(String id, String mediaSourceId, List1 currentLiveStreams, CancellationToken cancellationToken) at Jellyfin.LiveTv.LiveTvMediaSourceProvider.OpenMediaSource(String openToken, List1 currentLiveStreams, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.MediaSourceManager.OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken) at Jellyfin.Api.Helpers.MediaInfoHelper.OpenMediaSource(HttpContext httpContext, LiveStreamRequest request) at Jellyfin.Api.Controllers.MediaInfoController.GetPostedPlaybackInfo(Guid itemId, Nullable1 userId, Nullable1 maxStreamingBitrate, Nullable1 startTimeTicks, Nullable1 audioStreamIndex, Nullable1 subtitleStreamIndex, Nullable1 maxAudioChannels, String mediaSourceId, String liveStreamId, Nullable1 autoOpenLiveStream, Nullable1 enableDirectPlay, Nullable1 enableDirectStream, Nullable1 enableTranscoding, Nullable1 allowVideoStreamCopy, Nullable1 allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto) at lambda_method1391(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.gAwaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager) at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager) at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext) at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

Is the live TV working for you now? Can I close it?

Apologies, yes enabling 'repeat livestreams automatically' under the m3u settings worked and can now view streams

PierrePetit commented 6 days ago

UPDATE: reinstalled Jellyfin from scratch; m3u LIVE TV works again

UPDATE2: removing and re-entering the m3u source for Live TV broke it again :-(, with the same error, Error opening tuner.

UPDATE3: i found that after enabling 'repeat livestreams automatically' iptv playback resumed working for me

Same here. Cannot get my LiveTV via m3u file working again after update from 10.8.13 to 10.9.2, channels play fine in VLC and other players.

[2024-05-20 10:40:05.026 +00:00] [INF] [6] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Pieter". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [2024-05-20 10:40:05.188 +00:00] [INF] [6] Jellyfin.LiveTv.LiveTvMediaSourceProvider: Opening channel stream from "Emby", external channel Id: "m3u_96da98fee9f24869b1e7b6971628db0c7221f38b8d0a8092fa6f8a9132a9f984" [2024-05-20 10:40:05.192 +00:00] [INF] [6] Jellyfin.LiveTv.DefaultLiveTvService: Streaming Channel "m3u_96da98fee9f24869b1e7b6971628db0c7221f38b8d0a8092fa6f8a9132a9f984" [2024-05-20 10:40:05.326 +00:00] [ERR] [6] Jellyfin.LiveTv.TunerHosts.M3UTunerHost: Error opening tuner System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer. ---> System.Net.Sockets.SocketException (104): Connection reset by peer --- End of inner exception stack trace ---

Thanks a lot for the updates. I was facing the "Connection reset by peer." error too, and enabling "Auto-loop live streams" worked for me : image