【发布时间】:2016-03-13 13:38:12
【问题描述】:
我有一个实时视频流,并希望通过准确的时间戳(pts)从中剪切一些视频片段。
当我收到一个 avpacket 时,我会对其进行解码,然后做一些事情并缓存 avpacket。我不想重新编码所有的avpackets,它会消耗cpu资源。
H.264流中有很多gop structure,通常我们应该从关键帧开始剪切视频,并在关键帧结束。否则视频剪辑中的前面一些帧会显示错误。
现在我使用av_write_frame 将avpacket 制作成视频。但有时gop的长度很长,比如250、8.3s(每秒30帧)。这意味着两个 I 帧之间的距离可以是 250 帧。视频剪辑很短,我不想添加太多未使用的帧。
我该怎么办?我想我应该在视频剪辑的开始位置插入一个 i-frame。我可以将 p 帧更改为 i 帧吗?
感谢您的阅读!
【问题讨论】: