android - 如何在android中捕获H.264编码的帧?

标签 android video native h.264 codec

据我所知,在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/

相关文章:

android - 在多个平台上使用 Localytics - 单独的应用程序 key ?

android - 在xml编辑器中切换字符串资源的引用和值预览

Android:生成主 dex 列表时出错

facebook - 如何使用 iphone sdk 4.0 在 facebook 上上传视频?

eclipse - 如何在 Spring Web 应用程序中添加 OpenCV 库

java - 从子类访问方法时出错

IOS 如何异步下载和缓存图像和视频以在我的应用程序中使用

javascript - 多个文件的 HTML 视频播放器

linux - 动态链接与静态链接与 PIC 与非 PIC

c++ - Uncaught Error : error 1114 in electron