从命令行拆分 MPEG 视频?

Tim*_*Tim 6 linux dvd authoring video-editing

我有一张自制的 DVD,我正在有效地尝试将章节插入并重新排列 - 原作者将其作为一个长章节进行了刻录,我想将其撕成小块并将其重新编码为新的 DVD。我使用以下命令翻录了 DVD:

mplayer dvd:// -dvd-device /dev/sr2 -dumpstream -dumpfile raw.vob

我正在使用 mplayer 版本 1.0-rc2_p20090731(Portage 中的最新版本)运行 Gentoo Linux。

我有一个章节应该跨越的时间列表(例如 30:11-33:25),所以我的第一个想法是翻录整个 DVD 并使用mpgtx剪切文件的某些部分。我的问题是mpgtx -i在文件上运行会报告相当多的时间戳跳转:

时间戳从 59.753789 跃升至 1d29800 位置的 0.001622
时间戳从 204963823030450.343750 跃升至 2d4f800 位置的 31.165900
时间戳从 60.077878 跃升至 43cc000 位置的 0.001622 
时间戳从 60.024233 跃升至 65c5000 位置的 0.001622
时间戳从 204963823068631.718750 跃升至 7fd1000 位置的 52.549244

我尝试使用以下方法修复索引:

mencoder raw.vob -oac copy -ovc copy -forceidx -o fixed.vob -of mpeg

但是 mpgtx 仍然会报告时间戳问题。我的直接问题:有没有办法获取我拥有的翻录电影并更正其时间戳,以便我可以用 mpgtx 剪切它?如果我能解决这个问题,制作 DVD 的其余部分就会一帆风顺。

如果无法修复此文件上的时间戳:是否有更好的方法将 DVD 的小块翻录成单独的文件以便以后重新编译?我非常希望这能在 Linux 上完成,如果我能以某种方式编写脚本,那就更好了(输入开始和结束位置的列表,或开始时间和持续时间,并获得一系列翻录文件)。如果需要,我还有一台 Mac OS X 机器可用,但没有 Windows。

编辑:我最终找到了另一个涉及HandBrakeffmpeg 的解决方案(在这个问题的帮助下),但问题仍然存在。

再次编辑:结果我的另一个解决方案不太奏效-音频不同步大约五秒钟,大约是我剪切的 mpgs 的一半-所以我回到了第一个。任何人?

小智 8

FFmpeg 会为你做这件事。

您的命令可能如下所示:

代码:ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss 是视频文件开头的 hh:mm:ss 中的起点

-t 是新段的 hh:mm:ss 时间长度。

因此,在上面的示例中,您从原始文件的开头开始 10 秒,并在 30 秒后结束。

如果您想在一次通过中创建多个零件,则应执行以下操作:

代码:ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss 00:00:35 -t 00:00:30 out2.mpg 在这个例子中,第一段是与第一个示例相同,但您还创建了第二个文件,从 35 秒开始,时长为 30 秒。

.