php - ffmpeg:按需进行 1 帧操作

标签 php c++ c ffmpeg

SO 的 friend 们大家好!

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

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

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

前面算法的第 (3) 点已经使用 GD 作为 PHP 模块解决了。然而,我们需要为该过程的其余部分找到解决方案才能完成此任务。

如果有人可以帮助我们解决此问题,请随时与我联系。

提前致谢; 克里斯·C·罗素

最佳答案

这是一个相当复杂的问题,不能通过简单地用修改后的图像替换关键帧来解决。要使其发挥作用,(至少)应解决以下问题:

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

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

关于php - ffmpeg:按需进行 1 帧操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17508855/

相关文章:

php - 在多维数组的子数组中查找公共(public)值

C++ 控制台进度指示器

c++ - 无法将迭代器设置为 std::map 的 std::pair

php - 如何让我的php程序一直在linux下运行?

javascript - html表单输入javascript求和字段

c - 子 pthread 发生段错误

c - gets() 似乎存储了一些垃圾字符串

c - unsigned int * 代替 int

php - 在 "Unknown column ' 中获取此错误 'field list' bus_name'

c++ - 如何在 clang 库中执行模板替换?