linuxserver / docker-jellyfin

GNU General Public License v3.0
640 stars 96 forks source link

[BUG] Mjpeg avi support #210

Closed wacko37 closed 1 year ago

wacko37 commented 1 year ago

Is there an existing issue for this?

Current Behavior

I've just noticed the any of my personal videos formatted in Mjpeg avi will not play correctly I get a Black screen with normal sound for a few seconds the video stops with playback error.

I have just changed over from Binhex docker to Linuxserver for many reasons. I had no issues playing on BinHex container which is why I suspect it may be a container issue not Jellyfin (could be wrong)

I tried to transcode also but remains the same as above.

Media info : (from within Jellyfin)

Image Codec: MJPEG Codec tag: MJPG Profile: Baseline Resolution: 640x480 Bitrate: 5074 kbps Bit depth: 8 bit Color space: bt470bg Pixel format: yuvj422p Ref frames: 1

Audio Title: PCM_U8 - 1 ch Codec: PCM_U8 Channels: 1 ch Bitrate: 88 kbps Sample rate: 11024 Hz Bit depth: 8 bit Default: No Forced: No External: No

Expected Behavior

Playback of Mjpeg avi file gives a Black screen with normal sound for a few seconds the video stops with playback error.

Steps To Reproduce

Play Mjpeg avi video

Environment

OS: Unraid Container

CPU architecture

x86-64 - Intel 11700k

Docker creation

How docker service was installed: via Unraid CA

Container logs

