web-dev-qa-db-fra.com

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

Je pense à développer un serveur de streaming et la question suivante est de faire sur RTSP (exemple url: rtsp://192.168.0.184/myvideo.mpg) ou RTP (exemple: url: rtp://192.168.0.184).

Comme je l'ai compris, un serveur RTSP est principalement utilisé pour la diffusion en continu de fichiers existants, c'est-à-dire non en direct. RTP serveur est utilisé pour diffuser.

Quelqu'un me corrige si je me trompe, est-ce que 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é à l'heure qui est diffusée en streaming.

53
Lobo

Vous vous trompez ... RTSP est un protocole de diffusion en temps réel. Cela signifie que vous pouvez diffuser tout ce que vous voulez en temps réel. Vous pouvez donc l'utiliser pour diffuser du contenu en direct (peu importe la nature, vidéo, audio, texte, présentation, etc.). RTP est un protocole de transport utilisé pour transporter des données multimédias négociées via RTSP.

Vous utilisez RTSP pour contrôler la transmission multimédia sur RTP. Vous l'utilisez pour configurer, jouer, mettre en pause, supprimer le flux ...

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

Lisez les documents que j'ai liés ici, ils constituent un bon point de départ.

89
Cipi

Autant que je sache, RTSP ne transmet pas de flux du tout, il s’agit simplement d’un protocole de contrôle hors bande avec des fonctions telles que PLAY et STOP.

UDP brut ou RTP sur UDP sont des protocoles de transmission de flux similaires à raw TCP ou HTTP sur TCP.

Pour pouvoir diffuser un certain programme sur le protocole de transmission indiqué, vous devez définir méthode d'encapsulation pour votre format de conteneur. Par exemple, le conteneur TS peut être transmis via UDP mais pas Matroska.

Pratiquement tout peut être transporté à travers TCP cependant.

(Le fait que codec utilisez-vous a également une importance indirecte car il limite les formats de conteneur que vous pouvez utiliser.)

15
vbence

Quelques bases:

Le serveur RTSP peut être utilisé aussi bien pour une source morte que pour une source réelle. Les protocoles RTSP vous fournissent des commandes (comme votre magnétoscope distant), et les fonctionnalités dépendent de votre mise en œuvre.

RTP est un protocole en temps réel utilisé pour transporter de l'audio et de la 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 du transport RTP fait beaucoup de choses pour vous comme la mise en paquets, la réorganisation, le contrôle de la gigue, la qualité de service, la prise en charge de la synchronisation labiale .....

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

Pour commencer, vous pouvez consulter un exemple de code fourni par live555

11
Alam

J'entends ta douleur. Je traverse cela maintenant (des années plus tard). D'après ce que j'ai appris, vous pouvez considérer RTSP comme un "contrôleur de magnétoscope". Le protocole vous permet de spécifier les flux (présentations) que vous souhaitez lire. Il vous enverra ensuite une description du support, puis vous pourrez utilisez RTSP pour lire, arrêter, mettre en pause et enregistrer le flux distant. Le média lui-même passe par RTP. RTSP est normalement implémenté sur un socket ou une couche de communication différente. Bien qu'il s'agisse simplement d'un protocole, il est le plus souvent implémenté par un serveur via un socket. Pour les flux en direct, le flux RTSP que vous demandez est simplement le nom d’un flux. Il n'est pas nécessaire de faire référence à un fichier sur le serveur. L'implémentation RTSP du serveur peut analyser ce flux, créer un graphe en direct, puis fournir le SDP (description) de 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 "en direct", il est probablement plus simple d'utiliser simplement RTP, mais vous aurez besoin d'un moyen de transférer le SDP du serveur RTP) au client qui souhaite lire ce flux.

5
eric frazer

Je pense que c'est correct. RTSP peut utiliser RTP en interne.

4
JP19