[FFmpeg-user] Concat input protocol: more files, more missing streams

Thierry Lelégard thierry.lelegard at free.fr
Sat Sep 14 17:57:59 CEST 2013


Hello,

I try to use the "concat:" input protocol to process at once
a movie from a ripped DVD which is split over several VOB files.

But the more files I add in the input specification, the more
input streams are undetected. Playing with -probesize does not
change anything.

Let's take an example. Consider the content of a ripped DVD
("Cat on a hot tin roof"). The main movie is split over 5 files,
VTS_01_1.VOB to VTS_01_5.VOB.

There is for sure one DVDNAV stream and one video stream.

Audio streams: Both ffmpeg and MediaInfo find 3 audio streams.
Dumping the IFO file, a fourth audio stream is referenced
with "en" language while audio #0 was already "en"

Subpicture streams: ffmpeg finds 10 streams while MediaInfo finds 12.
Dumping the IFO file, 12 subpicture streams are referenced but the
last two are "en" and "it" again, same as #0 and #2.

Anyway, now let's focus on ffmpeg -i concat: inconsistencies.

When you try ffmpeg on the first VOB only (with or without "concat:"),
all 15 streams are found. When you try ffmpeg with "concat:" over the
first 2 files, only 14 streams are found (one subtitle stream disappeared).
And when you try with "concat:" on the first 3 files, only 5 streams are
found (all subtitle streams disappeared). See full commands and outputs
below, including ffmpeg version.

The tests are made with 10 MB as probe size. But using any other size, from
the default size to 100 MB, does not change anything.

The simple test commands below do not use the subtitle streams. But this is
just to illustrate the problem. In the real world, I want to concat all five
VOB files and burn the french subtitles into the video. But ffmpeg does not
detect the subtitle stream with all VOB concatenated.

Any idea?
Thanks in advance.
-Thierry

----------------------------------------------------------------------------

Using first VOB file only, no concat protocol --> 15 input streams detected.

$ ffmpeg -probesize 10M -i "VTS_01_1.VOB" -codec:v copy -codec:a copy -t 10 -y out.mpg
ffmpeg version N-56060-gbcd1c20 Copyright (c) 2000-2013 the FFmpeg developers
   built on Sep  6 2013 00:49:05 with gcc 4.7.3 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype 
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex 
--enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      52. 43.100 / 52. 43.100
   libavcodec     55. 31.101 / 55. 31.101
   libavformat    55. 16.101 / 55. 16.101
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 83.104 /  3. 83.104
   libswscale      2.  5.100 /  2.  5.100
   libswresample   0. 17.103 /  0. 17.103
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from 'VTS_01_1.VOB':
   Duration: 00:24:25.47, start: 0.036000, bitrate: 5860 kb/s
     Stream #0:0[0x1bf]: Data: dvd_nav_packet
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
     Stream #0:2[0x82]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:3[0x81]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:4[0x80]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:5[0x27]: Subtitle: dvd_subtitle
     Stream #0:6[0x2b]: Subtitle: dvd_subtitle
     Stream #0:7[0x2a]: Subtitle: dvd_subtitle
     Stream #0:8[0x29]: Subtitle: dvd_subtitle
     Stream #0:9[0x25]: Subtitle: dvd_subtitle
     Stream #0:10[0x24]: Subtitle: dvd_subtitle
     Stream #0:11[0x23]: Subtitle: dvd_subtitle
     Stream #0:12[0x22]: Subtitle: dvd_subtitle
     Stream #0:13[0x21]: Subtitle: dvd_subtitle
     Stream #0:14[0x20]: Subtitle: dvd_subtitle
Output #0, mpeg, to 'out.mpg':
   Metadata:
     encoder         : Lavf55.16.101
     Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
     Stream #0:1: Audio: ac3, 48000 Hz, mono, 192 kb/s
Stream mapping:
   Stream #0:1 -> #0:0 (copy)
   Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  251 fps=0.0 q=-1.0 Lsize=    5116kB time=00:00:10.01 bitrate=4184.3kbits/s
video:4857kB audio:235kB subtitle:0 global headers:0kB muxing overhead 0.471790%

----------------------------------------------------------------------------

Using first VOB file only with the concat protocol --> 15 input streams detected.

$ ffmpeg -probesize 10M -i "concat:VTS_01_1.VOB" -codec:v copy -codec:a copy -t 10 -y out.mpg
ffmpeg version N-56060-gbcd1c20 Copyright (c) 2000-2013 the FFmpeg developers
   built on Sep  6 2013 00:49:05 with gcc 4.7.3 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype 
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex 
--enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      52. 43.100 / 52. 43.100
   libavcodec     55. 31.101 / 55. 31.101
   libavformat    55. 16.101 / 55. 16.101
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 83.104 /  3. 83.104
   libswscale      2.  5.100 /  2.  5.100
   libswresample   0. 17.103 /  0. 17.103
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from 'concat:VTS_01_1.VOB':
   Duration: 00:24:25.47, start: 0.036000, bitrate: 5860 kb/s
     Stream #0:0[0x1bf]: Data: dvd_nav_packet
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
     Stream #0:2[0x82]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:3[0x81]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:4[0x80]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:5[0x27]: Subtitle: dvd_subtitle
     Stream #0:6[0x2b]: Subtitle: dvd_subtitle
     Stream #0:7[0x2a]: Subtitle: dvd_subtitle
     Stream #0:8[0x29]: Subtitle: dvd_subtitle
     Stream #0:9[0x25]: Subtitle: dvd_subtitle
     Stream #0:10[0x24]: Subtitle: dvd_subtitle
     Stream #0:11[0x23]: Subtitle: dvd_subtitle
     Stream #0:12[0x22]: Subtitle: dvd_subtitle
     Stream #0:13[0x21]: Subtitle: dvd_subtitle
     Stream #0:14[0x20]: Subtitle: dvd_subtitle
