[FFmpeg-trac] #11422(avformat:new): Incorrect duration when reading Blu-ray playlist with multiple .m2ts files
FFmpeg
trac at avcodec.org
Wed Jan 15 17:07:21 EET 2025
#11422: Incorrect duration when reading Blu-ray playlist with multiple .m2ts files
----------------------------------+--------------------------------------
Reporter: llm96 | Type: defect
Status: new | Priority: normal
Component: avformat | Version: git-master
Keywords: bluray | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
----------------------------------+--------------------------------------
Summary of the bug:
FFmpeg reports the duration incorrectly when opening a Blu-ray playlist
with multiple .m2ts files. In the ffprobe output below, it correctly
detects the playlist length of 00:47:20 but reports a duration of 00:07:26
instead which, from the 3 discs I've tested, seems to always be close to
the duration of the last file in the playlist.
In the ffmpeg output, despite the incorrect duration, remuxing works as
expected and it correctly produces a 47m20s file containing all three
files in the playlist. Playback with ffplay is similarly fine.
Some related notes from an mpv issue showing the same behaviour when using
the lavf:// protocol:
https://github.com/mpv-player/mpv/issues/15679#issuecomment-2588235035
Sample used:
https://nyaa.si/view/1919995
How to reproduce:
{{{
% ffprobe bluray:BD_VIDEO
ffprobe version N-118315-g4f3c9f2f03-20250115 Copyright (c) 2007-2025 the
FFmpeg developers
built with gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
--target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
--disable-w32threads --enable-pthreads --enable-iconv --enable-zlib
--enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2
--enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis
--enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
--disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-
avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2
--enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-
ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-
libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray
--enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist
--enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp
--enable-libzmq --enable-lv2 --enable-libvpl --enable-openal --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
--enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-
librubberband --enable-schannel --enable-sdl2 --enable-libsnappy --enable-
libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-
libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-
vulkan --enable-libshaderc --enable-libplacebo --disable-libvvenc
--enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid
--enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC
--extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-
ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++
--ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib
--nm=x86_64-w64-mingw32-gcc-nm --extra-version=20250115
libavutil 59. 55.100 / 59. 55.100
libavcodec 61. 31.101 / 61. 31.101
libavformat 61. 9.106 / 61. 9.106
libavdevice 61. 4.100 / 61. 4.100
libavfilter 10. 6.101 / 10. 6.101
libswscale 8. 13.100 / 8. 13.100
libswresample 5. 4.100 / 5. 4.100
libpostproc 58. 4.100 / 58. 4.100
[bluray @ 0000023200a3d700] 1 usable playlists:
[bluray @ 0000023200a3d700] playlist 00001.mpls (0:47:20)
[bluray @ 0000023200a3d700] selected 00001.mpls
src/libbluray/bluray.c:299: 00004.m2ts: no timestamp for SPN 0 (got 0).
clip 189000000-252718029.
Input #0, mpegts, from 'bluray:BD_VIDEO':
Duration: 00:00:07.26, start: 4200.000000, bitrate: 16525477 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr,
90k tbn
Stream #0:1[0x1100]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
Stream #0:2[0x1101]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
}}}
{{{
% ffmpeg -playlist 1 -i bluray:BD_VIDEO -c:v copy -c:a flac out.mkv
ffmpeg version N-118315-g4f3c9f2f03-20250115 Copyright (c) 2000-2025 the
FFmpeg developers
built with gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
--target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
--disable-w32threads --enable-pthreads --enable-iconv --enable-zlib
--enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2
--enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis
--enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
--disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-
avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2
--enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-
ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-
libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray
--enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist
--enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp
--enable-libzmq --enable-lv2 --enable-libvpl --enable-openal --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
--enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-
librubberband --enable-schannel --enable-sdl2 --enable-libsnappy --enable-
libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-
libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-
vulkan --enable-libshaderc --enable-libplacebo --disable-libvvenc
--enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid
--enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC
--extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-
ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++
--ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib
--nm=x86_64-w64-mingw32-gcc-nm --extra-version=20250115
libavutil 59. 55.100 / 59. 55.100
libavcodec 61. 31.101 / 61. 31.101
libavformat 61. 9.106 / 61. 9.106
libavdevice 61. 4.100 / 61. 4.100
libavfilter 10. 6.101 / 10. 6.101
libswscale 8. 13.100 / 8. 13.100
libswresample 5. 4.100 / 5. 4.100
libpostproc 58. 4.100 / 58. 4.100
[bluray @ 000002313c103500] 1 usable playlists:
src/libbluray/bluray.c:299: 00004.m2ts: no timestamp for SPN 0 (got 0).
clip 189000000-252718029.
Input #0, mpegts, from 'bluray:BD_VIDEO':
Duration: 00:00:07.26, start: 4200.000000, bitrate: 16525477 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr,
90k tbn
Stream #0:1[0x1100]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
Stream #0:2[0x1101]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (pcm_bluray (native) -> flac (native))
Press [q] to stop, [?] for help
Output #0, matroska, to 'out.mkv':
Metadata:
encoder : Lavf61.9.106
Stream #0:0: Video: h264 (High) (H264 / 0x34363248),
yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps,
23.98 tbr, 1k tbn
Stream #0:1: Audio: flac ([172][241][0][0] / 0xF1AC), 48000 Hz, stereo,
s32 (24 bit), 128 kb/s
Metadata:
encoder : Lavc61.31.101 flac
[aist#0:1/pcm_bluray @ 000002313c1bdb80] timestamp discontinuity (stream
id=4352): -1415955000, new offset= 1415955000
[vist#0:0/h264 @ 000002313c1bea80] timestamp discontinuity (stream
id=4113): -1416956200, new offset= 2832911200
[out#0/matroska @ 000002313c100dc0] video:12373965KiB audio:471818KiB
subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead:
0.008990%
frame=68114 fps=2792 q=-1.0 Lsize=12846938KiB time=00:47:20.87
bitrate=37045.6kbits/s speed= 116x
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11422>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list