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

Thierry Lelégard thierry.lelegard at free.fr
Sat Sep 14 18:13:14 CEST 2013


Hello,

After all, the problem seems the size of the input, not the usage of the
concat: protocol. I just tried to merge the 5 VOB files into one big .mpg file.
And the result is the same: only 5 input streams are detected, all subtitle
streams are missing.

See test below:

$ ffmpeg -probesize 10M -i VIDEO_TS.mpeg -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 'VIDEO_TS.mpeg':
   Duration: 01:43:48.26, start: 0.036000, bitrate: 5548 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%


Le 14/09/2013 17:57, Thierry Lelégard a écrit :
> 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%
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>



More information about the ffmpeg-user mailing list