Praktikum Videostreaming/RTSP
Fragen
- Beantworten Sie im Vorfeld die Fragen aus der Vorlesung.
HTTP-Streaming
- Welche Arten von HTTP-Streaming kennen Sie?
- Diskutieren Sie Vorteile-/Nachteile von HTTP-Streaming?
- Testen Sie HTML5- und Dash-Streaming mittels u.g. Links.
RTSP-Streaming / Kommunikation mit dem Server
- Lesen Sie vorab für RTSP den Abschnitt 14.2 und 14.3 Single Stream Container Files aus RFC 2326
- Steuern Sie einen RTSP-Server manuell über die Konsole.
-
Dazu sind der Reihe nach die Methoden: OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, TEARDOWN für eine bestimmte Präsentation aufzurufen.
- RTSP-Server zum Testen der Streaming-Kommunikation
- rtsp://idefix.informatik.htw-dresden.de:8554/maulwurf.webm (live555MediaServer)
- rtsp://idefix.informatik.htw-dresden.de:8555/maulwurf (mediamtx mit VoD)
- rtsp://idefix.informatik.htw-dresden.de:8555/cam (mediamtx mit Webcam)
- Verbinden Sie sich nacheinander mit den o.g. Servern mittels Telnet auf den o.g. Port. (von außerhalb nutzen Sie das VPN)
- Nutzen Sie die RTSP-Methoden OPTIONS und DESCRIBE um Informationen über den Server und die angebotenen Mediastreams zu erhalten.
- Benötigen Sie eine vollständige URL oder genügt der Pfadname?
- Welche Streams werden jeweils angeboten und welche Codecs werden jeweils genutzt?
- Konfigurieren Sie einen Stream per SETUP-Methode (hierfür benötigen Sie das Transport-Attribut)
- Versuchen Sie das Abspielen eines Streams auszulösen (der Stream kann natürlich nicht wirklich angezeigt werden aber man sieht ob die RTSP-Kommunikation funktioniert )
Beispielhaft wird hier der Request des Clients und der Response des Servers angezeigt:
OPTIONS * RTSP/1.0
CSeq: 1
RTSP/1.0 200 OK
CSeq: 1
Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER
Falls Sie unter Linux arbeiten kann mit dem Programm openRTSP aus dem Paket livemedia-utils der Vorgang alternativ veranschaulicht werden.
Das Programm verbindet sich mit einem RTSP-Server und lädt alle Streams einer Präsentation zum Client.
Programmierung mittels Java
Erstellen Sie mittels Java ein kleines Testprogramm, welches eine TCP-Verbindung zum RTSP-Server aufbaut und den RTSP-Befehl OPTIONS absendet. Die Antwort soll auf der Konsole angezeigt werden.
Programme
RTSP-Streaming
- ffmpeg: Tools für Konvertierung und Audio-/Video-Streaming
- ffplay: Anzeige eines RTSP-Audio-/Videostreams ( -fflags nobuffer -flags low_delay -framedrop )
- mpv: Videoplayer für viele BS
- openRTSP: Speicherung eines RTSP-Audio-/Videostreams
- mediamtx: Mediaserver für diverse Protokolle (z.B. RTSP) und Codecs
- live555MediaServer: RTSP-Referenzserver für Protokoll-Tests (RTSP. RTP, RTCP), konfigurationsfreie Dateinutzung: ts, 264, 265, mpv, mkv, webm etc.
- vlc: Mediaplayer
HTTP-Streaming
- DASH: Referenzimplementierung
- videojs: Client für MPEG-DASH
- Shaka Player: Google-Player für DASH und HLS
- Browser-Support
- FFMPEG-Builder
- Minimaler Webserver:
python3 -m http.server 9000