RTMP vs RTSP/RTP: Laquelle choisir pour un interactive livestream?
Si vous essayez de développer un interactive livestream de l'application, vous pouvez compter sur ultra faible (en temps réel) la latence. Par exemple pour une vidéo conférence ou une distance de laboratoire.
Les deux protocoles, qui doit être adapté à ces circonstances sont les suivantes:
- RTSP, lors de la transmission des données via le protocole RTP
- RTMP
*WebRTC: Comme je suis en train de donner un plus grand public la possibilité d'interagir les uns avec les autres, WebRTC n'est pas adapté. Car autant que je sache, il n'est pas conçu pour un large public.
Mes questions:
- Lequel dois-je choisir pour ce cas d'utilisation? RTSP/RTP ou RTMP?
- Le protocole qui garantit de meilleurs résultats concernant de bout en bout, temps de latence, session start-up de temps?
- Que l'on consomme plus de ressources matérielles?
- RTMP semble utiliser une persistance de la connexion TCP. Mais quel protocole est utilisé pour la transmission? Il ne peut être TCP, parce que cela ne pouvait pas s'assurer en temps réel de la latence?
- Ce sont en général les avantages et les inconvénients à l'utilisation de protocoles?
Je n'ai pas trouvé de comparaison de ces deux protocoles dans des revues scientifiques ou des livres. Seulement que le fameux mobile live-streaming application Périscope est à l'aide du PROTOCOLE.
D'autres applications comme Instagram ou Facebook sont, par exemple, fournir des textes basés sur l'interaction avec le streamer. Si les développeurs veulent construire la prochaine "killer application" interactives en direct les flux: je pense que cette question est essentielle pour répondre.
OriginalL'auteur Joey | 2017-08-06
Vous devez vous connecter pour publier un commentaire.
Vous faire beaucoup d'hypothèses dans votre réponse.
Qui est tout simplement pas vrai. WebRTC n'est pas de savoir ou de soins de la façon dont vous structurez vos applications côté serveur. Il y a beaucoup de hors-the-shelf de services pour le traitement de gros appels de groupe et une faible latence, la distribution de la vidéo via WebRTC.
Vous devez également savoir que pour les flux multimédia, WebRTC est RTP sous le capot.
Bien sûr, il peut. Il y a une surcharge, avec le protocole TCP, mais rien ne vous empêche de l'utiliser en temps réel scénario. La surcharge avec le protocole TCP est minime.
UDP est traditionnellement utilisé pour ces sortes de scénarios, que la fiabilité n'est pas obligatoire, mais cela ne signifie pas TCP ne peut pas être utilisé presque comme performantly.
RTMP est morte protocole pour Flash. Aucun des navigateurs prennent en charge. D'autres clients prennent en charge uniquement pour des raisons d'héritage. Vous ne devriez pas l'utiliser pour quelque chose de nouveau aller de l'avant.
Bien, ce n'est pas une raison de faire beaucoup de chose.
WebRTC
Ce n'est pas la bonne question à poser. Vos frais généraux dans presque toutes les autres parties de l'application va être beaucoup plus que le transport aérien du protocole utilisé pour la distribution.
La vraie liste de choses que vous devez penser au sujet de:
Vous pouvez également trouver mon post ici utile: https://stackoverflow.com/a/37475943/362536
En bref, vérifiez vos hypothèses. Comprendre les avantages et les inconvénients. Prendre des décisions basées sur des informations réelles, pas de balayage des généralisations.
Make decisions based on real information, not sweeping generalizations.
Avec cette question, je cherchais réel des informations comme les résultats de benchmarks en comparant les deux protocoles dans les mêmes conditions. Si vous il suffit de comparer le rendement en ce qui concerne la latence etc. en chiffres absolus. Votre réponse détaillée, mais aussi, malheureusement, ne comprennent pas "vraies informations".WebRTC n'a pas à être P2P, dans un sens strict. Le serveur peut être (et est souvent) un de ces "pairs". Concernant les retransmissions TCP, bien sûr, ils peuvent prendre un certain temps, mais vous devez d'abord comprendre ce que "low latency" signifie pour vous, et ce compromis que vous êtes prêt à faire pour l'obtenir. Presque jamais est si important que vous êtes prêt à faire de gros de la qualité et de la fiabilité des sacrifices. La plupart des gens à trouver un équilibre au bout de quelques secondes de latence. Ce que j'essaie de vous transmettre, c'est que vous vous posez les mauvaises questions.
Ce qui est plus rapide: Une voiture avec une vitesse de pointe de 120MPH, ou une voiture avec une vitesse de pointe de 115 km / H? Aucun des deux, parce que vous êtes coincé dans le trafic. Doit avoir pris le train à la place. Pendant que vous êtes en se concentrant sur la comparaison de deux protocoles différents, le reste de votre situation de compte beaucoup plus. Nous n'avons même pas entrer dans les codecs et de leurs paramètres, qui vont changer les temps de latence des calculs 10x plus que votre protocole de transport est d'aller à la matière. Choisissez le protocole de transport pour sa fonctionnalité.
TCP est sans perte. Donc, il ne fait pas de sens de retransmettre les paquets perdus, parce que tant que la connexion est titulaire d', vous arent de perdre des paquets
OriginalL'auteur Brad