web-dev-qa-db-fra.com

Streaming vidéo en direct de la caméra depuis iOS (iPhone / iPad) vers un PC / serveur distant

Je recherche depuis un certain temps sur stackoverflow et sur le Web une solution à mon problème de streaming vidéo. J'ai besoin de diffuser une vidéo en direct capturée depuis la caméra (pas de haute qualité requise) d'un appareil iOS vers un PC distant d'une manière, c'est-à-dire que l'appareil iOS enverra un flux vidéo au serveur/PC mais pas l'inverse .

Ce qui apparaît après quelques recherches sur Google et dans la documentation, c'est qu'il existe deux principaux standards/protocoles principaux qui peuvent être utilisés:

  • Streaming HTTP en direct d'Apple (HLS)
  • RTMP d'Adobe

Encore une fois, mon exigence est que l'iPhone/iPad diffuse la vidéo. D'après ce qui apparaît sur le site Web d'Apple, je comprends que HLS doit être utilisé du point de vue du codage côté serveur et du côté iOS du point de vue du décodage. Depuis RTMP, la plupart des bibliothèques qui autorisent le streaming iOS ont des licences commerciales et du code fermé ou vous obligent à passer par leur infrastructure P2P (par exemple angl.tv ou tokbox.com/opentok/quick -start ). Depuis HLS, aucune bibliothèque d'encodage ne semble exister côté iOS.

Mes questions sont donc:

  • Connaissez-vous un SDK/bibliothèque de préférence ouvert et gratuit que je pourrais intégrer pour diffuser des vidéos capturées à partir de mon application?
  • Si non, pensez-vous que développer une bibliothèque personnalisée serait une tentative de traversée de jungle risquée? Ma conjecture est de passer par AVFoundation et de capturer des images de caméra, de les compresser image par image et de les envoyer via HTTP. Cela semble-t-il fou en termes de performances et de bande passante? Notez que dans ce cas, j'aurais besoin d'un encodeur HLS ou RTMP dans les deux cas.

Je vous remercie beaucoup d'avance, chers amis.

Mehdi.

45
Medi The Jedi

J'ai développé une telle bibliothèque, et vous pouvez la trouver sur github.com/jgh-/VideoCore

Je mets à jour cette réponse car j'ai créé une API iOS simplifiée qui vous permettra de configurer facilement une session RTMP Caméra/Micro. Vous pouvez le trouver sur https://github.com/jgh-/VideoCore/blob/master/api/iOS/VCSimpleSession.h .

De plus, VideoCore est désormais disponible dans CocoaPods.

29
jgh