据我所知,在android中有两种捕获视频的方法。
1) 使用SurfaceView API
2) 使用MediaRecorder API
我想使用 Android (3.0+) 的默认编码器捕获 H.264 编码帧,并使用 RTP 通过网络发送。
在 SurfaceView 和 SurfaceHolder 类中使用预览回调时,我们可以获得向用户显示预览的原始帧。我们在“PreviewCallback”类的“onPreviewFrame”方法中获取帧。 但是,这些帧是 H.264 编码的。 因此,我尝试使用“MediaRecorder”API 设置 H.264 编码和“SurfaceView”来获取预览帧。 在这种情况下,预览回调不会被调用。
您能告诉我如何实现这一目标吗?我们的主要目标是获取 H.264 编码帧(已使用 Android 的默认编解码器进行编码)。 引用号:1) https://stackoverflow.com/a/8655244/698316 2)类似问题:http://permalink.gmane.org/gmane.comp.handhelds.android.devel/214422
您能否建议一种使用 Android 默认 H.264 编解码器支持捕获 H.264 编码帧的方法。
最佳答案
参见 Spydroid http://code.google.com/p/spydroid-ipcamera/
基本上,您让视频编码器将 H.264 的 .mp4 写入特殊的文件描述符,该描述符在写入时调用您的代码。然后剥离 MP4 header ,将 H.264 NALU 转换为 RTP 数据包。
关于android - 如何在android中捕获H.264编码的帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11430603/