[15:53:06] [INF] [40] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Unraid-Docker. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[15:53:06] [INF] [40] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/Multimedia/Videos/Family Videos/Pets - Lucky,Harvey & Screech etc/Lucky/2006-07-20 @ 00h38m23s.AVI, AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported ) media:/videos/b19f1d3f-7b6d-1ee6-6c7b-5ccf4a1b0699/master.m3u8?MediaSourceId=b19f1d3f7b6d1ee66c7b5ccf4a1b0699&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139872000&AudioBitrate=128000&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=825af835b333c0c4bc1d6922baae2af0&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&TranscodeReasons=ContainerNotSupported,%20VideoCodecNotSupported,%20AudioCodecNotSupported
[15:53:06] [INF] [40] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[15:53:06] [INF] [40] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:,driver=iHD,kernel_driver=i915 -init_hw_device qsv=qs@va -filter_hw_device qs -autorotate 0 -i file:"/Multimedia/Videos/Family Videos/Pets - Lucky,Harvey & Screech etc/Lucky/2006-07-20 @ 00h38m23s.AVI" -map_metadata -1 -map_chapters -1 -threads 0 -vn -map 0:1 -map -0:s  -codec:a:0 libfdk_aac -ac 1 -ab 128000 -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_segment_filename "/config/data/transcodes/71da14ebe7af14c3f3bc46b12c4a5047%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/71da14ebe7af14c3f3bc46b12c4a5047.m3u8"
[15:53:06] [INF] [87] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[15:53:06] [INF] [40] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNS4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2OTExOTc5MTgzMDc1-3f23dcc5a8244ddeae58b9d624ff81ab-b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:06] [INF] [40] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 08/07/2023 15:53:06
[15:53:06] [INF] [40] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[15:53:06] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[15:53:07] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNS4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2OTExOTc5MTgzMDc1-3f23dcc5a8244ddeae58b9d624ff81ab-b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:07] [INF] [87] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Unraid-Docker. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[15:53:07] [INF] [87] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/Multimedia/Videos/Family Videos/Pets - Lucky,Harvey & Screech etc/Lucky/2006-07-20 @ 00h38m23s.AVI, AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported ) media:/videos/b19f1d3f-7b6d-1ee6-6c7b-5ccf4a1b0699/master.m3u8?MediaSourceId=b19f1d3f7b6d1ee66c7b5ccf4a1b0699&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139872000&AudioBitrate=128000&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=825af835b333c0c4bc1d6922baae2af0&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&TranscodeReasons=ContainerNotSupported,%20VideoCodecNotSupported,%20AudioCodecNotSupported
[15:53:07] [INF] [44] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/data/transcodes/71da14ebe7af14c3f3bc46b12c4a5047.m3u8
[15:53:07] [INF] [44] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[15:53:07] [INF] [44] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:,driver=iHD,kernel_driver=i915 -init_hw_device qsv=qs@va -filter_hw_device qs -autorotate 0 -i file:"/Multimedia/Videos/Family Videos/Pets - Lucky,Harvey & Screech etc/Lucky/2006-07-20 @ 00h38m23s.AVI" -map_metadata -1 -map_chapters -1 -threads 0 -vn -map 0:1 -map -0:s  -codec:a:0 libfdk_aac -ac 1 -ab 128000 -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_segment_filename "/config/data/transcodes/850c14f7f81f10576adb2d86b34f5f19%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/850c14f7f81f10576adb2d86b34f5f19.m3u8"
[15:53:07] [INF] [48] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[15:53:07] [INF] [42] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Unraid-Docker. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[15:53:07] [INF] [42] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/Multimedia/Videos/Family Videos/Pets - Lucky,Harvey & Screech etc/Lucky/2006-07-20 @ 00h38m23s.AVI, AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported, VideoCodecNotSupported, AudioCodecNotSupported ) media:/videos/b19f1d3f-7b6d-1ee6-6c7b-5ccf4a1b0699/master.m3u8?MediaSourceId=b19f1d3f7b6d1ee66c7b5ccf4a1b0699&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139872000&AudioBitrate=128000&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=825af835b333c0c4bc1d6922baae2af0&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&TranscodeReasons=ContainerNotSupported,%20VideoCodecNotSupported,%20AudioCodecNotSupported
[15:53:07] [INF] [40] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/data/transcodes/850c14f7f81f10576adb2d86b34f5f19.m3u8
[15:53:07] [INF] [40] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[15:53:07] [INF] [40] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:,driver=iHD,kernel_driver=i915 -init_hw_device qsv=qs@va -filter_hw_device qs -autorotate 0 -i file:"/Multimedia/Videos/Family Videos/Pets - Lucky,Harvey & Screech etc/Lucky/2006-07-20 @ 00h38m23s.AVI" -map_metadata -1 -map_chapters -1 -threads 0 -vn -map 0:1 -map -0:s  -codec:a:0 libfdk_aac -ac 1 -ab 128000 -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_segment_filename "/config/data/transcodes/0bde31442af3feb011b1629f01168786%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/0bde31442af3feb011b1629f01168786.m3u8"
[15:53:07] [INF] [40] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[15:53:08] [INF] [48] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/data/transcodes/0bde31442af3feb011b1629f01168786.m3u8
[15:53:08] [INF] [48] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : a7669245b053b1aeee0c7c0f2a114b2d933fa4cf89aaff3c-ee0c7c0f2a114b2d933fa4cf89aaff3c-667c3e24e6115042207825f1a6a19424
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : 192.168.1.27
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = 3f23dcc5a8244ddeae58b9d624ff81ab
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 1
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = 3f23dcc5a8244ddeae58b9d624ff81ab
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = Transcode (v: a:aac)
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = Jellyfin Web
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = Chrome
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = 2006-07-20 @ 00h38m23s
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = Video
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : All matches, playback registered
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback tracker found, adding playback info : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNS4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2OTExOTc5MTgzMDc1-3f23dcc5a8244ddeae58b9d624ff81ab-b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
[15:53:09] [INF] [40] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.8.10 playing 2006-07-20 @ 00h38m23s. Stopped at 202 ms
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNS4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2OTExOTc5MTgzMDc1-3f23dcc5a8244ddeae58b9d624ff81ab-b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 08/07/2023 15:53:09
[15:53:09] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
[15:53:09] [WRN] [40] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://192.168.1.22:8096/Sessions/Playing/Stopped to 192.168.1.27 in 0:00:01.5556761 with Status Code 204
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : 192.168.1.27
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = 3f23dcc5a8244ddeae58b9d624ff81ab
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 1
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = 
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = 3f23dcc5a8244ddeae58b9d624ff81ab
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = na
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = Jellyfin Web
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = Chrome
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = 2006-07-20 @ 00h38m23s
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = b19f1d3f7b6d1ee66c7b5ccf4a1b0699
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = Video
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
[15:53:26] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
[15:53:28] [INF] [42] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : a7669245b053b1aeee0c7c0f2a114b2d933fa4cf89aaff3c-ee0c7c0f2a114b2d933fa4cf89aaff3c-667c3e24e6115042207825f1a6a19424
[15:53:48] [INF] [25] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : a7669245b053b1aeee0c7c0f2a114b2d933fa4cf89aaff3c-ee0c7c0f2a114b2d933fa4cf89aaff3c-667c3e24e6115042207825f1a6a19424
github-actions[bot] commented 1 year ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

wacko37 commented 1 year ago

To make it easy here is 1 video

https://drive.google.com/file/d/1v1vbqwvVm5XEx2Q9wj2QK_ZMcJ9VtSaP/view?usp=sharing

wacko37 commented 1 year ago

This has been labelled as a bug over in Jellyfin Github so it may be related more to jellyfin itself

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

Do I leave this open here?

wacko37 commented 1 year ago

This seems to be a Jellyfin issue, see link above