0

就我而言,视频流来自 Android MediaRecorder。[更新] 从网上的一些资料来看,视频流通常可以在函数setOutputFile(FileDescriptor fd)中输入fd。

与捕获帧相关的帖子在这里:“在录制时逐帧处理Android视频

一个答案是:

  1. 使用 NDK 打开一个流(可能是 api,取决于实现)
  2. 修改流的字节 - 每个帧都作为一个单独的数据包发送。您必须从相机中获取每个数据包,并对其进行修改。您可以替换颜色,也可以翻译。您还可以使用 OpenGL 通过添加诸如玻璃效果之类的东西来完全修改图像。
  3. ...

但我不知道可以使用哪些 API/库来捕获/抓取视频流中的每一帧。(我已经能够使用 ffmpeg 将帧编码为视频文件)

我阅读了“ wiki:使用 ffserver 流媒体

但我不清楚如何用 C/c++ 制作程序以从视频流中捕获/抓取帧。

带有示例和教程的链接将不胜感激。

4

1 回答 1

0

您可能使用 FFmpeg 命令行工具将帧编码为视频。现在是时候使用 FFmpeg 使用的库了:libavcodec、libavformat、libavutil 等。只需从FFmpeg 下载页面下载源代码,您就会在目录中找到一些如何使用它们的示例doc/examples/。一个很好的例子是解码和编码的例子。

于 2013-03-27T22:02:59.310 回答