我是FFMpeg的新手,所以这可能是一个愚蠢的问题,但我没有在文档中看到答案。
我想解码DVD vob文件中的帧。打开组中的第一个VOB工作正常,但是如何告诉ffmpeg继续下一个VOB并读取DVD上的所有VOB?
我将VOB文件放在硬盘上的文件夹中。
答案 0 :(得分:23)
VOB格式是mpeg的一个子集,因此您应该能够像调整数据一样组合您想要读取的VOB:通过将它们连接在一起。
cat first.VOB second.VOB third.VOB | ffmpeg -i - outfile.mp4
提升Matt Gallagher's comment以延长寿命/可见度:
较新版本的ffmpeg支持连接作为输入文件的运算符。所以你可以使用......
ffmpeg -i concat:VTS_01_0.VOB\|VTS_01_1.VOB\|VTS_01_2.VOB outfile.mp4
答案 1 :(得分:12)
您实际上可以使用ffmpegs内置级联功能,这是我认为您正在寻找的内容:
ffmpeg -i "concat:$(echo *.VOB|tr \ \|)" -f mpeg -c copy -sn -y combined.mpg
请参阅:http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files
答案 2 :(得分:4)
内置的连接功能似乎是基于* NIX的,并且不适用于Windows。在Windows上VobMerge似乎可以加入相关的VOB文件(DVD上的主要电影似乎是从1GB开始的大小)。
<强> 附加物 强>
您还可以在Windows directly from the command line中加入VOB文件:
copy /b "vob1.vob" + "vob2.vob" + "vob3.vob" "voboutput.vob"
如果文件名中没有空格,则可以省略引号,但请务必记住/b
和所有+
符号。
答案 3 :(得分:0)
copy /b e:\VIDEO_TS\vts*.vob temp.vob
ffmpeg -i temp.vob .... newfile.ogg
/ b表示:二进制复制;否则换行符等等。
注意事项: