Transmisión de video a través de Wi-Fi y Bluetooth en iOS

Esta pregunta será bastante genérica ya que soy novata en iOS, video-streaming y Bluetooth (va a ser un proyecto interesante).

Básicamente, deseo poder transmitir videos de baja resolución desde un dispositivo iOS a otro dispositivo iOS, ya sea a través de WiFi o Bluetooth, dependiendo de cuál esté disponible. Bonjour se usa para el descubrimiento del service inicial. (Sé que la transmisión de video a través de Bluetooth no es ideal, pero es uno de los requisitos del proyecto)

Entonces, la pregunta es qué marco / biblioteca de video-streaming se puede utilizar para maximizar la cantidad de código compartido entre la transmisión de video a través de Wi-Fi y la transmisión de video a través de Bluetooth.

Estas son las instrucciones para probar la transmisión de video a través de la Conectividad de Multipeer:

Necesita Cocoapods, si aún no lo ha instalado, vaya a http://cocoapods.org/#install

  1. Clone el transmisor desde https://github.com/pj4533/AVCaptureMultipeerVideoDataOutput
  2. Navegue hasta el directory AVCaptureMultipeerVideoDataOutput/Sample en el Terminal y ejecute la pod install
  3. Clone el receptor desde https://github.com/pj4533/SGSMultipeerVideoMixer
  4. Ejecute el transmisor en un dispositivo físico, verá la camera trasera en la pantalla
  5. Ejecute uno o más receptores en el simulador o dispositivos físicos, la image del emisor debe aparecer en los receptores.

NOTA: La Conectividad de Multipeer requiere iOS 7 y ambos dispositivos deben tener Wi-Fi o Bluetooth activado, lo he probado con éxito en Wi-Fi, Bluetooth puede ser demasiado lento.

MultipeerConnectivity usar el marco MultipeerConnectivity . Estos son algunos de los methods delegates proporcionados por 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;` 

Intenta leer http://nshipster.com/multipeer-connectivity/