据我所知,在android中有两种捕获视频的方式。
1)使用SurfaceView接口
2)使用MediaRecorder接口
我想使用安卓(3.0+)的默认编码器捕获H.264编码的帧,以便使用实时传输协议通过网络发送。
在使用带有SurfaceView和SurfaceHolder类的预览回调时,我们能够将原始帧作为预览显示给用户。我们在"PreviewCallback“类的"onPreviewFrame”方法中获取帧。但是,这些帧是H.264编码的。因此,我尝试使用"MediaRecorder“接口来设置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编码帧的方法吗?
发布于 2012-11-29 23:38:37
参见Spydroid http://code.google.com/p/spydroid-ipcamera/
基本上,你让视频编码器用H.264将一个.mp4写到一个特殊的文件描述符中,这个文件描述符会在写入时调用你的代码。然后剥离MP4报头,将H.264NALU转换为RTP包。
https://stackoverflow.com/questions/11430603
复制相似问题