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

问题描述 投票:4回答:3

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

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

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

ios bluetooth streaming video-streaming wifi
3个回答
4
投票

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

你需要Cocoapods,如果还没有安装它,请去http://cocoapods.org/#install

  1. https://github.com/pj4533/AVCaptureMultipeerVideoDataOutput克隆发射器
  2. 导航到终端中的AVCaptureMultipeerVideoDataOutput/Sample目录并执行pod install
  3. https://github.com/pj4533/SGSMultipeerVideoMixer克隆接收器
  4. 在物理设备中运行发射器,您将在屏幕上看到后置摄像头
  5. 在模拟器或物理设备中运行一个或多个接收器,发射器的图像应出现在接收器中。

注意:Multipeer Connectivity需要iOS 7,并且两个设备都应该启用WiFi或蓝牙,我已经在WiFi上成功测试过,蓝牙可能太慢了。


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/


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

© www.soinside.com 2019 - 2024. All rights reserved.