gpt4 book ai didi

video - FFmpeg:如何使用 C++ 代码更改视频文件的帧速率?

转载 作者:行者123 更新时间:2023-12-04 22:49:40 34 4
gpt4 key购买 nike

我知道使用 FFmpeg 命令来更改视频文件的帧速率会更容易。
但是无论如何,如果我想用 C++ 代码来做,并使用 FFmpeg 库,我该怎么做呢?

我想我应该能够在源代码中找到线索。
在继续之前,我希望有一些好的介绍或例子。

最佳答案

这相当简单,您只需要修改视频流的 time_base 即可。对于简单的容器格式,例如 AVI,您只需要在标题中执行此操作。如果您坚持通过 ffmpeg API 执行此操作,则需要遍历输入流中的所有帧,并将它们复制到输出流。

以上假设您只想更改 FPS(即减慢或加快视频速度)而不丢帧。但是,如果您想在更改 FPS 的同时保持视频播放的原始速度,则需要重新编码视频,即解码和编码每一帧,同时插入额外的帧或删除一些帧。您不能简单地从视频中删除帧 - 例如,当从 30FPS 转换为 15FPS 时,您不能简单地删除每个第 2 帧,因为它可能是一个关键帧,它会破坏之后的所有帧,直到遇到下一个关键帧。同样,您不能在提高 FPS 时简单地复制一帧,因为 P 帧仅适用于它之前的帧,因此复制它会破坏您的视频。为此,我建议查看我的卡拉 OK 歌词编辑器源代码,特别是 video decodingvideo encoding .

关于video - FFmpeg:如何使用 C++ 代码更改视频文件的帧速率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22643769/

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