9 votes

Diffusion en continu RTSP avec ffmpeg ?

Donc j'ai réussi à envoyer un flux vidéo RTP depuis mon serveur vers le client sur un autre système sur le LAN et à le lire en utilisant ffplay. Je veux maintenant envoyer la vidéo sur le même réseau en utilisant RTSP afin que le client puisse recevoir la vidéo et puisse avoir des options supplémentaires comme mettre en pause la vidéo, etc. Est-ce que quelqu'un pourrait me donner des directives générales ou me diriger vers une ressource qui pourrait m'aider à accomplir ma tâche?

MISE À JOUR :

J'ai essayé ces commandes :

ffmpeg -re -i input -f rtsp -rtsp_transport tcp rtsp://localhost:8888/live.sdp

ffplay -rtsp_flags listen rtsp://localhost:8888/live.sdp

Le flux vidéo commence en temps réel mais je ne vois pas réellement d'options pour contrôler le flux multimédia comme la lecture, l'enregistrement, etc...

NB : Le fichier .sdp que j'utilise actuellement pour le RTSP est le même que celui que j'ai utilisé pour le streaming RTP.

1 votes

Qu'avez-vous déjà essayé? Avez-vous lu trac.ffmpeg.org/wiki/StreamingGuide#Pointtopointstreaming?

9voto

Rob van der Leek Points 181

Pour ce que ça vaut, j'ai pu configurer un serveur RTSP local à des fins de test en utilisant simple-rtsp-server et ffmpeg en suivant ces étapes :

  1. Créez un fichier de configuration pour le serveur RTSP appelé rtsp-simple-server.yml avec cette seule ligne :

    protocols: [tcp]
  2. Démarrez le serveur RTSP en tant que conteneur Docker :

    $ docker run --rm -it -v $PWD/rtsp-simple-server.yml:/rtsp-simple-server.yml -p 8554:8554 aler9/rtsp-simple-server
  3. Utilisez ffmpeg pour diffuser en continu un fichier vidéo (en boucle) vers le serveur :

    $ ffmpeg -re -stream_loop -1 -i test.mp4 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live.stream

Une fois que c'est en place, vous pouvez utiliser ffplay pour voir le flux :

$ ffplay -rtsp_transport tcp rtsp://localhost:8554/live.stream

Notez que simple-rtsp-server peut également gérer des flux UDP (au lieu de TCP) mais c'est un peu compliqué de faire tourner le serveur en tant que conteneur Docker.

2 votes

Heures de recherche sur Google. HEURES. rtsp-simple-server a été la première chose qui a réellement fonctionné pour diffuser ma iSight via ffmpeg sans erreurs, ça a juste marché. Merci!

0 votes

À cette date, le simple-serveur en cours d'exécution sur docker n'accepte pas les points dans le nom du chemin. Il n'accepte pas "live.stream" seulement "livestream"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X