ffmpeg:按需处理1帧

时间:2013-07-07 02:57:52

标签: php c++ c ffmpeg

大家好& SO的朋友们!

我们需要创建一个小应用程序来从视频中获取随机帧,并实时对其应用一些修改。

这必须是实时完成的,,为了做到这一点,我们不会在视频开始流式传输之前创建一些初始延迟。因此,让我们假设我们总共有6秒的预加载时间,以便:

1) extract a keyframe.
2) create an image with it.
3) manipulate the image.
4) replace the original keyframe with the new one.

使用GD作为PHP模块已经解决了先前算法的第(3)点。但是,为了实现这一目标,我们需要为剩余的程序找到解决方案。

如果有人可以帮助我们,请随时与我联系。

提前致谢; Chris C. Russo

1 个答案:

答案 0 :(得分:0)

这是一个非常复杂的问题,只需用修改后的图像替换关键帧就无法解决。应该解决以下问题(至少):

  • 重新编码依赖于关键帧的所有帧。否则,视频将会损坏。
  • 文件格式注意事项 - 修改后的关键帧和后续帧在编码后可能具有不同的大小(与原始编码数据相比)。将它们存储在输出文件中并不容易
  • 时间戳 - 必须保留这些已修改帧的时间戳信息,否则输出文件中会出现音频 - 视频同步问题。

鉴于这些问题,我的建议是在原始视频帧中执行图像处理,然后对流进行编码。如果我能帮忙澄清,请告诉我。