H.264 实时流媒体
我正在尝试构建一个实时流式传输 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你不能。至少你不能没有一些技巧。媒体记录器不支持写入缓冲区。
诀窍是创建管道,提取管道描述符并将其传递给 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, asMediaRecorder
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
我发现了其他两个选项(我也没有尝试过):
后者可能是您最好的选择。
I found two other options (I haven't tried either):
The latter is probably your best bet.