我正在寻找最好的方式来流媒体视频和音频从安卓手机到服务器使用RTMP。我已经在这个问题上花了一些时间,到目前为止,我只能使用FFMPEG来流式传输视频。有很多方法可以为Android构建lib,我猜通过一些更多的工作,我也应该能够流式传输音频。
问题是,我需要用h264编码视频,用AAC编码音频,使用安卓的MediaRecorder很容易做到这一点。所以我开始寻找适用于安卓系统的RTMP库,发现这个Red5 port似乎运行得很好。使用它,我可以很容易地流式传输存储在手机上的视频文件,音频也可以正常工作。
所以我的问题是:有没有办法将Android的MediaRecorder输出连接到RTMP库?我猜方法是在setOutputFile()中‘伪造’一个文件,然后将数据发送到RTMP编码方法,但我不知道怎么做。
任何线索都是欢迎的,真的。提前谢谢。
发布于 2012-05-09 11:33:03
您可以使用setOutputFile()将数据写入FileDescriptor而不是文件。
FileDescriptor fd = mLocalSender.getFileDescriptor();
mRecorder.setOutputFile(fd);
因此,您可以将数据流式传输到套接字。要从该套接字中获取数据,如下所示:
mLocalServer = new LocalServerSocket(LOCAL_SOCKET_ADDRESS);
mLocalReceiver = new LocalSocket();
mLocalReceiver.connect(new LocalSocketAddress(LOCAL_SOCKET_ADDRESS));
mLocalSender = mLocalServer.accept();
if (mLocalReceiver != null)
{
mInputStream = mLocalReceiver.getInputStream();
}
我不知道你的RTMP库是如何工作的,但我认为,应该可以将输入流传递给该库的一些方法。
有关更多信息,您也可以查看spydroid application。它包含了许多用于RTP上的视频流的有用的东西,而没有任何特殊的流程库。
发布于 2012-05-09 11:42:26
可能正在使用Red5媒体服务器可以帮到你。它附带了一些工作示例,您可以将其用于流媒体目的。
https://stackoverflow.com/questions/10165154
复制相似问题