#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
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to