FFMpeg打开一个DVD VOB链?

时间:2011-11-23 11:45:01

标签: ffmpeg dvd vob

我是FFMpeg的新手,所以这可能是一个愚蠢的问题,但我没有在文档中看到答案。

我想解码DVD vob文件中的帧。打开组中的第一个VOB工作正常,但是如何告诉ffmpeg继续下一个VOB并读取DVD上的所有VOB?

我将VOB文件放在硬盘上的文件夹中。

4 个答案:

答案 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)

在Windows中我喜欢“重构”连接,也不依赖于预定义的文件名:

copy /b  e:\VIDEO_TS\vts*.vob  temp.vob
ffmpeg -i temp.vob .... newfile.ogg

/ b表示:二进制复制;否则换行符等等。

注意事项:

  • 有时VOB文件不属于电影的一部分,我找不到自动检测哪个是哪个
  • 在慢速I / O系统上,这增加了大量的时间:写入和读取临时文件需要时间。