15

我希望從iPhone獲得實時視頻到其他設備(桌面瀏覽器或其他iPhone,例如點對點) 。從iPhone到另一個設備(瀏覽器或iPhone)的實時音頻/視頻流式傳輸

注意:這不是一對多的,目前只是一對一。音頻可以是流媒體的一部分,也可以通過iphone上的電話呼叫。

有四種方法我能想到的...在iPhone上

  1. 捕獲幀,發送 幀媒體服務器,具有 媒體服務器使用託管網絡服務器發佈實時視頻 。在iPhone上

  2. 捕獲幀,轉換成 圖像,發送到的HttpServer,有 的JavaScript/AJAX在瀏覽器從服務器儘可能快地 可能重裝 圖像。

  3. 在iPhone上運行的HttpServer,捕捉 iPhone持續1秒的電影,在iPhone上創建M3U8文件,有其他 用戶直接在iPhone連接到的HttpServer爲 即時串流。

  4. 用於捕捉 iPhone持續1秒的電影,在iPhone上創建M3U8文件, 發送到的HttpServer,有其他 用戶連接到的HttpServer 的即時串流。 This is a good answer,有人得到它的工作?

是否有更好,更高效的選擇? 什麼是從iPhone獲取數據的最快方式?它是ASIHTTPRequest嗎?

謝謝大家。

+0

你是否實現了this.please幫助我 – Ramz 2012-08-07 06:16:56

回答

14

發送原始幀或單張圖片對於您來說永遠無法正常工作(因爲數據量和幀數)。您也不能合理地爲電話提供任何服務(WWAN網絡具有各種防火牆)。您需要對視頻進行編碼,並將其流式傳輸到服務器,很可能是通過標準流式格式(RTSP,RTMP)。 iPhone> = 3GS上有一個H.264編碼器芯片。問題是它不是面向流的。也就是說,它輸出最後解析視頻所需的元數據。這給你留下了幾個選擇。

  1. 獲取原始數據並使用FFmpeg在手機上進行編碼(將使用大量的CPU和電池)。
  2. 爲H.264/AAC輸出編寫您自己的解析器(非常困難)
  3. 以塊形式記錄和處理(會增加等於塊的長度的延遲,並在每個塊之間放下大約1/4秒的視頻大塊,當你開始和停止會議)。
+1

我花了一大堆時間,並提出了相同的3個選項。很高興看到我不瘋狂(我和#3一起去了)。 – jab 2012-02-14 07:44:15

+4

任何人都可以在這裏給我示例代碼或指南來實現這個? – Ramz 2012-08-07 06:15:28

+0

http://stackoverflow.com/questions/5062266/uploading-live-streaming-video-from-iphone/5601041 – Luda 2013-09-18 04:24:23

2

我們有類似的需求;更具體地說,我們希望在iOS設備和Web UI之間實現流媒體視頻&音頻。目標是在使用這些平臺的參與者之間進行高質量的視頻討論。我們做了關於如何實現這一一些研究:

  • 我們決定使用OpenTok和管理,以很快實現一個iPad和使用OpenTok getting started guide網站之間的證明了概念式的視頻聊天。還有一個PhoneGap plugin for OpenTok,這對我們來說很方便,因爲我們不是在使用本機iOS。

  • Liblinphone也似乎是一個潛在的解決方案,但我們沒有進一步調查。

  • iDoubs也出現了,但是我們再一次覺得OpenTok是我們需要的最有希望的一個,因此沒有更詳細地查看iDoubs。

5

「以塊的形式記錄和處理(將增加延遲等於塊的長度和下降每個塊之間的1/4左右秒的視頻,你啓動和停止會話)。」

我剛剛寫了這樣的代碼,但很有可能通過重疊兩個AVAssetWriters來消除這樣的差距。由於它使用硬件編碼器,我強烈推薦這種方法。

+6

你能分享一些代碼嗎? – Anastasia 2013-02-11 09:24:12