如何从 Linux 命令行修剪或删除 mpeg 视频的部分内容?

如何从 Linux 命令行修剪或删除 mpeg 视频的部分内容?

我有一部很长的 mpeg 电影,我想从开头和结尾剪掉很多内容,以及中间的一些片段。有没有办法可以轻松地从 Linux 命令行执行此操作?

答案1

完成这项工作的工具是mpgtx(如果未安装,请尝试,例如,sudo apt-get install mpgtx)。

假设你的文件名为 input.mpg,你想创建 output.mpg,以下是一些常见任务

从 mpeg 电影中选择片段,用它们创建新的 mpeg 电影

//抓取第 10 至 20 秒、第 42 至 52 秒以及第 1:23 至 1:33 秒,制作一部新的 mpeg 影片

mpgtx -j input.mpg [0:10-0:20] [0:42-0:52] [1:23-1:33] -o output.mpg

注意:mpgtx -j 相当于 mpgjoin。注意:您需要通过 sudo apt-get install mpgtx 进行安装

从 mpeg 影片的开头或结尾选择

//获取前 20 秒、第 42 秒至第 52 秒,然后获取 1:23 至结束***

mpgtx -j input.mpg [-0:20] [0:42-0:52] [1:23-] -o output.mpg

将 mpeg 电影分割成几个自定义长度的文件

//将第 1-2 分钟和第 3-4 分钟分成两个文件 (out-1.mpg 和 out-2.mpg)

mpgtx -s input.mpg [1:00-2:00] [3:00-4:00] -b out  

将 mpeg 电影分成长度相等的片段

//将电影分成 5 个长度相等的部分,分别称为 out-1.mpg、out-2.mpg、...、out-5.mpg

mpgtx -5 input.mpg -b out  

从命令行连接或合并多个 mpeg 视频文件

mpgtx -j file1.mpg file2.mpg file3.mpg -o output.mpg

如果时间不对,则重新编码文件

您可能会发现计时不太准确,这是因为 mpgtx 的工作方式(以一组图片为基础)。我发现以恒定比特率重新编码 mpeg 会产生文件,然后可以使用上述方法非常精确地分割这些文件。一个简单的重新编码调用如下。

//以 2250k 的恒定比特率重新编码

ffmpeg -i input.mpg -b 2250k -minrate 2250k -maxrate 2250k -bufsize 1000k output.mpg

注意:ffmpeg 可以完成 mpgtx 的大部分功能,但后者可以更轻松地指定多个剪切(您可以输入开始和结束时间,而不是开始和持续时间)。但是,ffmpeg 是一个很好的伙伴。我发现使用 ffmeg 将 AVI 转换为 mpeg,然后使用 mpgtx 进行分割是完成工作的最快方法。

请参阅 mpgtx 和 ffmpeg 的手册页(以及其在线帮助页面http://ffmpeg.org/ffmpeg-doc.html) 了解更多信息。

答案2

你可以尝试一下 ffmpeg。请参阅http://www.joeldare.com/wiki/video:cut_video_with_ffmpeg

剪下您想保留的电影片段,然后将它们连接在一起以获得最终的电影(连接视频:http://ffmpeg.org/faq.html#SEC30

有关更多 ffmpeg 选项的文档可在此处找到:http://ffmpeg.org/ffmpeg-doc.html

相关内容