Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur...
-
Upload
ivonne-radi -
Category
Documents
-
view
111 -
download
0
Transcript of Der SmartPump-Server Ein tolles Stück Technik. 2Der SmartPump Server Architektur...
Der SmartPump-Server
Ein tolles Stück Technik
Der SmartPump Server 2
Architektur
Kontrollkommunikation
RTP-Videostrom
Client
ServerRTSP
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
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
Der SmartPump Server 5
Initialisierung
Start in „RtspPump.cc“
Erzeugen von HauptkomponentenContentDataBaseThreadListenerSchedulerRTCPServerRecordPreferencesSessionPreferencesIdentifier (RTCP, RTSP)
Der SmartPump Server 6
Start - RTSP Server
RtspServer
RtspServerThread
RtspHandlerThread ...RtspHandlerThread RtspHandlerThread
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‘
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
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)
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, ...)
Der SmartPump Server 11
Methoden: play
Setzen von StartTime und StopTime
Erzeugen des RTP-Headers
verpacken in Response-Message
Starten des Streams (StreamControl)
Der SmartPump Server 12
Methoden: describe
Liefert Daten über SessionBitrate
Sendet Daten über ‚session description protocol‘
Der SmartPump Server 13
Architektur
Kontrollkommunikation
RTP-Videostrom
Client
ServerRTSP
Pipeline
Daten
Der SmartPump Server 14
ContentDataBase
BerkeleyDB
speichert den SessionIdentifier zu einer Ressource
erreichbar über ResourceName und einen Iterator
Der SmartPump Server 15
SessionIdentifier
Speichert die wichtigsten Daten zu einer Session
SessionName, PhysicalFileName, SessionIdVersionSessionDescriptionEmail und PhoneLength, Width, HeightStartTimeBitrate, DatasizePayloadType, PayloadTypeString, MimeType, FileTypeVideoHeader, MpegHeaderTimestampFrequency
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
Der SmartPump Server 17
DataPath
Vektor, der aus DataPipe-Objekten besteht
DataPipe-Objekte:SchedulerRtpEncoderTcpIpSink
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
Der SmartPump Server 19
Datapath
Daten-Pipeline
TcpIp Sinkwrite
FileData Source write send
Rtp Encoder
Scheduler
DataPipe-ObjekteDataSource-Objekt
Der SmartPump Server 20
SchedulerThread: run
Wartet, bis ein Element in der ScheduleQueue ankommt
erstes Element der ScheduleQueue wird weitergeschickt
Ausnahmenpausestop
Der SmartPump Server 21
Architektur
Kontrollkommunikation
RTP-Videostrom
Client
ServerRTSP
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
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)
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
Der SmartPump Server 25
Datapath
Daten-Pipeline
TcpIp Sink
FileData Source send
Rtp Encoder
Scheduler
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
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
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
Der SmartPump Server 29
Ende
Bitte sparen Sie nicht mit Applaus