[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