Opened 4 years ago

Last modified 4 years ago

#3953 open enhancement

Support chaptering in bluray

Reported by: ixian Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: chapters bluray
Cc: nfxjfg@googlemail.com Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

I am trying to extract chapter markers from a bluray mounted on my file system with ffprobe. Using

ffprobe -i bluray:/mnt/bluray -show_chapters

The output does not contain any chapter information. See below:

[clover@hexapod ~]$ ffprobe bluray:/mnt/bluray -show_chapters 2>&1
ffprobe version 2.3.3 Copyright (c) 2007-2014 the FFmpeg developers
  built on Aug 17 2014 17:11:34 with gcc 4.9.1 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --enable-avisynth --enable-avresample --enable-decoder=atrac3 --enable-decoder=atrac3p --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
  libavutil      52. 92.100 / 52. 92.100
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 48.100 / 55. 48.100
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.100 /  4. 11.100
  libavresample   1.  3.  0 /  1.  3.  0
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
[bluray @ 0x184af00] 6 usable playlists:
[bluray @ 0x184af00] playlist 00006.mpls (0:03:59)
[bluray @ 0x184af00] playlist 00001.mpls (0:51:58)
[bluray @ 0x184af00] playlist 00000.mpls (2:12:12)
[bluray @ 0x184af00] playlist 00003.mpls (0:57:56)
[bluray @ 0x184af00] playlist 00005.mpls (0:03:47)
[bluray @ 0x184af00] playlist 00002.mpls (1:00:23)
[bluray @ 0x184af00] selected 00000.mpls
libbluray/decoders/m2ts_filter.c:207: Pid 0x1011 pts 54000000 passed IN timestamp 54000000 (pts 54000000)
libbluray/decoders/m2ts_filter.c:207: Pid 0x1100 pts 54000000 passed IN timestamp 54000000 (pts 54000000)
libbluray/decoders/m2ts_filter.c:207: Pid 0x1101 pts 54000000 passed IN timestamp 54000000 (pts 54000000)
libbluray/decoders/m2ts_filter.c:172: seek notify
libbluray/decoders/m2ts_filter.c:207: Pid 0x1011 pts 54708708 passed IN timestamp 54000000 (pts 54708708)
libbluray/decoders/m2ts_filter.c:172: seek notify
libbluray/decoders/m2ts_filter.c:207: Pid 0x1011 pts 54708708 passed IN timestamp 54000000 (pts 54708708)
libbluray/decoders/m2ts_filter.c:207: Pid 0x1011 pts 54000000 passed IN timestamp 54000000 (pts 54000000)
libbluray/decoders/m2ts_filter.c:172: seek notify
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:207: Pid 0x1011 pts 54576576 passed IN timestamp 54000000 (pts 54576576)
libbluray/decoders/m2ts_filter.c:172: seek notify
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:283: Wiping pid 0x1011
libbluray/decoders/m2ts_filter.c:207: Pid 0x1011 pts 54576576 passed IN timestamp 54000000 (pts 54576576)
libbluray/decoders/m2ts_filter.c:172: seek notify
Input #0, mpegts, from 'bluray:/mnt/bluray/':
  Duration: 00:00:10.04, start: 600.000000, bitrate: N/A
  Program 1
    Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x1100]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz, stereo, s32, 2304 kb/s
    Stream #0:2[0x1101]: Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.0(side), fltp, 1536 kb/s

Change History (4)

comment:1 Changed 4 years ago by ixian

I am sure the bluray contains chapter markers, which I have succesfully extracted with eac3to. But, because of platform compatibility, I would like to use ffmpeg for this.

comment:2 Changed 4 years ago by ubitux

  • Status changed from new to open
  • Summary changed from Unable to extract chapter markers from bluray with ffprobe to Support chaptering in bluray
  • Type changed from defect to enhancement

Exporting chapters can be done through avpriv_new_chapter() which takes a AVFormatContext. Unfortunately we support BluRay? through our protocol layer instead of format, and as such has no access to that format context. This will probably require some some sort of design change.

comment:3 Changed 4 years ago by gjdfgh

  • Cc nfxjfg@googlemail.com added

You should treat things like bluray support as demuxers (with a "slave" mpeg-ts demuxer). Worked for me in mpv.

comment:4 Changed 4 years ago by cehoyos

  • Component changed from ffprobe to avformat
  • Keywords ffprobe removed
  • Priority changed from normal to wish
  • Version changed from 2.3.3 to git-master
Note: See TracTickets for help on using tickets.