mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-04 18:09:12 +03:00
Transcoding AVI corrupts video #5172
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hankster112 on GitHub (Oct 19, 2023).
When transcoding AVI, output file is heavily corrupted. Video will pause and loop on the same 3 frames for a few seconds, then jump ahead and loop to another 3 frames, continues doing this for the whole length of the video. Audio is unaffected. Direct play works fine, but AVI files do not appear to be supported for direct play on either of my devices.
Media Info of the file
Video
Title: 480p MPEG4 SDR
Codec: MPEG4
Codec tag: XVID
Profile: Advanced Simple Profile
Level: 5
Resolution: 640x480
Aspect ratio: 4:3
Interlaced: No
Framerate: 25
Bitrate: 1036 kbps
Bit depth: 8 bit
Video range: SDR
Video range type: SDR
Pixel format: yuv420p
Ref frames: 1
Logs
FFmpeg Logs
/videos/38fe66dc-468c-7227-5d4d-9dd88cde76d1/hls1/main/0.ts
{"Protocol":0,"Id":"38fe66dc468c72275d4d9dd88cde76d1","Path":"/media/hankster112/Media/Shows/Buzz Lightyear/Season 1/Buzz Lightyear of Star Command - 1x00 - Pilot - The Adventure Begins, Part 1 [mbaldw].avi","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"avi","Size":188594176,"Name":"Buzz Lightyear of Star Command - 1x00 - Pilot - The Adventure Begins, Part 1 [mbaldw]","IsRemote":false,"ETag":"46e7d333865ac3d8dfe3ce4d8a70dd9b","RunTimeTicks":13034800000,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"mpeg4","CodecTag":"XVID","Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/25","CodecTimeBase":null,"Title":null,"VideoRange":"SDR","VideoRangeType":"SDR","VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"480p MPEG4 SDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":1036007,"BitDepth":8,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"Height":480,"Width":640,"AverageFrameRate":25,"RealFrameRate":25,"Profile":"Advanced Simple Profile","Type":1,"AspectRatio":"4:3","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p","Level":5,"IsAnamorphic":null},{"Codec":"mp3","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/13973","CodecTimeBase":null,"Title":null,"VideoRange":null,"VideoRangeType":null,"VideoDoViTitle":null,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"DisplayTitle":"MP3 - Stereo","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"stereo","BitRate":111784,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":2,"SampleRate":44100,"IsDefault":false,"IsForced":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":1157481,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":null,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -autorotate 0 -i file:"/media/hankster112/Media/Shows/Buzz Lightyear/Season 1/Buzz Lightyear of Star Command - 1x00 - Pilot - The Adventure Begins, Part 1 [mbaldw].avi" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -rc_mode VBR -b:v 5180036 -maxrate 5180036 -bufsize 10360072 -force_key_frames:0 "expr:gte(t,0+n_forced3)" -flags:v -global_header -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw,iha),min(640,480*a))/2)*2:trunc(min(max(iw/a,ih),min(640/a,480))/2)*2,format=nv12,hwupload=derive_device=vaapi" -codec:a:0 copy -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 "/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b2758%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b2758.m3u8"
ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
[avi @ 0x55b1633a0f00] non-interleaved AVI
Input #0, avi, from 'file:/media/hankster112/Media/Shows/Buzz Lightyear/Season 1/Buzz Lightyear of Star Command - 1x00 - Pilot - The Adventure Begins, Part 1 [mbaldw].avi':
Duration: 00:21:43.48, start: 0.000000, bitrate: 1157 kb/s
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1036 kb/s, 25 fps, 25 tbr, 25 tbn
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 111 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (h264_vaapi))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mpeg4 @ 0x55b1632c3bc0] Video uses a non-standard and wasteful way to store B-frames ('packed B-frames'). Consider using the mpeg4_unpack_bframes bitstream filter without encoding but stream copy to fix it.
[h264_vaapi @ 0x55b16335b700] Driver does not support some wanted packed headers (wanted 0xd, found 0x1).
Output #0, hls, to '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b2758.m3u8':
Metadata:
encoder : Lavf59.27.100
Stream #0:0: Video: h264 (High), vaapi(tv, bt709, progressive), 640x480 [SAR 1:1 DAR 4:3], q=2-31, 5180 kb/s, 25 fps, 90k tbn
Metadata:
encoder : Lavc59.37.100 h264_vaapi
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 111 kb/s
frame= 1 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
frame= 11 fps=0.0 q=-0.0 size=N/A time=00:00:00.05 bitrate=N/A speed=0.103x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27580.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27581.ts' for writing
frame= 159 fps=158 q=-0.0 size=N/A time=00:00:05.98 bitrate=N/A speed=5.95x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27582.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27583.ts' for writing
frame= 304 fps=202 q=-0.0 size=N/A time=00:00:11.75 bitrate=N/A speed= 7.8x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27584.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27585.ts' for writing
frame= 456 fps=227 q=-0.0 size=N/A time=00:00:17.84 bitrate=N/A speed=8.88x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27586.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27587.ts' for writing
frame= 608 fps=242 q=-0.0 size=N/A time=00:00:23.95 bitrate=N/A speed=9.54x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27588.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b27589.ts' for writing
frame= 766 fps=254 q=-0.0 size=N/A time=00:00:30.27 bitrate=N/A speed= 10x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275810.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275811.ts' for writing
frame= 932 fps=265 q=-0.0 size=N/A time=00:00:36.88 bitrate=N/A speed=10.5x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275812.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275813.ts' for writing
frame= 1094 fps=272 q=-0.0 size=N/A time=00:00:43.38 bitrate=N/A speed=10.8x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275814.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275815.ts' for writing
frame= 1252 fps=277 q=-0.0 size=N/A time=00:00:49.70 bitrate=N/A speed= 11x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275816.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275817.ts' for writing
frame= 1409 fps=281 q=-0.0 size=N/A time=00:00:55.92 bitrate=N/A speed=11.1x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275818.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275819.ts' for writing
frame= 1570 fps=284 q=-0.0 size=N/A time=00:01:02.43 bitrate=N/A speed=11.3x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275820.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275821.ts' for writing
frame= 1722 fps=286 q=-0.0 size=N/A time=00:01:08.51 bitrate=N/A speed=11.4x
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275822.ts' for writing
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275823.ts' for writing
[q] command received. Exiting.
[hls @ 0x55b16339d140] Opening '/var/lib/jellyfin/transcodes/6fa4f7349037ab6c83d18710008b275824.ts' for writing
frame= 1838 fps=287 q=-0.0 Lsize=N/A time=00:01:13.08 bitrate=N/A speed=11.4x
video:46762kB audio:1004kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Stats for Nerds Screenshots
Server System (please complete the following information):
Client System (please complete the following information):
@hankster112 commented on GitHub (Oct 23, 2023):
Fixed with latest jellyfin-ffmpeg update.