将音频和视频从Android手机传输到RTMP服务器的最佳方式

时间:2012-04-15 19:10:35

标签: android

我正在寻找使用RTMP将视频和音频从Android手机流式传输到服务器的最佳方式。我已经花了一些时间来解决这个问题,到目前为止,我只能使用FFMPEG来传输视频。有很多方法可以为Android构建lib,我想通过更多的工作我也应该能够流式传输音频。

问题是我需要对h264中的视频和AAC中的音频进行编码,使用Android MediaRecorder进行编码非常容易。所以我开始寻找Android的RTMP库,发现这个Red5 port看起来效果很好。使用它我可以很容易地流式传输存储在手机上的视频文件,音频也可以正常工作。

所以我的问题如下:有没有办法将Android的MediaRecorder输出连接到RTMP库?我想方式是假的' setOutputFile()中的文件,然后将数据发送到RTMP编码方法,但我无法想办法。

任何线索都是受欢迎的,真的。提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用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进行视频流传输而无需任何特殊的流媒体库。

答案 1 :(得分:0)

可能正在使用Red5 Media服务器可以帮到你。它附带了一些工作示例,您可以将其用于流式传输。