重新 RIP DVD 以提取 AVI、MP3 和 SRT 文件

Mar*_*wer 7 dvd ripping subtitles

这几天看了很多文章,终于在超级用户中发现了一个非常有用的问题(我可以用什么工具来翻录DVD电影?

我有一个很大的原始DVD 收藏,它们现在在 ISO 文件中(我想要它们是我自己的,只是为了学习语言),用DVDShrink 制作。我想知道将每部电影放在一个文件夹中的最佳方法是什么:

  1. 视频格式为AVI(或MPEG-4) (原始视频,不介意角度)(无音频)
  2. Mp3 格式的所有音频文件(与视频分开)
  3. SRT 格式的所有字幕

所以我可以用我想要的语言和我想要的字幕打开视频(没有菜单)

我认为这将需要比 8Gb 完整副本(具有相同质量)更小的大小,不是吗?。
注意:如果我可以在 Linux 系统中完成它会更好,但不要介意使用虚拟窗口为它=]

谢谢。

slh*_*hck 9

将 DVD 翻录为 MKV 文件

我建议您使用Handbrake(免费、跨平台、开源)将 DVD 翻录为包含所有内容的 MKV 文件。

手刹已经:

  • 如果您从“输出设置”下的格式”中选择“ MKV”,则创建一个 MKV 文件
  • 为您从 DVD 中选择的标题创建一个 H.264 编码的视频轨道
  • 为您在“音频”选项卡中选择的所有语言创建 AAC 编码的音轨
  • 为您在“字幕”选项卡中选择的所有曲目创建软编码字幕

确保为视频选择恒定质量,并选择 18 到 28 之间的质量作为质量。较低意味着更好,但您必须尝试对您来说看起来不错的东西。


完成翻录后,您可以使用FFmpeg从 MKV 文件中导出各种曲目。您可以通过从主页下载静态构建来获取最新版本。静态构建始终是最新的,如果您使用的是 Ubuntu,请抵制使用随附的构建的诱惑apt-get:它已经非常过时了。

提取的工作方式取决于您的文件有多少音频和字幕轨道。要稍后获取此信息,您可以调用ffmpeg -i input.mkv并查看输出。

这里说:

Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, …
Run Code Online (Sandbox Code Playgroud)

那就是视频。进一步寻找音频——这里有两个音轨,一个是英语,一个是德语:

Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, …
Stream #0:2(ger): Audio: aac (mp4a / 0x6134706D), 48000 Hz, …
Run Code Online (Sandbox Code Playgroud)

最后,您可能会看到字幕。在这里,他们是德国人:

Stream #0:3(ger): Subtitle: text (default)
Run Code Online (Sandbox Code Playgroud)

现在,让我们提取它们……

仅提取视频

首先,我们将创建一个没有音频或字幕的空视频。在这里,-an禁用音频,并-sn禁用字幕。或者离开-sn以保留字幕。

ffmpeg -i input.mkv -c copy -an -sn output.mkv
Run Code Online (Sandbox Code Playgroud)

您的输出文件将仅包含视频。如果需要,您也可以在此处更改容器:

ffmpeg -i input.mkv -c copy -an -sn output.mp4
Run Code Online (Sandbox Code Playgroud)

仅提取音频

这取决于有多少音轨。要创建单独的音频文件,我们可以执行以下操作,假设有两个音轨。同样,我们将禁用视频和字幕输出。

ffmpeg -i input.mkv \
-c:a:0 copy -vn -sn output-0.m4a
-c:a:1 copy -vn -sn output-1.m4a
Run Code Online (Sandbox Code Playgroud)

如您所见,索引01指定了第一和第二个音轨。如果您有更多,请根据需要修改命令并添加另一行。

只提取字幕

为了获得字幕,我们将遵循类似的方法——假设有一个字幕轨道:

ffmpeg -i input.mkv -vn -an -c copy output.srt
Run Code Online (Sandbox Code Playgroud)

或者,如果有多个字幕轨道:

ffmpeg -i input.mkv \
-c:s:0 copy -vn -an output-0.srt
-c:s:1 copy -vn -an output-1.srt
Run Code Online (Sandbox Code Playgroud)