2012-11-01 41 views
2

今天我看到很多有興趣使用移動設備尋找藍牙視頻流解決方案的人,但是我還沒有找到任何方便的意見來描述如何實現這樣的功能。WiFiCameraApp中的藍牙視頻流

一方面,我有比較抽象的信息,爲了成功的視頻流,兩個設備應符合視頻分佈配置文件(VDP),這是藍牙配置文件的數量。

另一方面,我知道iOS和Android都不提供用於使用VDP的API。

在App Store中有WiFi Camera應用程序,它允許通過藍牙將視頻從一個iOS設備流式傳輸到另一個設備,因此我不知道該功能是如何實現的,並且有任何方法可以使用Android和iOS API執行相同操作?

回答

6

VPD位於藍牙的較低協議中,稱爲L2CAP,它與UDP很相似(因爲它是無連接的,因此速度更快),並使用SDP記錄廣播設備上的服務信息。 L2CAP/SDP可通過BlueZ堆棧在Android上訪問。所有的VDP,A2DP和其他服務都在這個級別上。我已經通過VP8編碼的L2CAP完成了從Android手機到Windows的視頻流,因此這是可能的,但是根據製造商的不同,有一些限制 - 例如,HTC至少在2.1版本中不允許訪問藍牙守護進程,所有BlueZ調用失敗的訪問限制錯誤,而相同的代碼在摩托羅拉和索尼愛立信上運行良好。至於iOS,據我研究,它不允許直接與L2CAP交互,我想這是因爲操作系統可能希望在L2CAP級別發佈它自己的服務,並且如果第三方軟件啓動在那裏添加太多記錄,他們可能開始衝突。所以你最適合iOS的是RFCOMM協議,它在堆棧中較高,與TCP相似。基本上它是2個節點之間的串行連接,沒有服務條目或其他,所以你需要創建你自己的協議。如果還有其他知識可以分享,我可以提供幫助,我也可以提供一些關於這個主題的論文的速度基準。

+0

感謝您的回覆。你做過的很棒的工作。讓我猜猜,你是否使用NDK與BlueZ堆棧的L2CAP部分進行通信以進行即時交互?而且據我瞭解,Apple不提供與RFCOMM交互的框架,所以應該以其他方式完成? – teoREtik

+1

是的,在Android上,我通過NDK完成了所有的編碼。我不想誤導你,我實際上不記得iOS是否有直接用於RFCOMM的API,但你可以看看BTstack項目(http://code.google.com/p/btstack /),它聲稱支持iOS。 –

+0

偉大的鏈接,非常感謝) – teoREtik