2

我明白,在 android 中有两种捕获视频的方法。
1) 使用 SurfaceView API
2) 使用 MediaRecorder API

我想使用 Android (3.0+) 的默认编码器捕获 H.264 编码帧,以使用 RTP 通过网络发送。

在使用 SurfaceView 和 SurfaceHolder 类的预览回调时,我们能够将原始帧作为预览显示给用户。我们在“PreviewCallback”类的“onPreviewFrame”方法中获取帧。但是,这些帧是 H.264 编码的。因此,我尝试使用“MediaRecorder”API 设置 H.264 编码和“SurfaceView”来获取预览帧。在这种情况下,不会调用 previewcallbacks。

您能否让我知道如何实现这一目标。我们的主要目标是获取 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 编码帧的方法。

4

1 回答 1

3

请参阅 Spydroid http://code.google.com/p/spydroid-ipcamera/

基本上,您让视频编码器将带有 H.264 的 .mp4 写入一个特殊的文件描述符,该文件描述符在写入时调用您的代码。然后剥离 MP4 标头并将 H.264 NALU 转换为 RTP 数据包。

于 2012-11-29T15:38:36.867 回答