如何在不重新编码的情况下修剪 OGV 文件?

Bri*_*and 5 linux video-editing

首先,介绍一下背景。我使用recordMyDesktop录制视频。这不是 gtk 或 qt 包装器,我只是使用命令行。命令看起来像这样。

recordmydesktop -o file.ogv --full-shots --device=default
Run Code Online (Sandbox Code Playgroud)

问题在于它将Theora 视频和 Vorbis 音频保存在 OGV 容器中。我没有其他选择可以使用。我的问题是我在所需的录制时间之前和之后的一段时间结束了。也就是说,我花在设置和清理上的时间。我想删除这个。所以我的问题是...

如何从视频中提取秒 X 到 Y?

我想保留所有原始质量。它也必须可以上传到 YouTube。只要满足这两个条件,我实际上并不关心不同的格式。


我正在使用 Linux Mint(基于 Ubuntu/Debian),我可以安装任何需要的免费软件,只要我不必自己编译。


编辑:
我尝试了此处发布的解决方案。它产生的 avi 音频不同步,并且在前 30 秒后以某种方式丢弃了所有内容。

slh*_*hck 13

你真的不想自己编译吗?这很容易。按照此处的指南安装最新版本的 FFmpeg。这需要几分钟。您还可以从他们的下载页面下载静态构建,您只需将其解压缩即可。

我真的建议您使用最新版本,因为 Ubuntu (Mint) 附带的版本可能有问题并且确实已经过时,并且在使用apt-get.

首先,您可以在不重新编码任何内容的情况下提取部分,例如从 01:23 开始的 10 秒:

ffmpeg -ss 00:01:23 -i file.ogv -t 00:00:10 -c copy out.ogv
Run Code Online (Sandbox Code Playgroud)

如果您想重新编码视频(这应该有助于解决同步问题),对于 H.264 视频和 AAC 音频(只需复制和粘贴所有内容,包括反斜杠),这将是以下内容:

ffmpeg -ss 00:01:23.450 -i file.ogv -t 00:00:10.000 \
-c:v libx264 -preset slow -c:v aac -strict experimental -b:a 128k out.mp4
Run Code Online (Sandbox Code Playgroud)

有关您可以在此处添加哪些选项的详细说明,请查看x264 编码指南