我见过许多类似的问题,但没有人给出100%的回答:
Skype是如何做到的?在Android上访问实时视频帧的正确方法是什么?
答案 0 :(得分:2)
在3.0之前的Android版本上,预览回调是唯一的选择;请确保使用setPreviewCallbackWithBuffer方法,效率更高。
在Honeycomb或更高版本中,您还可以使用通过setPreviewTexture的GPU路径。这将使预览流直接进入GPU纹理,这更适合某些应用程序。
尝试使用内部C / C ++ API不会获得任何巨大的性能提升,并且保证在将来的版本中有所改变,因此我不建议使用它。
确保从支持的帧速率列表中将预览帧速率设置得尽可能高。
如果您需要高而稳定的帧速率,您还可以尝试在较新的设备上将recording hint设置为true。
不幸的是,这两种方法都不能保证提供稳定的输出帧速率,这非常依赖于场景条件和设备自动曝光算法的细节。这是我们希望将来能够改进的。
但是,如果上述两个选项中的一个不是Skype等人使用的话,我会感到非常惊讶。