VizionStreamer Control Scripts
Diese Scripts ermöglichen die schnelle Steuerung von VizionStreamer über die Unix Domain Socket API.
Voraussetzung
VizionStreamer muss laufen:
cd /home/maik/CLionProjects/vizionStreamer
./build/vizionStreamer
Schnellstart (Standard-Pipeline)
Die Standard-Pipeline videoconvert ! autovideosink ist bereits gesetzt. Einfach starten:
./scripts/start_stream.sh
Das Video wird lokal angezeigt. Zum Stoppen:
./scripts/stop_stream.sh
Pipeline ändern
Lokale Anzeige (Standard)
./scripts/set_pipeline_display.sh
./scripts/start_stream.sh
UDP-Streaming (H.264)
# Standard: 192.168.1.100:5000
./scripts/set_pipeline_udp.sh
# Eigene IP/Port
./scripts/set_pipeline_udp.sh 192.168.1.50 5001
# Dann starten
./scripts/start_stream.sh
Stream empfangen:
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
Aufnahme in Datei
# Standard: /tmp/vizion_recording.mp4
./scripts/set_pipeline_file.sh
# Eigene Datei
./scripts/set_pipeline_file.sh /home/user/videos/recording.mp4
# Dann starten
./scripts/start_stream.sh
MJPEG HTTP-Stream
# Standard: Port 8080
./scripts/set_pipeline_mjpeg.sh
# Eigener Port
./scripts/set_pipeline_mjpeg.sh 8090
# Dann starten
./scripts/start_stream.sh
Stream ansehen:
# Im Browser
firefox http://localhost:8080
# Mit FFplay
ffplay http://localhost:8080
Status & Information
Status abfragen
./scripts/get_status.sh
Zeigt:
- Streaming-Status (läuft/gestoppt)
- Aktuelle Pipeline
Verfügbare Formate
./scripts/get_formats.sh
Zeigt alle verfügbaren Kamera-Auflösungen und Formate.
Typischer Workflow
# 1. VizionStreamer starten (Terminal 1)
./build/vizionStreamer
# 2. Status prüfen (Terminal 2)
./scripts/get_status.sh
# 3. Pipeline für UDP-Streaming setzen
./scripts/set_pipeline_udp.sh 192.168.1.100 5000
# 4. Streaming starten
./scripts/start_stream.sh
# 5. Stream empfangen (auf Zielrechner)
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
# 6. Bei Bedarf stoppen
./scripts/stop_stream.sh
# 7. Pipeline ändern
./scripts/set_pipeline_display.sh
# 8. Erneut starten
./scripts/start_stream.sh
Wichtige Hinweise
- Pipeline kann nur geändert werden, wenn Streaming gestoppt ist
- Standard-Pipeline ist bereits gesetzt - kein
set_pipelinevor dem ersten Start nötig - Mit
start_stream.shsofort loslegen! - Alle Scripts benötigen
socat(installieren mit:sudo apt install socat) - Status-Scripts benötigen optional
python3für formatierte JSON-Ausgabe
Eigene Pipelines
Sie können jede beliebige GStreamer-Pipeline verwenden:
SOCKET="/tmp/vizion_control.sock"
echo '{"command":"set_pipeline","params":{"pipeline":"IHRE_PIPELINE"}}' | socat - UNIX-CONNECT:$SOCKET
Beispiele:
videoconvert ! xvimagesink- Einfache lokale Anzeigevideoconvert ! x264enc ! flvmux ! rtmpsink location=rtmp://server/live/stream- RTMP-Streamingtee name=t ! queue ! videoconvert ! autovideosink t. ! queue ! x264enc ! filesink location=out.mp4- Gleichzeitig anzeigen und aufnehmen