H.264 实时流媒体

发布于 2024-11-19 01:30:11 字数 93 浏览 2 评论 0原文

我正在尝试构建一个实时流式传输 Android 手机捕获的视频和音频的系统。我想使用媒体记录器对数据进行编码,然后通过 RTP 发送它,但问题是如何在缓冲区中获取编码数据。

I'm trying to build a system that live-streams video and audio captured by android phones. I want to use media recorder to encode the data and then send it over RTP but the problem is how can i get the encoded data in a buffer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哥,最终变帅啦 2024-11-26 01:30:11

你不能。至少你不能没有一些技巧。媒体记录器不支持写入缓冲区。

诀窍是创建管道,提取管道描述符并将其传递给 setOutputFile(FileDescriptor fd) 函数。这种方法存在一些问题,因为 MediaRecorder 不以面向流的方式写入媒体内容。换句话说,它依赖于这样一个事实:它可以向后导航文件并稍后写入一些包头。

有关此内容的更多详细信息,请访问:使用 Android 播放视频 - 不写入本地文件

You can't. At least you can't without some hacks. Media recorder does not support writing to buffers.

The trick is to create pipe, extract pipe descriptor and pass it to setOutputFile(FileDescriptor fd) function. There are some issues with this approach, as MediaRecorder does not write media content in stream-oriented way. In other words, it relies on the fact that it can navigate back through file and write some package headers later on.

More details on this can be found here: Broadcasting video with Android - without writing to local files

悟红尘 2024-11-26 01:30:11

我发现了其他两个选项(我也没有尝试过):

  1. 内存缓冲区的 FileDescriptor: http://www.devdaily.com/java/jwarehouse/android/core/java/android/os/MemoryFile.java.shtml
  2. Android 4.0 实现OpenMAX 多媒体 API:http://developer.android.com/about/ versions/android-4.0-highlights.html

后者可能是您最好的选择。

I found two other options (I haven't tried either):

  1. A FileDescriptor to a memory buffer: http://www.devdaily.com/java/jwarehouse/android/core/java/android/os/MemoryFile.java.shtml
  2. Android 4.0 implements the OpenMAX multimedia API: http://developer.android.com/about/versions/android-4.0-highlights.html

The latter is probably your best bet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文