Est-il possible d'utiliser WebRTC pour diffuser de la vidéo d'un serveur à un Client?
dans WebRTC, je vois toujours l'implémentation de peer-to-peer et comment faire passer la vidéo en streaming d'un client à un autre. Comment sur de serveur à client?
est-il possible pour WebRTC de diffuser un fichier vidéo du serveur au client? (Je pense utiliser L'API Native C++ De WebRTC pour créer ma propre application serveur afin de me connecter à l'implémentation actuelle de l'application client de navigateur chrome ou firefox.)
OK, si c'est possible, il sera plus rapide que de nombreux services de transmission vidéo?
5 réponses
Oui c'est possible car le serveur peut être l'un des pairs dans cette session peer-to-peer. Si vous respectez les protocoles et envoyez la vidéo dans les paquets SRTP en utilisant VP8, le navigateur la Lira. Pour vous aider à construire ces composants sur d'autres applications ou serveurs, vous pouvez vérifier cette "page et ce" projet 151930920 " comme un guide.
maintenant, en comparant WebRTC avec d'autres services de streaming... Il dépendra de plusieurs variables comme le Codec ou le protocole. Mais, par exemple, en comparant WebRTC (SRTP sur UDP avec VP8 Codec) contre Flash (RTMP sur TCP avec H264 Codec), je dirais que WebRTC gagne.
- le joueur sera Flash Player contre la balise native
<video>
. - le transport serait TCP contre UDP.
mais bien sûr, tout dépend de ce que vous envoyez au client.
j'ai écrit quelques applications et plugins en utilisant L'API WebRTC native, et il n'y a pas beaucoup d'informations là-bas encore, Mais voici quelques ressources utiles pour vous aider à commencer:
exemple QT: http://research.edm.uhasselt.be/jori/qtwebrtc
Natif de L'exemple de navigateur: http://sourcey.com/webrtc-native-to-browser-video-streaming-example /
j'ai commencé avec le WebRTC Native C++ to Browser video Streaming Example mais il ne construit plus avec le actuel code natif de WebRTC .
puis j'ai fait des modifications fusionnant dans un processus autonome:
- gestion de la peerConnection (le
peerconnection_server
) - l'accès à l'Video4Linux capture (le
peerconnection_client
).
supprimer le flux du navigateur vers le client natif C++ De WebRTC donne une solution simple pour accéder par un navigateur WebRTC à un périphérique Video4Linux qui est disponible à partir de GitHub WebRTC-streamer .
nous tentons de remplacer MJPEGs par Webrtc pour notre logiciel serveur et avons un module prototype pour le faire en utilisant un smattering de composants liés au projet Openwebrtc. Cela a été un ours absolu à faire, et nous avons de fréquentes erreurs de négociation de glace (même sur un simple réseau local), mais cela fonctionne surtout.
nous avons également construit un prototype avec le module Google Webrtc, mais il avait de nombreuses dépendances. Je trouve plus facile de travailler avec les modules Openwebrtc car Les affaires de Google sont si étroitement liées à des scénarios de pair-à-pair généraux sur le navigateur.
j'ai compilé ce qui suit à partir de zéro:
libnice 0.1.14
gstreamer-sctp-1.0
usrsctp
alors je dois interagir avec libnice un peu directement pour rassembler des candidats. Il faut aussi écrire les fichiers SDP à la main. Mais la quantité de contrôle--être capable de contrôler la source du pipeline--le rend utile. Le pipeline résultant (avec deux clients sur un serveur source) est la suivante:
bien sûr. J'écris un programme en utilisant l'api native WebRTC qui peut rejoindre la conférence en tant que Pair et enregistrer à la fois vidéo et audio.