2012-04-15 42 views
4

我正在尋找使用RTMP將視頻和音頻從Android手機傳輸到服務器的最佳方法。我花了一些時間解決這個問題,至今我只能使用FFMPEG流式傳輸視頻。有很多方法可以爲Android構建lib,我想通過一些更多的工作,我也可以流式傳輸音頻。將音頻和視頻從Android手機傳輸到RTMP服務器的最佳方式

問題是我需要在h264中對視頻進行編碼,並在AAC中對音頻進行編碼,使用Android的MediaRecorder將很容易。所以我開始尋找Android的RTMP庫,發現這個Red5 port似乎工作得很好。使用它我可以非常容易地流式傳輸存儲在手機上的視頻文件,並且音頻也可以工作。

所以我的問題是:有沒有辦法將Android的MediaRecorder輸出連接到RTMP庫?我想方法是在setOutputFile()中僞造一個文件,然後將數據發送到RTMP編碼方法,但我無法想出辦法做到這一點。

任何線索都是值得歡迎的,真的。提前致謝。

+0

我在找類似的東西。你有沒有找到任何線索? – curioustechizen 2012-05-05 14:36:14

回答

3

您可以將數據寫入FileDescriptor而不是帶有setOutputFile()的文件。

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進行視頻流傳輸,而無需任何特殊的流媒體庫

+0

嘿,我完全錯過了你的答案。謝謝!我正在研究這樣的事情,但你的回答有很大幫助。 – Simon 2012-05-17 13:38:58

0

可能使用Red5 Media服務器可以幫到你。有一些工作示例可用於流式傳輸。

相關問題