gpt4 book ai didi

video - 如何使用 ffmpeg 提取时间准确的视频片段?

转载 作者:行者123 更新时间:2023-11-28 21:38:32 32 4
gpt4 key购买 nike

这不是一个特别新的问题区域,但我尝试了那里的建议,但运气不佳。所以,我的故事:

我有一段 15 秒的 straight-from-the-camera.mov 视频,我想从中提取一个特定的 block ,我可以通过开始时间和停止时间来识别,以秒为单位。我开始尝试做我称之为“复制提取”的事情:获得第 9 秒到第 12 秒,

ffmpeg -i test.mov -vcodec copy -acodec copy -ss 9 -to 12 test-copy.mov

这是一个不错的开始,但剪辑的开头和结尾有一些黑框,这是我不能拥有的——它必须是对原始剪辑的干净剪辑。因此,我尝试将原件重新编码为经过修剪的新剪辑:

ffmpeg -i test.mov -ss 00:00:09 -t 00:00:03 test-out.mov

这样更好,但不完全是:剪辑开头不再有任何黑框,但结尾处仍然存在。

经过更多的浏览和阅读,我怀疑问题是由于原始视频中缺少关键帧而导致 ffmpeg 无法找到合适的点。因此,我以几种不同的方式重新编码了原始视频以(大概)添加关键帧。因为我希望能够在一秒的边界(“从 9 秒到 12 秒”)选择视频,所以我尝试了,复制了网络上的各种建议,

ffmpeg -i test.mov -force_key_frames "expr:gte(t, n_forced)" test-forced.mp4

ffmpeg -i test.mov -g 1 test-g-inserted.mp4

(我根据一些关于支持关键帧搜索需要 mp4 容器的评论将这些构建为 mp4,但老实说,我只是在这里进行黑客攻击。)然后我像以前一样尝试提取,但是在这些新视频中可能现在它们中有关键帧。运气不好——两者似乎差不多;开始是好的,但最后仍然有黑框。 (FWIW,test-forced.mp4 和 test-g-inserted.mp4 也有尾随黑框。)

所以:我仍然被困住了,并且不想被困住。关于我做错了什么的任何见解?我觉得我很接近,但我真的需要摆脱那些尾随的黑框....

最佳答案

好的,首先假设您知道开始和停止的持续时间;我们将在该持续时间内添加关键帧。

ffmpeg -i a.mp4 -force_key_frames 00:00:09,00:00:12 out.mp4

大多数情况下,您可以直接完美地剪切视频,但在您的情况下这对您没有帮助;所以我们已经通过上面的命令处理了它。这里注意不要添加太多关键帧,因为在按照 Ffmpeg Docs 编码时可能会出现问题。 .

现在您可以再次尝试从特定时间剪切视频。

ffmpeg -ss 00:00:09 -i out.mp4 -t 00:00:03 -vcodec copy -acodec copy -y final.mp4

这将解决问题,因为我们已经在剪辑的起点和终点手动添加了关键帧。它对我有用。

干杯。:)

关于video - 如何使用 ffmpeg 提取时间准确的视频片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420296/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com