29
Der SmartPump-Server Ein tolles Stück Technik

Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Embed Size (px)

Citation preview

Page 1: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump-Server

Ein tolles Stück Technik

Page 2: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 2

Architektur

Kontrollkommunikation

RTP-Videostrom

Client

ServerRTSP

Pipeline

Daten

Page 3: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 3

Wiederholung RTSP

RTSP = Real Time Streaming ProtocolRTSP = Real Time Streaming Protocol

„„Fernbedienung“ für MediaserverFernbedienung“ für Mediaserver

Protokoll auf AnwendungsebeneProtokoll auf Anwendungsebene

Reicht Funktionen an untere Reicht Funktionen an untere Schichten weiterSchichten weiter

Page 4: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 4

Wiederholung RTSP (2)

Client-Server basiert

Ähnlich wie HTTPÄhnlich wie HTTPHTTP: Text und BilderRTSP: Streaming Audio und Video

Wichtigste Funktionen:Wichtigste Funktionen:describedescribesetupsetupplayplayteardownteardown

Page 5: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 5

Initialisierung

Start in „RtspPump.cc“

Erzeugen von HauptkomponentenContentDataBaseThreadListenerSchedulerRTCPServerRecordPreferencesSessionPreferencesIdentifier (RTCP, RTSP)

Page 6: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 6

Start - RTSP Server

RtspServer

RtspServerThread

RtspHandlerThread ...RtspHandlerThread RtspHandlerThread

Page 7: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 7

RtspServerThread

Methode ‚init‘richtet Socket ein

Methode ‚run‘wartet am Socket (select-Methode)erzeugt RtspHandlerThread für Clientanfragen

Terminierungüberprüft seinen Zustand

weiter bei ‚STATE_RUNNING‘Ende bei ‚STATE_TERMINATE‘

Page 8: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 8

RtspHandlerThread

kümmert sich um Anfragen der Clients 2 Arten von Nachrichten (tp_message)

request - Anfragen des Clients response - Antwort des Servers

request wird vom Parser übersetzt type der Nachricht wird überprüft

DESCRIBE, SETUP, PLAY, ...

entsprechende Methode wird aufgerufen Resourcen freigeben, beenden

Page 9: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 9

Methoden: setup

Test, ob Nachricht Session ID hat ja Ende (Fehlernachricht an Client)

checkTransport := Transporteigenschaften (TCP, UDP, ...)

abspeichern in tp_transport

Mode der Nachricht prüfenentsprechendes Setup aufrufen

(setup_live, setup_play, setup_record)

Page 10: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 10

setup_play

SessionPreferences werden eingelesen Wahl des Transportprotokolls

RTP (wahlweise mit RTCP)plain TCP

Erzeugen Datasource Erzeugen eines SystemStreams Erzeugen des DataPaths SessionID erzeugen Transporteigenschaften (Multicast, ...)

Page 11: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 11

Methoden: play

Setzen von StartTime und StopTime

Erzeugen des RTP-Headers

verpacken in Response-Message

Starten des Streams (StreamControl)

Page 12: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 12

Methoden: describe

Liefert Daten über SessionBitrate

Sendet Daten über ‚session description protocol‘

Page 13: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 13

Architektur

Kontrollkommunikation

RTP-Videostrom

Client

ServerRTSP

Pipeline

Daten

Page 14: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 14

ContentDataBase

BerkeleyDB

speichert den SessionIdentifier zu einer Ressource

erreichbar über ResourceName und einen Iterator

Page 15: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 15

SessionIdentifier

Speichert die wichtigsten Daten zu einer Session

SessionName, PhysicalFileName, SessionIdVersionSessionDescriptionEmail und PhoneLength, Width, HeightStartTimeBitrate, DatasizePayloadType, PayloadTypeString, MimeType, FileTypeVideoHeader, MpegHeaderTimestampFrequency

Page 16: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 16

DataSourceThread: run

liest segmentweise die Daten ein

berechnet die benötigten Zeitstempel anhand der Bitrate des Streams

schreibt Daten in die ScheduleQueue des Schedulers

Page 17: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 17

DataPath

Vektor, der aus DataPipe-Objekten besteht

DataPipe-Objekte:SchedulerRtpEncoderTcpIpSink

Page 18: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 18

DataPipe

Methode ‚connect‘verbindet ein DataPipe-Objekt mit dem

nächsten

Methode ‚write‘sendet payloadDataUnit zum nächsten

DataPipe-Objekt im DataPath

Page 19: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 19

Datapath

Daten-Pipeline

TcpIp Sinkwrite

FileData Source write send

Rtp Encoder

Scheduler

DataPipe-ObjekteDataSource-Objekt

Page 20: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 20

SchedulerThread: run

Wartet, bis ein Element in der ScheduleQueue ankommt

erstes Element der ScheduleQueue wird weitergeschickt

Ausnahmenpausestop

Page 21: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 21

Architektur

Kontrollkommunikation

RTP-Videostrom

Client

ServerRTSP

Pipeline

Daten

Page 22: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 22

Realtime Transport Protocol: RTP

Reihenfolgetreue bzw. -wiederherstellung durch Zeitstempel und Sequenznummern

unterstützt Entdeckung fehlender Pakete

Inhaltsidentifikation (payloadDataUnit)MPEG1PCM

Source-Identifikation

Page 23: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 23

Real Time Control Protocol: RTCP

ClientQualität der Verbindung (Zeitstempel)

ServerBeschreibung der Source

Server & ClientAnzahl der Pakete bzw. Bytes (gesendet bzw.

empfangen)

Page 24: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 24

Sessions

RtcpSessionFrequenz der Protokolle abhängig von

Bandbreite und Anzahl der ClientsBeschreibung der Source und der Daten

RtpSessionZeitstempel und Sequenznummer initialisieren

Page 25: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 25

Datapath

Daten-Pipeline

TcpIp Sink

FileData Source send

Rtp Encoder

Scheduler

Page 26: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 26

RtpEncoder

Generiert einen RTP-Headerfügt die Sequenznummer eingeneriert den Zeitstempel

sendet payloadDataUnit und RTP-Header über TCP/IP bzw. UDP/IP

Page 27: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 27

TcpIpSink

Methode ‚init‘überprüft, ob eine Zieladresse vorliegtüberprüft, ob ein Socket angelegt ist, sonst wird ein

Socket angelegtbindet das Socket an die lokale AdresseSocket wird mit Zieladresse verbunden

IP-AdresseMulticast-Adresse

setzt „time to live“ für Multicast Sockets

Methode ‚send‘ fügt einen Header anversendet die Pakete

Page 28: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 28

Socket

das Generieren eines Sockets liefert einen Integer-Wert

Durch bind kann ein Socket an eine IP-Adresse und einen Port gebunden werden

auf einem Socket können Sendeoperationen ausgeführt werden

nach dem Senden werden die Daten durch das Netzwerk geroutet

Page 29: Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur Kontrollkommunikation RTP-Videostrom Client Server RTSP Pipeline Daten

Der SmartPump Server 29

Ende

Bitte sparen Sie nicht mit Applaus