就我而言,视频流来自 Android MediaRecorder。[更新] 从网上的一些资料来看,视频流通常可以在函数setOutputFile(FileDescriptor fd)中输入fd。
与捕获帧相关的帖子在这里:“在录制时逐帧处理Android视频”
一个答案是:
- 使用 NDK 打开一个流(可能是 api,取决于实现)
- 修改流的字节 - 每个帧都作为一个单独的数据包发送。您必须从相机中获取每个数据包,并对其进行修改。您可以替换颜色,也可以翻译。您还可以使用 OpenGL 通过添加诸如玻璃效果之类的东西来完全修改图像。
- ...
但我不知道可以使用哪些 API/库来捕获/抓取视频流中的每一帧。(我已经能够使用 ffmpeg 将帧编码为视频文件)
我阅读了“ wiki:使用 ffserver 流媒体”
但我不清楚如何用 C/c++ 制作程序以从视频流中捕获/抓取帧。
带有示例和教程的链接将不胜感激。