在iOS上通过WiFi和蓝牙流式传输视频

时间:2013-11-04 07:56:43

标签: ios bluetooth streaming video-streaming wifi

这个问题非常通用,因为我是iOS,视频流和蓝牙的新手(将成为一个有趣的项目)。

基本上我希望能够通过WiFi或蓝牙将低分辨率视频从一台iOS设备传输到另一台iOS设备,具体取决于哪一个可用。 Bonjour用于初始服务发现。 (我知道通过蓝牙传输视频是不理想的,但这是项目的要求之一)

所以问题是可以使用什么视频流框架/库来最大化WiFi上的流视频和蓝牙流视频之间共享的代码量。

3 个答案:

答案 0 :(得分:4)

以下是通过Multipeer Conectivity测试视频流的说明:

您需要Cocoapods,如果尚未安装,请转到http://cocoapods.org/#install

  1. https://github.com/pj4533/AVCaptureMultipeerVideoDataOutput
  2. 克隆发射器
  3. 导航到终端中的AVCaptureMultipeerVideoDataOutput/Sample目录并执行pod install
  4. https://github.com/pj4533/SGSMultipeerVideoMixer
  5. 克隆接收者
  6. 在物理设备中运行发射器,您将在屏幕上看到后置摄像头
  7. 在模拟器或物理设备中运行一个或多个接收器,发射器的图像应出现在接收器中。
  8. 注意:Multipeer Connectivity需要iOS 7,两个设备都应该启用WiFi或蓝牙,我已经在WiFi上成功测试过,蓝牙可能太慢了。

答案 1 :(得分:3)

我建议使用MultipeerConnectivity框架。 以下是MCSessionDelegate

提供的一些委托方法
MCSessionDelegate <NSObject>


// Received a byte stream from remote peer

- (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID;


// Start receiving a resource from remote peer

- (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress;


// Finished receiving a resource from remote peer and saved the content in a temporary location - the app is responsible for moving the file to a permanent location within its sandbox

- (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error;`

尝试阅读http://nshipster.com/multipeer-connectivity/

答案 2 :(得分:1)

我编写的代码就是这样做的;这是我用我的应用程序将视频从一个设备传输到另一个设备的视频:

<iframe width="560" height="315" src="https://www.youtube.com/embed/mWyZ1z55chw?rel=0" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>

屏幕录像机(iOS 11.2)导致接收端偶尔出现断断续续的情况(它是在我的应用显示它的同时录制视频)。

无论如何,它使用设备之间的任何连接(无线,蓝牙,烟雾信号等等,让我知道,我会让你开始。

无法看到视频? https://youtu.be/mWyZ1z55chw