首先,介绍一下背景。我使用记录我的桌面。这不是 gtk 或 qt 包装器,我只是使用命令行。命令如下所示。
recordmydesktop -o file.ogv --full-shots --device=default
问题是它节省了Theora 视频和 OGV 容器中的 Vorbis 音频。我没有其他选择。我的问题是,我最终会在所需录制时间之前和之后得到一些时间。也就是说,我花在设置和清理上的时间。我想删除它。所以我的问题是...
如何从视频中提取 X 到 Y 秒的时间?
我想保留所有原始质量。它也必须能够上传到 YouTube。只要满足这两个条件,我实际上并不关心不同的格式。
我正在使用 Linux Mint(基于 Ubuntu/Debian),我可以安装任何需要的免费软件,只要我不必自己编译它。
编辑:
我尝试了发布的解决方案这里。它制作的 avi 音频不同步,并且不知何故在前 30 秒之后丢弃了所有内容。
答案1
你真的不想自己编译吗?这很容易。关注这里的指南安装最新版本的 FFmpeg。这需要几分钟。您也可以从下载静态版本他们的下载页面,您只需将其提取出来就可以开始了。
我真的建议您使用最新版本,因为 Ubuntu(Mint)附带的版本可能有缺陷并且确实过时,并且安装时需要一些依赖项apt-get
。
首先,你可以提取一部分而不重新编码任何内容,例如从 01:23 开始的 10 秒:
ffmpeg -ss 00:01:23 -i file.ogv -t 00:00:10 -c copy out.ogv
如果您想重新编码视频(这应该有助于解决同步问题),对于 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
有关可以在此处添加哪些选项的详细说明,请查看x264 编码指南。
答案2
关键:在编辑 recordmydesktop 中的 ogv 文件之前,应该使用 ffmpeg 进行修复
这对我有用:
- 修复并提取第一个视频的某些部分
ffmpeg -i midemo-1.ogv -t 00:05:18 -c copy v1.ogv
- 修复第二个视频
ffmpeg -i midemo-2.ogv -c copy v2.ogv
- 连接两者
ffmpeg -i "concat:v1.ogv|v2.ogv" -c copy test.ogv