[FFmpeg-user] -f vob does not appear to produce MPEG-2 Program Streams according to ffprobe

ianm at brick.net ianm at brick.net
Fri Mar 23 17:33:18 CET 2012


I am seeking to concatenate video clips of what might well 
be random provenance, typically .MTS files (MEPG-2 TS 
container file, H.264 video, AC-3 audio) but not always. 
 These are reasonably high resolution: 1920 x 1080.  The 
FAQ lists the following as "privileged formats" capable of 
binary concatenation: "MPEG-1, MPEG-2 PS, DV"  I wanted to 
give MPEG-2 PS a shot.  I'm using the wonderful Zeranoe 
64-bit static build on Windows 7.  Here's my command line 
on a sample clip and the results:

C:\data\pipeline\binaries\ffmpeg\bin>ffmpeg -i 
C:\data\pipeline\input\short-clip.mts -codec:v copy 
-codec:a copy -f vob short-clip.vob
ffmpeg version N-38292-ga4c22e3 Copyright (c) 2000-2012 
the FFmpeg developers
   built on Feb 27 2012 14:55:47 with gcc 4.6.2
   configuration: --enable-gpl --enable-version3 
--disable-w32threads --enable-runtime-cpudetect 
--enable-avisynth --enable-bzlib --enable-frei0r 
--enable-libopencore-amrnb --enable-libopencore-amrwb 
--enable-libfreetype --enable-libgsm --enable-libmp3lame 
--enable-libopenjpeg --enable-librtmp 
--enable-libschroedinger --enable-libspeex 
--enable-libtheora --enable-libvo-aacenc 
--enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx 
--enable-libx264 --enable-libxavs --enable-libxvid 
--enable-zlib
   libavutil      51. 41.100 / 51. 41.100
   libavcodec     54.  4.100 / 54.  4.100
   libavformat    54.  1.100 / 54.  1.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 62.101 /  2. 62.101
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0.  7.100 /  0.  7.100
   libpostproc    52.  0.100 / 52.  0.100
[h264 @ 0000000001E7AAB0] Increasing reorder buffer to 1
Input #0, mpegts, from 
'C:\data\pipeline\input\short-clip.mts':
   Duration: 00:02:00.03, start: 1.410000, bitrate: 24790 
kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
     Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] 
/ 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 59.96 
fps, 59.94 tbr, 90k tbn, 59.94 tbc
     Stream #0:1[0x101]: Audio: ac3 ([129][0][0][0] / 
0x0081), 48000 Hz, stereo, s16, 256 kb/s
[vob @ 0000000001E5ECC0] VBV buffer size not set, muxing 
may fail
Output #0, vob, to 'short-clip.vob':
   Metadata:
     encoder         : Lavf54.1.100
     Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), 
yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 59.96 fps, 
90k tbn, 29.97 tbc
     Stream #0:1: Audio: ac3 ([129][0][0][0] / 0x0081), 
48000 Hz, stereo, 256 kb/s
Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 7193 fps=692 q=-1.0 Lsize=  340006kB 
time=00:02:00.00 bitrate=23209.7kbits/s
video:332130kB audio:3750kB global headers:0kB muxing 
overhead 1.228504%


Yet when I ffprobe the file, I get
C:\data\pipeline\binaries\ffmpeg\bin>ffprobe 
short-clip.vob
ffprobe version N-38292-ga4c22e3 Copyright (c) 2007-2012 
the FFmpeg developers
   built on Feb 27 2012 14:55:47 with gcc 4.6.2
   configuration: --enable-gpl --enable-version3 
--disable-w32threads --enable-runtime-cpudetect 
--enable-avisynth --enable-bzlib --enable-frei0r 
--enable-libopencore-amrnb --enable-libopencore-amrwb 
--enable-libfreetype --enable-libgsm --enable-libmp3lame 
--enable-libopenjpeg --enable-librtmp 
--enable-libschroedinger --enable-libspeex 
--enable-libtheora --enable-libvo-aacenc 
--enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx 
--enable-libx264 --enable-libxavs --enable-libxvid 
--enable-zlib
   libavutil      51. 41.100 / 51. 41.100
   libavcodec     54.  4.100 / 54.  4.100
   libavformat    54.  1.100 / 54.  1.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 62.101 /  2. 62.101
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0.  7.100 /  0.  7.100
   libpostproc    52.  0.100 / 52.  0.100
[h264 @ 00000000003FF840] Increasing reorder buffer to 1
Input #0, mpeg, from 'short-clip.vob':
   Duration: 00:02:00.03, start: 0.999967, bitrate: 23204 
kb/s
     Stream #0:0[0x1e0]: Video: h264 (High), yuv420p, 
1920x1080 [SAR 1:1 DAR 16:9], 59.96 fps, 59.94 tbr, 90k 
tbn, 59.94
tbc
     Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, s16, 
256 kb/s

Running a ffprobe -formats yields the relevant line "DE 
mpeg            MPEG-1 System format," which suggests that 
I am not, in fact, getting an MPEG-2 Program Stream 
container format.  How do I do that?  Obviously, I would 
need to select the right codecs, but I am not that far 
yet, although suggestions would be appreciated.

Alternatively, if I ought to be using MPEG-1 as the 
container format, what audio and video codecs ought I to 
use with it?  I'm looking to retain the large resolution, 
bitrate, etc., until the final downmix.

As I am trying to automate this process (clips get 
transcoded, concatenated, transcoded more, all without 
human eyes looking at them), I think I need be more aware 
of potential problems with timestamps but I do not know 
where to begin there and how my choice of concatenation 
format will or will not affect that.


More information about the ffmpeg-user mailing list