Output #0, mpeg, to 'out.mpg':
   Metadata:
     encoder         : Lavf55.16.101
     Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
     Stream #0:1: Audio: ac3, 48000 Hz, mono, 192 kb/s
Stream mapping:
   Stream #0:1 -> #0:0 (copy)
   Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  251 fps=0.0 q=-1.0 Lsize=    5116kB time=00:00:10.01 bitrate=4184.3kbits/s
video:4857kB audio:235kB subtitle:0 global headers:0kB muxing overhead 0.471790%

----------------------------------------------------------------------------

Using concat protocol on first two VOB files --> 14 input streams detected (one missing).

$ ffmpeg -probesize 10M -i "concat:VTS_01_1.VOB|VTS_01_2.VOB" -codec:v copy -codec:a copy -t 10 -y out.mpg
ffmpeg version N-56060-gbcd1c20 Copyright (c) 2000-2013 the FFmpeg developers
   built on Sep  6 2013 00:49:05 with gcc 4.7.3 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype 
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex 
--enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      52. 43.100 / 52. 43.100
   libavcodec     55. 31.101 / 55. 31.101
   libavformat    55. 16.101 / 55. 16.101
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 83.104 /  3. 83.104
   libswscale      2.  5.100 /  2.  5.100
   libswresample   0. 17.103 /  0. 17.103
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from 'concat:VTS_01_1.VOB|VTS_01_2.VOB':
   Duration: 00:50:03.62, start: 0.036000, bitrate: 5719 kb/s
     Stream #0:0[0x1bf]: Data: dvd_nav_packet
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
     Stream #0:2[0x82]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:3[0x81]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:4[0x80]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:5[0x2b]: Subtitle: dvd_subtitle
     Stream #0:6[0x2a]: Subtitle: dvd_subtitle
     Stream #0:7[0x29]: Subtitle: dvd_subtitle
     Stream #0:8[0x27]: Subtitle: dvd_subtitle
     Stream #0:9[0x25]: Subtitle: dvd_subtitle
     Stream #0:10[0x24]: Subtitle: dvd_subtitle
     Stream #0:11[0x23]: Subtitle: dvd_subtitle
     Stream #0:12[0x22]: Subtitle: dvd_subtitle
     Stream #0:13[0x20]: Subtitle: dvd_subtitle
Output #0, mpeg, to 'out.mpg':
   Metadata:
     encoder         : Lavf55.16.101
     Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
     Stream #0:1: Audio: ac3, 48000 Hz, mono, 192 kb/s
Stream mapping:
   Stream #0:1 -> #0:0 (copy)
   Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  251 fps=0.0 q=-1.0 Lsize=    5116kB time=00:00:10.01 bitrate=4184.3kbits/s
video:4857kB audio:235kB subtitle:0 global headers:0kB muxing overhead 0.471790%

----------------------------------------------------------------------------

Using concat protocol on first three VOB files --> 5 input streams detected (10 missing).

$ ffmpeg -probesize 10M -i "concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB" -codec:v copy -codec:a copy -t 10 out.mpg
ffmpeg version N-56060-gbcd1c20 Copyright (c) 2000-2013 the FFmpeg developers
   built on Sep  6 2013 00:49:05 with gcc 4.7.3 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype 
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex 
--enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
   libavutil      52. 43.100 / 52. 43.100
   libavcodec     55. 31.101 / 55. 31.101
   libavformat    55. 16.101 / 55. 16.101
   libavdevice    55.  3.100 / 55.  3.100
   libavfilter     3. 83.104 /  3. 83.104
   libswscale      2.  5.100 /  2.  5.100
   libswresample   0. 17.103 /  0. 17.103
   libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from 'concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB':
   Duration: 01:16:56.48, start: 0.036000, bitrate: 5581 kb/s
     Stream #0:0[0x1bf]: Data: dvd_nav_packet
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 7500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
     Stream #0:2[0x82]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:3[0x81]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
     Stream #0:4[0x80]: Audio: ac3, 48000 Hz, mono, fltp, 192 kb/s
Output #0, mpeg, to 'out.mpg':
   Metadata:
     encoder         : Lavf55.16.101
     Stream #0:0: Video: mpeg2video, yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, max. 7500 kb/s, 25 fps, 90k tbn, 25 tbc
     Stream #0:1: Audio: ac3, 48000 Hz, mono, 192 kb/s
Stream mapping:
   Stream #0:1 -> #0:0 (copy)
   Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  251 fps=0.0 q=-1.0 Lsize=    5116kB time=00:00:10.01 bitrate=4184.3kbits/s
video:4857kB audio:235kB subtitle:0 global headers:0kB muxing overhead 0.471790%



More information about the ffmpeg-user mailing list