目标是: 在Android中,我拍摄视频,处理每个视频帧,并将处理后的视频帧记录到输出视频文件中。
当然,如果可以实时实施,那将是完美的。但是,视频记录fps是15,每帧的平均处理时间约为1/10秒,即10帧/秒。所以我不能以实时的方式做到这一点。 (顺便说一下,即使帧处理速度大约是1/15秒,也没有好办法以有效的方式从摄像机获取帧数据。预测图像显然比实际fps更新慢)
所以我打算开始另一个线程,而视频正在录制到视频文件,比如名为videoFileBefore.mp4。显然,videoFileBefore.mp4处于重新编码模式。但我想打开文件,处理可用的帧,并将它们写入另一个新的视频文件,比如videoFileAfter.mp4。 如果视频录制是10秒,则应用需要额外的5秒才能完成视频处理。整个过程是15秒。 (这里假设视频录制花费的时间很少。更准确地说,我们可以添加它)
第二个选项是:我等待处理视频文件videoFileBefore.mp4,直到录制结束,整个时间是: 10秒+ 15秒= 25秒。 所以我更喜欢第一种选择:在处理视频文件时处理它。
但似乎现有的视频格式不支持此类操作。 有什么想法吗?