今天,我看到很多人都在寻找使用移动设备通过蓝牙进行视频流传输的解决方案,但是我还没有找到任何方便的意见来描述实现此类功能应采取的措施。

一方面,我掌握了相当抽象的信息,即对于成功的视频流传输,两个设备都应符合视频分发配置文件(VDP),这是蓝牙配置文件中的一个。

另一方面,我知道iOS和Android均未提供用于VDP的API。

App Store中有WiFi Camera应用程序,该应用程序允许通过蓝牙将视频从一个ios设备流传输到另一个ios设备,所以我想知道该功能是如何实现的,是否有任何方法可以使用Android和iOS API来做到这一点?

最佳答案

VPD位于称为L2CAP的蓝牙的较低协议中,有点像UDP(就它而言,它是无连接的,因此速度更快),它使用SDP记录在设备上广播有关服务的信息。可通过BlueZ堆栈在Android上访问L2CAP / SDP。所有VDP,A2DP和其他服务都处于此级别。我已经完成了通过VP8编码的L2CAP从Android手机到Windows的视频流传输,因此可以实现,但是视制造商而定有一些限制-例如,HTC至少在2.1中不允许访问蓝牙守护程序,所有BlueZ调用由于访问限制错误而失败,而相同的代码在Motorola和Sony Ericsson上运行良好。关于iOS,据我所知,它们不允许与L2CAP进行直接交互,我想这是由于OS可能希望在L2CAP级别发布其自身的服务,并且如果第三方软件启动的缘故在此处添加太多记录,它们可能会开始发生冲突。因此,对于iOS来说,最好的选择是RFCOMM协议,该协议在堆栈中更高,与TCP相似。基本上,它是2个节点之间的串行连接,没有服务条目或其他任何内容,因此您将需要创建自己的协议。如果还有其他知识要分享,我可以提供帮助,也可以从我的论文中提供有关此主题的一些速度基准。

09-11 02:05
查看更多