将DVD VIDEO_TS文件夹转换为单个mp4或mkv文件?

12
我拥有从DVD上文件到文件的副本,包含一个Video_TS目录和一堆BUP、IFO和VOB文件。我可以在像VLC这样的播放器中打开其中一些文件(而不是全部),它似乎包含影片片段,但看起来像垃圾。就好像编码或文件结构已损坏一样。
然而,如果我使用VLC打开整个Video_TS目录,则可以正常播放。
是否有一种方法将此Video_TS目录转换为单个视频文件,例如MP4或MKV?
我已经了解到可以二进制连接VOB文件,我尝试过了,但无济于事。而且我不知道VOB文件的确切顺序应该是什么,更重要的是那些信息必须以某种方式在文件本身中存在(考虑到视频播放器可以自动播放)。
(编辑)有人编辑了这个问题并删除了ffmpeg部分。如果我没有更进一步的说明,请原谅我:我实际上正在寻找一种使用ffmpeg(从shell,在macOS上)来完成这个任务的方法。

VOBs包含媒体数据,但前置菜单和其他部分可能也存在。使用Handbrake可以选择您想要的部分/标题并进行转换。 - Gyan
@Mulvya 谢谢,但如果我没记错的话,Handbrake是一个GUI工具。您是否也知道是否可以使用ffmpeg实现此功能?(从shell中,即作为脚本的一部分) - RocketNuts
请勿在标题中添加标签。 - Rob
1
Handbrake有一个CLI版本-https://handbrake.fr/downloads2.php。ffmpeg无法定位主程序标题的起始位置。它会显示流,然后您需要使用ffplay手动识别起始点,通过播放一小段来完成。 - Gyan
@Mulvya 谢谢,我会去查看的! - RocketNuts
尝试这个。它将所需的文件列表输入编码为单个mp4: ffmpeg -i "concat:VIDEO_TS.VOB|VTS_01_0.VOB|VTS_05_1.VOB" -vcodec libx264 -preset ultrafast -acodec aac -b:a 128k -strict -2 -threads 0 -y movie.mp4 但是,如果您想对目录中的每个.VOB文件进行编码,可以尝试: ffmpeg -f concat -safe 0 -i <(for f in ./*.VOB; do echo "file '$PWD/$f'"; done) -vcodec libx264 -preset ultrafast -acodec aac -b:a 128k -strict -2 -threads 0 -y movie.mp4 - jgorostegui
3个回答

22

虽然这个答案来得有些晚,但我前几天也遇到了这个问题。通常情况下,使用FFmpeg时可以尝试执行cat *.VOB >out.vob或类似的命令,但对我来说没有起作用。然而,在使用HandBrakeCLI(命令行版本)时,我通过使用--main-feature选项得以解决。

HandBrakeCLI -i VIDEO_TS --main-feature -o mynewvid.mkv

这个方法完美地奏效了。如果我没有使用 --main-feature 选项,它就不起作用。


1
HandBrakeCLI背后基本上是使用FFMPEG,不是吗?应该有一个命令可以只使用FFMPEG完成相同的事情,对吧?另外,你的命令会转换任何东西吗?还是只是将流“复制”到MKV容器中? - Shayan

1

VLC选项比展示的还要简单:在“媒体”->“转换”之后,选择“光盘”选项卡而不是“文件”选项卡,选择DVD选项,然后选择包含整个DVD文件结构(VOB文件)的文件夹。将其转换为您选择的目标格式(例如x265/mp4),整个DVD将一次性转换完成,无需事后拼接文件。


0

我很惊讶VLC实际上可以做到这一点 :) 前往媒体 -> 转换/保存

enter image description here

它将逐个转换文件,因此您需要在之后将它们连接起来


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接