[FFmpeg-trac] #10828(undetermined:new): ffmpeg 6.1 truncating first five bytes of KLV data stream
FFmpeg
trac at avcodec.org
Sat Jan 27 20:50:04 EET 2024
#10828: ffmpeg 6.1 truncating first five bytes of KLV data stream
-------------------------------------+-------------------------------------
Reporter: Richard | Type: defect
Scott McNew |
Status: new | Priority: important
Component: | Version: 6.1
undetermined |
Keywords: klv | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
ffmpeg 6.1 truncates the first five bytes of the KLV data stream packet in
mpegts videos
How to reproduce:
Download videos with KLV data stream from:
https://samples.ffmpeg.org/MPEG2/mpegts-klv/
With ffmpeg 6.0:
./ffprobe -show_packets -select_streams d 'Day Flight.mpg'
Output:
[PACKET]
codec_type=data
stream_index=1
pts=N/A
pts_time=N/A
dts=N/A
dts_time=N/A
duration=N/A
duration_time=N/A
size=163
pos=55989596
flags=K__
With ffmpeg 6.1 development branch git cloned from
https://git.ffmpeg.org/ffmpeg.git:
./ffprobe -show_packets -select_streams d 'Day Flight.mpg'
Output:
[PACKET]
codec_type=data
stream_index=1
pts=N/A
pts_time=N/A
dts=N/A
dts_time=N/A
duration=N/A
duration_time=N/A
size=158
pos=55989596
flags=K__
Note the "size" field difference. The first five bytes of the first KLV
stream key are being omitted from each packet.
The same problem occurs when extracting the KLV data stream from the
mpegts file:
With ffmpeg 6.0:
./ffmpeg -i 'Day Flight.mpg' -c copy -map d -f data klv60.bin
./ls -la
-rw-r--r-- 1 rmcnew rmcnew 977 Jan 27 11:39 klv60.bin
With ffmpeg 6.1 development:
./ffmpeg -i 'Day Flight.mpg' -c copy -map d -f data klv61-dev.bin
./ls -la
-rw-r--r-- 1 rmcnew rmcnew 947 Jan 27 11:40 klv61-dev.bin
Again notice the size difference.
This KLV data truncation corrupts the data stream since it leaves out the
first five bytes of the KLV 'key' needed for KLV processing, decoding,
etc.
FFmpeg 6.0 details:
ffmpeg version n6.0.1-1-g133069b434-20240127 Copyright (c) 2000-2023 the
FFmpeg developers
built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu-
--arch=x86_64 --target-os=linux --enable-nonfree --enable-gpl --enable-
version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib
--enable-libfreetype --enable-libfribidi --enable-gmp --enable-openssl
--enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl
--enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-
amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-
chromaprint --enable-libdav1d --enable-libdavs2 --enable-libfdk-aac
--enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme
--enable-libkvazaar --enable-libass --enable-libbluray --disable-libjxl
--enable-libmp3lame --enable-libopus --enable-librist --enable-libssh
--enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-
libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-
amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt
--enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2
--enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame
--enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab
--enable-vulkan --enable-libshaderc --disable-libplacebo --enable-libx264
--enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg
--enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags=
--extra-ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl
-lgomp' --samples=fate-suite/ --extra-version=20240127
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
FFmpeg 6.1-development details:
ffmpeg version N-113433-gbab7f91c36-20240127 Copyright (c) 2000-2024 the
FFmpeg developers
built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu-
--arch=x86_64 --target-os=linux --enable-nonfree --enable-gpl --enable-
version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib
--enable-libfreetype --enable-libfribidi --enable-gmp --enable-openssl
--enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis
--enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb
--enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-
avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2
--enable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r
--enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray
--enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist
--enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp
--enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg
--enable-libopenmpt --enable-librav1e --enable-librubberband --disable-
schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1
--enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi
--enable-libvidstab --enable-vulkan --enable-libshaderc --enable-
libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
libxvid --enable-libzimg --enable-libzvbi --samples=fate-suite/ --extra-
cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread
--extra-ldexeflags=-pie --extra-libs='-ldl -lgomp' --samples=fate-suite/
--extra-version=20240127
libavutil 58. 36.101 / 58. 36.101
libavcodec 60. 38.100 / 60. 38.100
libavformat 60. 20.100 / 60. 20.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 17.100 / 9. 17.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
Build framework used: https://github.com/BtbN/FFmpeg-Builds
Build options:
./makeimage.sh linux64 nonfree 6.0
./build.sh linux64 nonfree 6.0
and
./makeimage.sh linux64 nonfree 6.1
./build.sh linux64 nonfree 6.1 ***but adapted to point to cloned
development branch
Build operating system: Red Hat Enterprise Linux release 9.3 (Plow)
running under WSL2
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10828>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list