Mit ffmpeg sendest du eine Datei, ein Testbild oder jede andere Quelle, die ffmpeg lesen kann, per SRT an einen Eingang deines Studios. Du brauchst dafür ein ffmpeg, das mit libsrt gebaut wurde, und die Adresse des Eingangs aus dem Tab „Eingänge“.

Die Befehlszeile unten ist die Form, mit der wir selbst testen. Du setzt nur Host, Port und Stream-ID ein.

Vorbereitung

  1. Prüfe, ob dein ffmpeg SRT kann: ffmpeg -protocols muss in der Liste srt nennen. Ein Eintrag srtp ist etwas anderes und reicht nicht. Fehlt srt, brauchst du ein ffmpeg mit libsrt. Wo du eines bekommst, steht auf ffmpeg.org.
  2. Öffne dein Studio und sieh auf dem Tab „Eingänge“ nach der Adresse des Eingangs. Sie hat die Form srt://<host>:<port>?streamid=<id>.
  3. Übernimm Host, Port und Stream-ID in die Befehlszeile. Die übrigen Parameter hinter dem Fragezeichen bleiben, wie sie unten stehen.

Eine Datei senden

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -tune zerolatency -pix_fmt yuv420p -b:v 6M -maxrate 6M -bufsize 6M -g 120 -bf 0 -c:a aac -b:a 128k -ar 48000 -ac 2 -f mpegts "srt://<host>:<port>?mode=caller&transtype=live&latency=200000&pkt_size=1316&streamid=<id>"

Die Anführungszeichen um die Adresse sind nötig, weil die Shell das & sonst selbst auswertet.

Was die einzelnen Teile bedeuten

Teil Bedeutung
-re Liest die Quelle in Echtzeit. Ohne diese Angabe schickt ffmpeg die Datei so schnell, wie es rechnen kann, und das Studio bekommt kein brauchbares Live-Signal.
-i input.mp4 Die Datei, die gesendet wird.
-c:v libx264 Das Bild wird als H.264 kodiert. H.265 nimmt das Studio als Eingang nicht an.
-preset veryfast -tune zerolatency Schnelles Kodieren ohne zusätzliche Verzögerung im Encoder.
-pix_fmt yuv420p Das übliche Farbformat für Livestreams.
-b:v 6M -maxrate 6M -bufsize 6M 6 Mbit/s für das Bild, nach oben begrenzt. Das hält die Bitrate gleichmäßig.
-g 120 Ein Keyframe alle 120 Bilder. Bei 60 Bildern pro Sekunde sind das 2 Sekunden.
-bf 0 Keine B-Frames.
-c:a aac -b:a 128k -ar 48000 -ac 2 Ton als AAC, 128 kbit/s, 48 kHz, Stereo.
-f mpegts Verpackt Bild und Ton als MPEG-TS, das Format, in dem SRT-Quellen senden.

Und die Parameter in der SRT-Adresse:

Parameter Bedeutung
mode=caller ffmpeg baut die Verbindung auf, dein Studio nimmt sie an.
transtype=live SRT im Live-Modus.
latency=200000 Die SRT-Latenz. ffmpeg erwartet sie in Mikrosekunden: 200000 sind 200 ms.
pkt_size=1316 Die Paketgröße, die zu MPEG-TS passt.
streamid=<id> Die Stream-ID deines Eingangs. An ihr erkennt das Studio, zu welchem Eingang das Signal gehört.

Eine Passphrase gibt es nicht. Hänge keinen passphrase-Parameter an.

Ein Testbild senden

Wenn du keine Datei zur Hand hast oder nur die Strecke prüfen willst, erzeugt ffmpeg Bild und Ton selbst: ein bewegtes Testbild in 1080p mit 60 Bildern pro Sekunde und einen Ton von 1 kHz.

ffmpeg -re -f lavfi -i testsrc2=size=1920x1080:rate=60 -re -f lavfi -i sine=frequency=1000:sample_rate=48000 -c:v libx264 -preset veryfast -tune zerolatency -pix_fmt yuv420p -b:v 6M -maxrate 6M -bufsize 6M -g 120 -bf 0 -c:a aac -b:a 128k -ar 48000 -ac 2 -f mpegts "srt://<host>:<port>?mode=caller&transtype=live&latency=200000&pkt_size=1316&streamid=<id>"

Der Befehl läuft, bis du ihn mit Strg+C beendest. Das Testbild taucht in der Regie als Szene dieses Eingangs auf, der Ton am Pegel des Eingangs.

Anpassen

  • Andere Bildrate: Der Keyframe-Abstand soll 2 Sekunden bleiben. Bei 30 Bildern pro Sekunde schreibst du -g 60, bei 50 Bildern -g 100.
  • Schwächere Leitung: Senke die Bitrate, zum Beispiel -b:v 4M -maxrate 4M -bufsize 4M. Richtwerte stehen in Die richtigen Encoder-Einstellungen.
  • Mehr Latenz: Auf einer unruhigen Verbindung erhöhst du latency, etwa auf 1000000 für eine Sekunde. Welche Werte sinnvoll sind, erklärt SRT-Latenz einstellen.

Wenn nichts ankommt

  • Meldet ffmpeg, dass es das Protokoll nicht kennt, fehlt libsrt in deinem ffmpeg.
  • Bricht die Verbindung sofort ab, vergleiche Host, Port und Stream-ID noch einmal mit dem Tab „Eingänge“.
  • Läuft ffmpeg scheinbar normal und im Studio erscheint trotzdem kein Bild, hilft Kein Bild im Studio weiter. In vielen Hotel- und Firmennetzen ist UDP gesperrt, und SRT braucht UDP.