Robotweax SRT lässt sich über die bereits vorhandenen SRT-Schnittstellen von FFmpeg, VLC, GStreamer und OBS Studio integrieren. Entscheidend ist, jede Anwendung gegen die vorgesehenen Header und die passende Bibliothek zu bauen und anschließend zu prüfen, ob sie diese Bibliothek auch zur Laufzeit lädt.
Dieser Leitfaden führt die vier Build-Wege anhand der Dokumentation und Hilfsskripte am Quellcode-Tag Robotweax SRT v0.2.5 zusammen. Im Mittelpunkt steht Linux; Ubuntu 24.04 dient als Referenzumgebung für die Ecosystem-Rezepte. Der Tag bezeichnet den Quellstand und belegt für sich allein weder die Veröffentlichung noch die Abnahme von Release-Installern.
Die Beispiele erzeugen eingeschränkte Evaluationsprofile. Sie bieten einen Ausgangspunkt für Integrationsprüfungen, aber keine vollständigen Distributionen aller vier Anwendungen.
1. Quellen und Build-Werkzeuge vorbereiten
Die gemeinsame Grundlage bilden eine C/C++-Toolchain, Git, CMake, pkg-config, OpenSSL-3-Entwicklungsdateien und Python ab Version 3.10. Weitere Abhängigkeiten unterscheiden sich je nach Anwendung:
| Projekt | Zusätzliche Vorbereitung |
|---|---|
| FFmpeg | Der Helfer baut ein minimales Profil und deaktiviert Abhängigkeiten für x86-Assembler. |
| VLC | Autoconf, Automake, Libtool, Gettext, Autopoint, Flex, Bison sowie Entwicklungsdateien für libmpeg2 und libdvbpsi. |
| GStreamer | Meson 1.9.1, Ninja, GLib/GIO-Entwicklungsdateien, Flex und Bison. |
| OBS Studio | Die Abhängigkeiten aus dem OBS-Integrationsleitfaden, einschließlich Grafik- und Codec-Bibliotheken, Xvfb und Mesa; für das Desktop-Profil zusätzlich Qt-Abhängigkeiten. |
Die vollständigen Paketlisten stehen in den unten verlinkten Anwendungsleitfäden. Installieren Sie Meson in einer eigenen Python-Umgebung und stellen Sie sicher, dass es für die folgenden Befehle über PATH erreichbar ist.
Legen Sie ein Arbeitsverzeichnis an und checken Sie Robotweax aus:
mkdir robotweax-media-build
cd robotweax-media-build
media_workspace="$PWD"
git clone --branch v0.2.5 https://github.com/Robotweax/srt.git robotweax-srt
robotweax_source="$media_workspace/robotweax-srt"
Klonen Sie die Upstream-Repositories in getrennte, beschreibbare Verzeichnisse. Wählen Sie die exakten Revisionen dieser Profile:
| Quelle | Revision |
|---|---|
| FFmpeg | 3acec0a1af2dda0a0838689b8b8649e7deb080a0 |
| VLC 3.0.24-rc1 | 6de05adcbaf2e8b85fe86aad4169393098628119 |
| GStreamer 1.28.7 | 070125524a8422e29d3b69a372ed4f62fd343ffa |
| OBS Studio 32.2.2 | ba2f32bdf791005443988a4955e963663e16b1ed |
| Haivision SRT 1.5.7, nur als Testgegenstelle | 899348d8318eb9a3c5a5b6ec43c4a1114288773a |
Verwenden Sie je Checkout git checkout --detach <revision> und kontrollieren Sie den Stand mit git rev-parse HEAD. Die Werte /absolute/path/to/... in den folgenden Beispielen sind Platzhalter für diese Checkouts. Bleiben Sie zunächst in derselben Shell, damit die Arbeitsverzeichnis-Variablen verfügbar bleiben. Nutzen Sie frische Build-Verzeichnisse und dort, wo angegeben, getrennte Quellcode-Checkouts.
2. Die gemeinsame Robotweax-Bibliothek bauen
FFmpeg, VLC und GStreamer können eine gemeinsame, isolierte Robotweax-Installation verwenden. Aktivieren Sie dafür die optionalen srt.pc-Kompatibilitätsmetadaten:
robotweax_prefix="$media_workspace/stage/robotweax"
cmake -S "$robotweax_source" -B "$media_workspace/build-srt" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DROBOTWEAX_SRT_INSTALL_LAYOUT=namespaced \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX="$robotweax_prefix" \
-DROBOTWEAX_SRT_BUILD_BENCHMARKS=OFF \
-DROBOTWEAX_SRT_BUILD_TOOLS=OFF \
-DROBOTWEAX_SRT_INSTALL_LIBSRT_PKGCONFIG_COMPAT=ON
cmake --build "$media_workspace/build-srt" --parallel 4
cmake --install "$media_workspace/build-srt"
export PKG_CONFIG_PATH="$robotweax_prefix/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
pkg-config --variable=pcfiledir srt
pkg-config --modversion srt
pkg-config --variable=robotweax_release srt
Das Metadatenverzeichnis muss auf den isolierten Installationspfad zeigen. Die kompatible API-Version lautet 1.5.7, die Robotweax-Releasevariable 0.2.5. Diese Angaben bezeichnen unterschiedliche Versionsachsen.
Halten Sie diese Installation von jeder Haivision-SRT-Installation getrennt. Die Bibliothek mit eigenem Namensraum heißt librobotweax-srt; die Kompatibilitätsmetadaten machen sie für bestehende Build-Systeme unter dem üblichen Paketnamen srt auffindbar.
3. FFmpeg: das vorhandene SRT-Protokoll nutzen
FFmpeg bringt bereits einen SRT-Adapter mit. Für eine erste Evaluierung nutzen Sie den minimalen Build-Helfer aus dem Robotweax-Repository:
ffmpeg_source=/absolute/path/to/ffmpeg-source
"$robotweax_source/tests/ffmpeg/configure.sh" \
"$ffmpeg_source" "$robotweax_prefix"
make -C "$ffmpeg_source" -j4 ffmpeg
"$robotweax_source/tests/ffmpeg/run_smoke.sh" \
"$ffmpeg_source/ffmpeg"
Der Helfer prüft die ausgewählte srt.pc, aktiviert --enable-libsrt und setzt den Bibliothekssuchpfad für die Laufzeit. Andere FFmpeg-Komponenten werden bewusst deaktiviert. Ein umfangreicherer Anwendungsbuild kann die benötigten Codecs, Filter und Formate gesondert aktivieren.
Prüfen Sie, ob ffmpeg -protocols SRT als Eingangs- und Ausgangsprotokoll aufführt. Untersuchen Sie das gebaute Programm unter Linux mit ldd und kontrollieren Sie, ob die SRT-Abhängigkeit auf die vorgesehene Robotweax-Installation aufgelöst wird. Der Smoke-Test prüft unverschlüsselte und AES-128-CTR-verschlüsselte MPEG-TS-Übertragung einschließlich eines Vergleichs der Elementarstreams.
Verwenden Sie weiterhin srt://-URLs. Ein Robotweax-spezifisches URL-Schema ist nicht erforderlich.
Vollständige Anleitung: FFmpeg-Integration.
4. VLC: vorhandene Eingangs- und Ausgangsmodule bauen
Verwenden Sie einen eigenen VLC-Checkout mit der oben genannten Revision. Der Helfer verändert diesen Checkout im Rahmen der dokumentierten Kompatibilitätsvorbereitung.
vlc_source=/absolute/path/to/vlc-source
vlc_build="$media_workspace/build-vlc"
vlc_prefix="$media_workspace/stage/vlc"
"$robotweax_source/tests/vlc/configure.sh" \
"$vlc_source" "$vlc_build" "$robotweax_prefix" "$vlc_prefix"
make -C "$vlc_build" -j4
make -C "$vlc_build" install
In dieser VLC-Revision kollidiert eine veraltete eingangsseitige Registrierung von payload-size mit der aktiven Ausgangsoption. Der Helfer entfernt die veraltete Registrierung nach einer Prüfung des Quellcode-Hashes. Diese Anpassung gehört zum geprüften Build und sollte beim Wechsel der Quellrevision nicht umgangen werden.
Das entstehende Profil aktiviert die SRT-Module, MPEG-TS-Demuxing/-Muxing und MPEG-2-Videodekodierung. Es arbeitet ohne grafische Oberfläche: GUI, Audioqualifikation und FFmpeg-basierte VLC-Codecs gehören nicht zu diesem Profil. Letztere bleiben auch deshalb deaktiviert, damit nicht indirekt eine zweite SRT-Implementierung über FFmpeg geladen wird.
Nutzen Sie die vollständige Prüfprozedur im Leitfaden, um dekodiertes Video, ausgehende Medien und die von den tatsächlichen VLC-Modulen gewählte Bibliothek zu kontrollieren. Die Verbindung einer normalen VLC-Installation mit einer Robotweax-Gegenstelle ist ein Interoperabilitätstest; sie belegt nicht, dass VLC intern Robotweax verwendet.
Vollständige Anleitung: VLC-Integration.
5. GStreamer: Plugin neu bauen und Registry trennen
GStreamer verwendet sein vorhandenes, unverändertes SRT-Plugin. Sobald Meson 1.9.1 über PATH erreichbar und der festgelegte Quellstand ausgecheckt ist:
gst_source=/absolute/path/to/gstreamer-source
gst_build="$media_workspace/build-gstreamer"
gst_prefix="$media_workspace/stage/gstreamer"
"$robotweax_source/tests/gstreamer/configure.sh" \
"$gst_source" "$gst_build" "$robotweax_prefix" "$gst_prefix"
meson compile -C "$gst_build" -j 4
meson install -C "$gst_build" --no-rebuild
Wählen Sie die installierten Plugins ausdrücklich aus und verwenden Sie eine eigene Registry:
export GST_PLUGIN_SYSTEM_PATH_1_0=""
export GST_PLUGIN_PATH_1_0="$gst_prefix/lib/gstreamer-1.0"
export GST_PLUGIN_SCANNER_1_0="$gst_prefix/libexec/gstreamer-1.0/gst-plugin-scanner"
export GST_REGISTRY_1_0="$gst_prefix/robotweax-registry.bin"
"$gst_prefix/bin/gst-inspect-1.0" srtsrc
"$gst_prefix/bin/gst-inspect-1.0" srtsink
Kontrollieren Sie die ausgegebenen Plugin-Dateinamen und untersuchen Sie die gewählte libgstsrt.so mit ldd. So unterscheiden Sie das neu gebaute Plugin von einer Systeminstallation. Der Helfer konfiguriert neben der Paketauswahl beim Build auch die Laufzeitpfade; PKG_CONFIG_PATH allein steuert das Laden zur Laufzeit nicht.
Die Installation ist minimal. Ergänzen Sie die Encoder, Muxer, Parser oder Geräte-Plugins, die Ihre Pipeline benötigt. Prüfen Sie beim Übertragen eines FFmpeg-Beispiels außerdem Optionsnamen und Einheiten: GStreamer verwendet für latency Millisekunden, die SRT-URL-Option von FFmpeg dagegen Mikrosekunden.
Vollständige Anleitung und Medientests: GStreamer-Integration.
6. OBS Studio: beide SRT-Wege gemeinsam bauen
Bei OBS ist besondere Sorgfalt nötig: Die native SRT-Ausgabe ruft die SRT-API direkt auf, während die Medienquelle über FFmpeg empfängt. Beide Wege müssen im selben Prozess dieselbe Robotweax-Bibliothek auswählen. Der minimale FFmpeg-Build von oben reicht für OBS nicht aus.
Öffnen Sie für diesen Abschnitt eine neue Shell und setzen Sie die Arbeitsverzeichnis-Variablen erneut. Damit vermeiden Sie auch, die GStreamer-Plugin-Vorgaben aus dem vorherigen Abschnitt zu übernehmen:
media_workspace=/absolute/path/to/robotweax-media-build
robotweax_source="$media_workspace/robotweax-srt"
Installieren Sie die Abhängigkeiten aus dem OBS-Leitfaden. Bereiten Sie saubere, eigene Checkouts von OBS, GStreamer, FFmpeg und Haivision SRT mit den Revisionen aus der Tabelle vor. Starten Sie im Robotweax-Repository:
cd "$robotweax_source"
JOBS=4 tests/obs/build_and_test.sh \
/absolute/path/to/obs-source \
/absolute/path/to/gstreamer-obs-source \
/absolute/path/to/ffmpeg-obs-source \
/absolute/path/to/haivision-srt-source \
"$media_workspace/obs-qualification"
Diese Prozedur baut eine eigene isolierte Robotweax-Installation, ein OBS-spezifisches FFmpeg-Profil mit Shared Libraries, die OBS-Module und eine getrennt installierte Referenzgegenstelle. Sie prüft tatsächlich übertragenes Video und Audio einschließlich verschlüsselten Betriebs und kontrolliert die ausgewählte Bibliothek über beide Medienwege.
Für die Qt-Desktop-Oberfläche installieren Sie die zusätzlichen Desktop-Abhängigkeiten und bereiten einen zweiten sauberen OBS-Checkout derselben festgelegten Revision vor:
JOBS=4 tests/obs/build_desktop.sh \
/absolute/path/to/clean-obs-desktop-source \
"$media_workspace/obs-qualification/robotweax-srt" \
"$media_workspace/obs-qualification/ffmpeg" \
"$media_workspace/obs-desktop"
Das letzte Arbeitsverzeichnis darf noch nicht existieren. Die Oberfläche wird unter obs-desktop/obs installiert. Lassen Sie die Abhängigkeiten an ihren Installationsorten, da die Laufzeitpfade absolut sind.
Dieses Desktop-Rezept wählt einen begrenzten Plugin-Umfang und wendet eine geprüfte MPEG-TS-Lebenszykluskorrektur für die festgelegte OBS-Version an. Prüfen Sie die entstandene Anwendung mit den Smoke-Tests und der interaktiven Abnahmeprozedur des Desktop-Leitfadens. Ein erfolgreicher Compilerlauf allein ist noch kein Medientest.
Lesen Sie den OBS-Integrationsleitfaden und die Linux-Desktop-Anleitung. Separate Desktop-Rezepte behandeln Windows x64 und macOS auf Apple Silicon; dort gelten andere Abhängigkeiten und Build-Schritte.
Vom erfolgreichen Build zum eigenen Workflow
Prüfen Sie bei allen vier Projekten drei Dinge: die ausgewählten Header und Metadaten beim Build, die geladene Bibliothek zur Laufzeit und die Medienübertragung in den vorgesehenen Anwendungsrollen. Bauen Sie gegen zusammengehörige Header und Bibliotheken neu, statt eine Abhängigkeit unter einem bestehenden Programm auszutauschen.
Die dokumentierten Profile haben konkrete Plattform-, Codec- und Transportgrenzen. Sie qualifizieren nicht automatisch Hardware-Capture, Hardware-Encoding, beliebige Netzwerke oder Langzeitbetrieb. Robotweax SRT befindet sich weiterhin vor Version 1.0; die Lizenzen der Drittanbieter-Anwendungen und ihrer Abhängigkeiten gelten unverändert weiter.
Wählen Sie anhand der Ecosystem-Supportmatrix ein Ausgangsprofil und erweitern Sie die Prüfungen anschließend um Ihren eigenen Workflow.
