Quelle est la différence entre RTP ou RTSP dans un serveur de streaming?

je pense à développer un serveur de streaming et j'ai la question suivante, faire passer RTSP (exemple url:rtsp://192.168.0.184/myvideo.mpg) ou RTP (exemple d'url: ).

comme j'ai compris, un RTSP le serveur est principalement utilisé pour la diffusion en continu de fichiers qui existent déjà, c'est-à-dire pas en direct. RTP le serveur est utilisé pour la diffusion.

Quelqu'un me corrige si j'ai tort, j'ai raison?.

ce que je veux développer un serveur pour diffuser du contenu en direct sur l'écran de l'ordinateur, c'est-à-dire, qui est affiché au moment de la diffusion en continu.

44

6 réponses

Vous obtenez quelque chose de mal... RTSP est un protocole de streaming en temps réel. Ce qui signifie que vous pouvez diffuser ce que vous voulez en temps réel. Ainsi, vous pouvez l'utiliser pour diffuser du contenu en direct (peu importe ce qu'il est, Vidéo, audio, texte, présentation...). RTP est un protocole de transport qui est utilisé pour transporter des données de médias qui est négocié sur RTSP.

vous utilisez RTSP pour contrôler la transmission des médias sur RTP. Vous l'utilisez pour configurer, jouer, mettre en pause, flux...

donc, si vous voulez que votre serveur commence juste à diffuser lorsque L'URL est demandée, vous pouvez implémenter une sorte de serveur uniquement RTP. Mais si vous voulez plus de contrôle et si vous diffusez de la vidéo en direct, vous devez utiliser RTSP, car il transmet SDP et d'autres données de décodage importantes.

lire les documents auxquels j'ai fait référence ici, ils constituent un bon point de départ.

78
répondu Cipi 2015-12-22 15:49:04

AFAIK, RTSP ne transmet pas du tout de flux, c'est juste un protocole de contrôle hors bande avec des fonctions comme PLAY and STOP.

UDP brut ou RTP sur UDP sont des protocoles de transmission pour des flux comme TCP brut ou HTTP sur TCP.

pour pouvoir diffuser un certain programme sur le protocole de transmission donné, un méthode d'encapsulation doit être défini pour votre format du conteneur. Par exemple, un conteneur TS peut être transmis par UDP mais Matroska ne peut pas.

à peu près tout peut être transporté par TCP.

(Le fait que codec utilisez-vous aussi indirectement les formats de conteneur que vous pouvez utiliser?)

14
répondu vbence 2015-12-22 16:37:01

quelques notions de base:

le serveur RTSP peut être utilisé pour les sources mortes aussi bien que pour les sources en direct. Les protocoles RTSP vous fournissent des commandes (comme votre télécommande VCR), et la fonctionnalité dépend de votre implémentation.

RTP est un protocole temps réel utilisé pour le transport audio et vidéo en temps réel. Le Transport utilisé peut être unicast, multicast ou broadcast, en fonction de l'adresse de transport et du port. En plus de transporter RTP fait beaucoup de choses pour vous comme packetization, reordering, jitter control, QoS, support pour la synchronisation labiale.....

dans votre cas, si vous voulez un serveur de diffusion en continu, alors vous avez besoin à la fois de RTSP (pour le contrôle) et de RTP (diffusion audio et vidéo)

pour commencer, vous pouvez passer en revue un exemple de code fourni par live555

9
répondu Alam 2017-04-23 22:10:03

je pense que c'est correct. Le RTSP peut utiliser le RTP en interne.

4
répondu 2010-11-29 11:58:17

j'entends ta douleur. Je traverse ça maintenant (des années plus tard). D'après ce que j'ai appris, vous pouvez penser à RTSP comme un "contrôleur VCR", le protocole vous permet de spécifier les flux (présentations) que vous voulez jouer, il vous enverra alors une description du média, et vous pourrez ensuite utiliser RTSP pour lire, arrêter, mettre en pause et enregistrer le flux distant. Les médias eux-mêmes passent en revue le RTP. La RTSP est normalement implémentée sur une autre socket ou couche de communication. Bien qu'il est tout simplement un protocole, le plus souvent, il est implémenté par un serveur sur une socket. Pour les flux en direct, le flux RTSP que vous demandez est simplement le nom d'un flux. Il n'a pas besoin de faire référence à un fichier sur le serveur, l'implémentation RTSP du serveur peut analyser ce flux, mettre en place un graphique en direct, puis fournir le SDP (description) pour ce nom de flux. Mais ceci est bien sûr spécifique à la manière dont le serveur RTSP a été implémenté. Pour les flux" live", il est probablement plus simple d'utiliser RTP, mais vous aurez besoin d'un moyen de transférer le SDP du serveur RTP vers le client qui veut lire ce flux.

1
répondu eric frazer 2015-09-03 05:40:09

RTSP (en fait RTP) peut être utilisé pour le streaming vidéo, mais aussi de nombreux autres types de médias, y compris les présentations en direct. Rtsp est juste le protocole utilisé pour configurer la session RTP.

pour tous les détails, vous pouvez consulter l'implémentation de mon serveur RTSP open source à l'adresse suivante:https://net7mma.codeplex.com/

Ou mon article @ http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

il prend en charge le ré-sourcing de flux ainsi que la création dynamique de flux, divers RFC sont mis en œuvre et la bibliothèque obtient de meilleures performances et moins de mémoire que FFMPEG et à peu près toutes les autres solutions dans la couche de transport et donc un bon candidat à utiliser comme point d'accès centralisé pour la plupart des scénarios.

-1
répondu Jay 2016-03-11 18:02:11