RTSP mit ffmpeg streamen?

RTSP mit ffmpeg streamen?

Ich konnte also erfolgreich einen RTP-Videostream von meinem Server an den Client auf einem anderen System im LAN senden und ihn mit ffplay abspielen. Jetzt möchte ich das Video mit RTSP im selben Netzwerk senden, damit der Client das Video empfangen und zusätzliche Optionen wie das Anhalten des Videos usw. haben kann. Kann mir jemand eine allgemeine Anleitung geben oder mich auf eine Ressource verweisen, die mir bei der Erledigung meiner Aufgabe helfen kann?

AKTUALISIEREN:

Ich habe diese Befehle ausprobiert:

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

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

Es startet zwar das Streaming des Videos in Echtzeit, aber ich sehe keine Optionen zur Steuerung des Medienstreams wie Wiedergabe, Aufnahme usw.!

NB: Die .sdp-Datei, die ich derzeit für RTSP verwende, ist dieselbe, die ich für RTP-Streaming verwendet habe.

Antwort1

FWIW, ich konnte einen lokalen RTSP-Server für Testzwecke einrichten miteinfacher-RTSP-Serverund ffmpeg, indem Sie diese Schritte befolgen:

  1. Erstellen Sie eine Konfigurationsdatei für den RTSP-Server rtsp-simple-server.ymlmit dem Namen dieser einzelnen Zeile:
    protocols: [tcp]
    
  2. Starten Sie den RTSP-Server als Docker-Container:
    $ docker run --rm -it -v $PWD/rtsp-simple-server.yml:/rtsp-simple-server.yml -p 8554:8554 aler9/rtsp-simple-server
    
  3. Verwenden Sie ffmpeg, um eine Videodatei (in Endlosschleife) auf den Server zu streamen:
    $ ffmpeg -re -stream_loop -1 -i test.mp4 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/live.stream
    

Sobald dies ausgeführt wird, können Sie ffplay verwenden, um den Stream anzuzeigen:

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

Beachten Sie, dasseinfacher-RTSP-Serverkann auch UDP-Streams (iso TCP) verarbeiten, aber das Ausführen des Servers als Docker-Container ist schwierig.

verwandte Informationen