FFMpeg打开DVD VOB链?

FFMpeg打开DVD VOB链?,ffmpeg,dvd,vob,Ffmpeg,Dvd,Vob,我是FFMpeg新手,所以这可能是一个愚蠢的问题,但我在文档中没有看到答案 我想解码DVD vob文件中的帧。打开组中的第一个VOB效果很好,但是我如何告诉ffmpeg继续下一个VOB并读取DVD上的所有VOB 我将VOB文件保存在硬盘上的文件夹中。VOB格式是的一个子集,因此,您应该能够将要读取的VOB组合在一起,就像将mpeg数据连接在一起一样 cat first.VOB second.VOB third.VOB | ffmpeg -i - outfile.mp4 提升使用寿命/能见度:

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

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

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

VOB格式是的一个子集,因此,您应该能够将要读取的VOB组合在一起,就像将mpeg数据连接在一起一样

cat first.VOB second.VOB third.VOB | ffmpeg -i - outfile.mp4
提升使用寿命/能见度:


较新版本的ffmpeg支持将连接作为输入文件上的运算符。所以你可以用<代码>ffmpeg-i concat:VTS_01_0.VOB\| VTS_01_1.VOB\| VTS_01_2.VOB outfile.mp4


实际上,您可以使用ffmpegs内置的连接功能,这正是我认为您需要的:

ffmpeg -i "concat:$(echo *.VOB|tr \  \|)" -f mpeg -c copy -sn -y combined.mpg

请参阅:

内置的连接功能似乎基于*NIX,在Windows上对我来说不起作用。在Windows上,似乎加入了相关的VOB文件(DVD上的主电影似乎是1GB大小的设置)

附录

您还可以在Windows中加入VOB文件:

如果文件名中没有空格,可以省略引号,但请务必记住
/b
和所有
+
符号。

在windows中,我更喜欢“重构”串联,也不依赖预定义的文件名:

copy /b  e:\VIDEO_TS\vts*.vob  temp.vob
ffmpeg -i temp.vob .... newfile.ogg
/b表示:二进制副本;否则,换行符等将被区别对待

注意事项:

  • 有时有些VOB文件不是电影的一部分,我找不到一种自动的方法来检测哪个是哪个
  • 在速度较慢的I/O系统上,这增加了一个巨大的时间消耗:写入和读取临时文件需要时间

这不是先将VOB复制到新的组合文件中吗?(一张DVD需要几分钟)否。
cat
的级联输出通过管道直接传输到从stdin读取的
ffmpeg
。这就是
-i-
所表示的。在速度上应该没有差别。较新版本的ffmpeg支持将级联作为输入文件上的运算符。所以你可以用。。。ffmpeg-i concat:VTS_01_0.VOB\| VTS_01_1.VOB\| VTS_01_2.VOB outfile.mp4在Windows命令提示符中,还可以使用双引号使管道字符显式。否则,您将得到一个VLC错误。您应该删除
-sn
,因为这只会删除您可能不想要的字幕。您还应该能够删除
-f mpeg
copy /b  e:\VIDEO_TS\vts*.vob  temp.vob
ffmpeg -i temp.vob .... newfile.ogg