Streaming

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Streaming as PDF for free.

More details

  • Words: 3,099
  • Pages: 68
Note di Copyright Concessione d'autore Copyleft 2003 by Juan Carlos De Martin - [email protected] Giampaolo Mancini - [email protected] Davide Quaglia - [email protected] Francesco Varano - [email protected] È garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della Licenza per Documentazione Libera GNU (GNU Free Documentation License), Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation; senza Sezioni Non Modificabili, con nessun Testo Copertina, e con nessun Testo di Retro Copertina. Una copia della licenza è disponibile all'indirizzo Web http://www.gnu.org/licenses/fdl.html Thursday, April 22, 2004

Internet Media Group

1

Internet Media Gro up

Il progetto

IRITI-CNR

Open Media Streaming G. Mancini, D. Quaglia, F. Varano J. C. De Martin, A. R. Meo

Settimana delle Libertà, Siena, 17 Aprile 2004

Overview Una introduzione allo streaming ✔ Le iniziative per standard open ✔ Le soluzioni commerciali ✔ Le soluzioni Open/Free ✔ Il progetto Open Media Streaming ✔

Thursday, April 22, 2004

Internet Media Group

3

Roadmap Una introduzione allo streaming ✔ Le iniziative per standard open ✔ Le soluzioni commerciali ✔ Le soluzioni Open/Free ✔ Il progetto Open Media Streaming ✔

Thursday, April 22, 2004

Internet Media Group

4

Una introduzione allo streaming ✔

Streaming 



Flusso vs File  



Metodo di accesso ai dati multimediali che permette di riprodurre i contenuti durante il trasferimento Nessun file da scaricare Fruizione istantanea

Applicazioni MoIP 

Multimedia Over IP

Thursday, April 22, 2004

Internet Media Group

5

Una introduzione allo streaming Applicazioni MoIP – Note Generali

Cos'è un'applicazione MoIP ✔ Caratteristiche ✔

 



Elaborazione real-time Throughput

Una possibile tassonomia   

Stored Multimedia Live Broadcast Multimedia Interactive Multimedia

Thursday, April 22, 2004

Internet Media Group

6

Una introduzione allo streaming Applicazioni MoIP – Problemi

Commutazione di pacchetto ✔ Servizio Best-effort ✔ Perdita di pacchetti ✔ Incertezze temporali ✔

 

Delay Jitter

Thursday, April 22, 2004

Internet Media Group

7

Una introduzione allo streaming Applicazioni MoIP – Soluzioni ✔

Modifiche all'architettura 



Modifiche all'infrastruttura  



IntServ e DiffServ Banda Larga Aumentare la potenza dei router

Modifiche nelle applicazioni    

Buffer di Playout Controllo di Flusso Tecniche di recupero degli errori Cambio di codifica dinamico

Thursday, April 22, 2004

Internet Media Group

8

Una introduzione allo streaming Soluzioni – Buffer di Playout Pacchetti

Destinazione

Sorgente

Pacchetti persi

t = istante di spedizione d = istante di ricezione p = istante di inizio riproduzione b = istante di inizio riproduzione ritardata b - p = dimensione del buffer di playout Tempo t Thursday, April 22, 2004

d p

b

Internet Media Group

9

Una introduzione allo streaming Soluzioni – Cambio di codifica dinamico ✔

Codec multimediali  



Application Data Unit (ADU)  



Qualità diversa a parità di bitrate Bitrate diverso a parità di qualità Elaborazione indipendente Application Level Framing e Integrated Layer Processing

Adattatività allo stato della rete 

Necessità di un feedback del player verso il server

Thursday, April 22, 2004

Internet Media Group

10

Una introduzione allo streaming Soluzioni – ALF & ILP ✔

Clark e Tennenhouse 

“Architectural Consideration for a New Generation of Protocols”, 1990, SIGCOMM Symposium on Communications Architectures and Protocols

Equivalente a Joint Source-Channel Coding ✔ Architettura vs. implementazione ✔

 

Due concetti ortogonali La progettazione a strati può essere un collo di bottiglia

Thursday, April 22, 2004

Internet Media Group

11

Una introduzione allo streaming Soluzioni – ALF & ILP ✔

Carico computazionale 



Presentazione dei dati 



Gestita direttamente a livello applicazione

Application Data Unit 



Manipolazione dei dati >> operazioni di trasferimento

Simbolo interpretato in parallelo

Integrated Layer Processing

Thursday, April 22, 2004

Internet Media Group

12

Una introduzione allo streaming Soluzioni – Tecniche di recupero degli errori ✔

Ridondanza  

Forward Error Correction Interleaving

Ritrasmissione ✔ Mascheramento delle perdite ✔

  

Interpolazione Ripetizione Tecniche avanzate

Thursday, April 22, 2004

Internet Media Group

13

Una introduzione allo streaming Architettura di streaming

Encoder

Server

Net

Client

Feedback

Thursday, April 22, 2004

Internet Media Group

14

Una introduzione allo streaming Architettura di streaming ✔

Encoder  

Codifica Real-time Diverse richieste 



Duplicazione dello stream in più formati

Diversi input  

File Telecamera, microfono, ecc.

Thursday, April 22, 2004

Internet Media Group

15

Una introduzione allo streaming Architettura di streaming ✔

Server    



Gestione delle connessioni Pacchettizazione Ascolto stato della rete Negoziazione delle capabilities

Client   

Ricezione, decodifica, riproduzione Spedizione statistiche Negoziazione delle capabilities

Thursday, April 22, 2004

Internet Media Group

16

Roadmap Una introduzione allo streaming ✔ Le iniziative per standard open ✔ Le soluzioni commerciali ✔ Le soluzioni Open/Free ✔ Il progetto Open Media Streaming ✔

Thursday, April 22, 2004

Internet Media Group

17

Le iniziative per standard open Considerazioni generali ✔

Due livelli di apertura 

Utilizzo di formati standard  



Codifica multimediale Protocolli di trasmissione

Presenza di brevetti  

Brevetti sui formati Brevetti sugli algoritmi

Thursday, April 22, 2004

Internet Media Group

18

Le iniziative per standard open Internet Streaming Media Alliance

Alleanza tra industrie ✔ “Our goal is to accelerate the adoption of open standards for streaming rich media video, audio, and associated data - over the Internet” (www.isma.it) ✔ Protocolli IETF + Codifica MPEG-4 ✔

Thursday, April 22, 2004

Internet Media Group

19

Le iniziative per standard open Internet Engineering Task Force

Protocolli per lo streaming su IP ✔ Real-Time Streaming Protocol (RTSP) ✔

 



Real-time Transport Protocol (RTP) 



Accesso ai contenuti Gestione delle sessioni Trasporto dei dati multimediali real-time

RTP Control Protocol (RTCP) 

Controllo del trasporto (statistiche sulla qualità)

Thursday, April 22, 2004

Internet Media Group

20

Le iniziative per standard open Formati multimediali ✔

ISO MPEG  



ITU-T H.xxx  



H.323, H.263, H.264 Microsoft NetMeeting, GnomeMeeting

3GPP/ETSI 



MPEG-1, MPEG-2, MPEG-4 MP3, DVD, DivX

GSM

Xiph.org Foundation 

OGG-Vorbis, OGG-Tarkin, Theora

Thursday, April 22, 2004

Internet Media Group

21

Roadmap Una introduzione allo streaming ✔ Le iniziative per standard open ✔ Le soluzioni commerciali ✔ Le soluzioni Open/Free ✔ Il progetto Open Media Streaming ✔

Thursday, April 22, 2004

Internet Media Group

22

Le soluzioni commerciali RealNetworks ✔ Windows Media Player ✔ Apple Quicktime ✔ Non compatibili fra loro ✔ Non compatibili con gli standard ✔ Vincolate al singolo produttore ✔

Thursday, April 22, 2004

Internet Media Group

23

Le soluzioni commerciali ✔

RealNetworks  



Windows Media Player  



Supporto parziale protocolli IETF Documentazione ASF File Format (brevettato) Nessun supporto protocolli IETF

Apple Quicktime  

Supporto parziale protocolli IETF “Hinted” file format / encoder non standard

Thursday, April 22, 2004

Internet Media Group

24

Roadmap Una introduzione allo streaming ✔ Le iniziative per standard open ✔ Le soluzioni commerciali ✔ Le soluzioni Open/Free ✔ Il progetto Open Media Streaming ✔

Thursday, April 22, 2004

Internet Media Group

25

Le soluzioni Open/Free “Open Source” ✔

RealNetworks  



Helix Iniziative (RPSL) Standardized APIs... Single Solution... Application Development

Apple Quicktime  

Darwin Streaming Server (APSL) Industrial strength performance... Engaging ease of use

Thursday, April 22, 2004

Internet Media Group

26

Le soluzioni Open/Free Free Software (GPL) ✔

MPlayer (+ Live.com Streaming Media)  



FFMpeg  



Solo client Supporto per WMS, QuickTime Server, Real Server Client & Server Implementazioni di riferimento per libavcodec

VideoLan  

Client & Server RTSP (solo server)

Thursday, April 22, 2004

Internet Media Group

27

Roadmap Una introduzione allo streaming ✔ Le iniziative per standard open ✔ Le soluzioni commerciali ✔ Le soluzioni Open/Free ✔ Il progetto Open Media Streaming ✔

Thursday, April 22, 2004

Internet Media Group

28

Il progetto Open Media Streaming

Thursday, April 22, 2004

Internet Media Group

29

Il progetto Open Media Streaming Overview ✔

Un punto di riferimento per...   



raccolta e catalogazione... supporto e integrazione... documentazione e ...

Sviluppo di free software  

Server: Fenice 1.4 Client: Network Media Streamer I – NeMeSI 0.3.0

Thursday, April 22, 2004

Internet Media Group

30

Il progetto Open Media Streaming Risorse ✔

Sito Web 



Mailing list   



http://streaming.polito.it [email protected] [email protected] [email protected]

CVS/Subversion  

https://gemelli.polito.it/svn/{nemesi-dev,mess} https://gemelli.polito.it/viewsvn

Thursday, April 22, 2004

Internet Media Group

31

Il progetto Open Media Streaming Caratteristiche

Protocolli IETF ✔ Codec multimediali open/non proprietari ✔ Tecniche di streaming avanzate ✔ Forte integrazione con la ricerca ✔

Thursday, April 22, 2004

Internet Media Group

32

Il progetto Open Media Streaming Open Media Server/Fenice

Thursday, April 22, 2004

Internet Media Group

33

Il progetto Open Media Streaming Fenice – Introduzione

Free Software (GPL) ✔ Sviluppatori attuali ✔



G. Mancini, Marco Penno, Federico Ridolfo, F. Varano

RTSP, RTP/RTCP compliant ✔ Tecniche avanzate ✔

 

Cambio di codifica dinamico Process Pooling

Thursday, April 22, 2004

Internet Media Group

34

Il progetto Open Media Streaming Fenice – Informazioni ✔

Righe di codice 



Numero di file 



33 file sorgenti

Compilazione 



12867 righe di codice in linguaggio ANSI C

AutoTools

CVS/Subversion 

https://gemelli.polito.it/svn/mess/trunk

Thursday, April 22, 2004

Internet Media Group

35

Il progetto Open Media Streaming Fenice – Informazioni ✔

Moduli       

Rtsp (rtsp.c, messages.c) Rtp (rtp.c) Rtcp (rtcp.c) Sdp (sdp.c) Physical (phy.c) Media entry (media_entry.c) Scheduler (schedule.c, eventloop.c)

Thursday, April 22, 2004

Internet Media Group

36

Il progetto Open Media Streaming Fenice – Caratteristiche ✔

Codec multimediali audio   



MP3: MPEG-1 Layer III GSM-AMR: Adaptive Multi Rate PCM-lineare

Codec multimediali video   

MPEG-1/2 Video ES MPEG System H.264

Thursday, April 22, 2004

Internet Media Group

37

Il progetto Open Media Streaming Fenice – Caratteristiche

Supporto del multicast ✔ Supporto di vari player noti ✔

   



Mplayer + Live.com VideoLan Client Real One Quicktime (sperimentale)

Supporto sperimentale di trasmissioni live

Thursday, April 22, 2004

Internet Media Group

38

Il progetto Open Media Streaming Fenice – Supporto dei player

PLAYER

Real One (Windows, Linux) Nemesi (Linux) Mplayer + Live.com (Windows, Linux) VideoLan (Windows, Linux) Quicktime (Windows)

Thursday, April 22, 2004

MULTICAST

UNICAST

audio/video no

o solo audio o solo video audio/video

audio/video

audio/video

audio/video

no

sperimentale

no

Internet Media Group

39

Il progetto Open Media Streaming Fenice – Architettura ✔

Architettura modulare  

Astrazione delle risorse Insieme di interfacce

Modulo trasversale

RTSP SD

RTP

RTCP

SDP

strato 3 Adaptive Rate Module strato 2

Livello Fisico

strato 1

Media Entry

Thursday, April 22, 2004

Internet Media Group

40

Il progetto Open Media Streaming Fenice – Robustezza ✔

Modello classico: replicazione (fork) del processo ad ogni connessione  



Massima robustezza al crash Overhead

Fenice: replicazione dopo N connessioni   

Robustezza Scalabilità Prestazioni

Thursday, April 22, 2004

Internet Media Group

41

Il progetto Open Media Streaming Fenice – Robustezza ✔

Rete ascoltata da un processo per volta Prima del forking

Dopo il forking Processo A

Processo A

1

2

3

4

Thursday, April 22, 2004

1

2

3

Internet Media Group

4

Processo B

5

6

7

42

Il progetto Open Media Streaming Fenice – Accesso alle risorse ✔

Accesso trasparente ad una risorsa multimediale   



rispetto al formato (ad es., MPEG-1, MPEG-4) rispetto al bitrate rispetto alla sorgente (live vs. file)

File SD 

Source Description

Thursday, April 22, 2004

Internet Media Group

43

Il progetto Open Media Streaming Fenice – Source Description ✔

Associazione tra risorsa e dati multimediali   



Diversi formati Diversi bitrate Diverse sorgenti (live, file)

Caratteristiche delle sorgenti   

Payload type RTP Informazioni per la pacchettizzazione Priorità nel cambio di codifica dinamico

Thursday, April 22, 2004

Internet Media Group

44

Il progetto Open Media Streaming Fenice – Source Description

stream default_presentation file_name BlackHoleSun.mp3 payload_type 96 clock_rate 90000 audio_channels 2 encoding_name MP3 sample_rate 44100 coding_type frame frame_len 1152 stream_end

Thursday, April 22, 2004

stream file_name BlackHoleSun.gsm-flo payload_type 108 clock_rate 8000 audio_channels 2 encoding_name GSM sample_rate 8000 coding_type frame frame_len 0 pkt_len 20 stream_end

Internet Media Group

45

Il progetto Open Media Streaming Fenice – Media Entry ✔

Il ruolo del Media Entry RTSP Session

Media Entry RTP Session

RTSP Session

Media Entry RTP Session

Thursday, April 22, 2004

Media Entry

Internet Media Group

Media Entry

46

Il progetto Open Media Streaming Fenice – Cambio di codifica dinamico

Problema di sovrapposizione dei frame ✔ Possibili soluzioni ✔

  

Frame corrente (riavvolgere il flusso) Frame successivo (salto nella riproduzione) Frame vicino con minore scarto (ottimale)

GSM-AMR

0

MP3

20

20

40

60

80

80

100

120

140

160

180

200

220

time (ms)

26.1

Thursday, April 22, 2004

Internet Media Group

47

Il progetto Open Media Streaming Network Media Streamer I

Thursday, April 22, 2004

Internet Media Group

48

Il progetto Open Media Streaming NeMeSI – Introduzione

Free Software (GPL) ✔ Sviluppatori ✔

 

Giampaolo Mancini, Francesco Varano Marco Penno

RTSP, RTP/RTCP fully compliant ✔ Interfaccia grafica ✔ Tecniche avanzate ✔

 

Cambio di codifica dinamico Buffer di playout di sistema

Thursday, April 22, 2004

Internet Media Group

49

Il progetto Open Media Streaming Nemesi – Informazioni ✔

Righe di codice 



Numero di file 



230 file sorgenti (un file per funzione)

Compilazione  



47510 righe di codice in linguaggio ANSI C

Autotools, Makefile Dipendenze: LibSDL, LibAVCodec (FFMpeg), LibTool

CVS/Subversion 

https://gemelli.polito.it/svn/nemesi-dev/trunk

Thursday, April 22, 2004

Internet Media Group

50

Il progetto Open Media Streaming NeMeSI – Caratteristiche ✔

Multithreading 

Una directory per thread

Plug-in ✔ Decodifica basata su LibAVCodec ✔

 



Molte codifiche supportate Prestazioni ottime

Output multimediale basato su LibSDL 

Simple Direct Layer

Thursday, April 22, 2004

Internet Media Group

51

Il progetto Open Media Streaming NeMeSI – Architettura ✔

Thread di esecuzione      

Interfaccia utente Controllo delle sessioni (RTSP) Ricezione dei dati (RTP) Controllo di flusso (RTCP) Decodifica Presentazione SDL  

Audio Video

Thursday, April 22, 2004

Internet Media Group

52

Il progetto Open Media Streaming NeMeSI – Buffer di Playout di rete

Tolleranza alle variazioni nella rete ✔ Riordino dei pacchetti ✔

 

Pacchetti fuori sequenza Validi se arrivati prima dell'istante di decodifica

Thursday, April 22, 2004

Internet Media Group

53

Il progetto Open Media Streaming NeMeSI – Cambio di codifica dinamico ✔

Pacchetto per pacchetto 



Payload Type dell'header RTP

Vettore di puntatori a funzione 

Plug-in MP3

RTP packet Header

GSM

Payload Type

Data

PCM AAC

Thursday, April 22, 2004

Internet Media Group

54

Il progetto Open Media Streaming NeMeSI – Prestazioni ✔

Applicazione con caratteristiche real-time 



Allocazione dinamica troppo dispendiosa 



Ad ogni malloc() corrisponde una system call che attraversa il kernel

Overhead 



Ricezione di pacchetti ogni (tipicamente) 20ms

Moltissime allocazioni per piccole quantità di dati

Latenza

Thursday, April 22, 2004

Internet Media Group

55

Il progetto Open Media Streaming NeMeSI – Gestione della memoria ✔

Gestione statica  



Buffer pool  



Nessuna allocazione dinamica per i dati Scelta ottima in termini di velocità Zona di memoria pre-allocata API per la gestione degli slot

Nessuna copia di ADU a livello utente 

Una copia alla ricezione (read() dal socket)



Una copia per la riproduzione (write() sull'uscita)

Thursday, April 22, 2004

Internet Media Group

56

Il progetto Open Media Streaming NeMeSI – Elaborazione real-time

Decodifica real-time ✔ Granularità temporali comparabili ✔

 





Time-slice dello scheduler nel kernel: 10ms Time-slice RTP: 20ms

Timer di sistema impreciso 

select()



L'imprecisione aumenta con il carico di CPU

Code dati di dimensioni ridotte

Thursday, April 22, 2004

Internet Media Group

57

Il progetto Open Media Streaming NeMeSI – Buffer di Playout di sistema ✔

Host “general purpose”  

Sistema operativo multitasking/multithreading Scheduler non real-time

Tollera le variazioni di carico ✔ Possibili realizzazioni ✔

  

Scheduler interno all'applicazione Buffer della scheda audio/video Coda di dati decodificati (dimensioni ridotte)

Thursday, April 22, 2004

Internet Media Group

58

Il progetto Open Media Streaming NeMeSI – Scheduler interno



Timestamp Scheduling  



Schedulazione basata sul timestamp RTP Recupero implicito dei ritardi

Fast Cycles Scheduling   

Nessun ciclo di “busy waiting” Recupero dei ritardi Feedback sulla coda di playout di sistema

Thursday, April 22, 2004

Internet Media Group

59

Il progetto Open Media Streaming NeMeSI – Plugin ✔

Audio:   



Video: 



MP3: VBR qualità CD (44.1KHz, 16 bit, stereo) GSM-AMR: VBR qualità voce (8Khz, 16 bit, mono) PCM-lineare: CBR qualità voce MPEG-1 Video

Tutti i codec libavcodec (FFMpeg)   

MPEG-1/2, MPEG-4, H.26x Windows Media Video, Real Video, Sorenson AC3, AAC, Ogg Vorbis

Thursday, April 22, 2004

Internet Media Group

60

Il progetto Open Media Streaming NeMeSI – libavcodec ✔

Tutti i codec libavcodec    

MPEG-1/2, MPEG-4, H.26x Windows Media Video, Real Video, Sorenson AC3, AAC, Ogg Vorbis ...

Thursday, April 22, 2004

Internet Media Group

61

Il progetto Open Media Streaming NeMeSI – API Plugin ✔

Primitive (API)  

int decode(data, data_len, context); int get_plugin_pt(void);

Convenzione sul formato d'uscita ✔ Aggiunta ✔

 

Codice sorgente nell'albero di NeMeSI Libreria dinamica esterna già compilata

Thursday, April 22, 2004

Internet Media Group

62

Il progetto Open Media Streaming Work In Progress - Server

Perfezionamento dello scheduler ✔ Re-ingegnerizzazione del server ✔



Punto di accesso a risorse multimediali  



Front-end di rete Gestore dei servizi

Flusso di byte vs. flusso di pacchetti 

Generatore di pacchetti con caratteristiche real-time

Thursday, April 22, 2004

Internet Media Group

63

Il progetto Open Media Streaming Work In Progress - Server ✔

Streaming-adapted file format 



Link-adapted scheduler 



Supporto per algoritmi di trasmissione avanzati

Negoziazione delle capabilities 



Il server ignora il formato dei dati spediti

MPEG-7/21

Visione futuristica  

Streaming Tree/Peer-to-peer HyperMedia Markup Language

Thursday, April 22, 2004

Internet Media Group

64

Il progetto Open Media Streaming Work In Progress - Client/Server ✔

Supporto di metadati  



Gestione delle licenze Creative Commons “Digital Rights Management”

Interfaccia utente DVD-like    

MPEG-4 Accesso per capitoli, scene Supporto multilingue Sottotitoli

Thursday, April 22, 2004

Internet Media Group

65

Il progetto Open Media Streaming Work In Progress - Producer ✔

Generazione di file streaming-adapted  

Off-line Live

Array di producer? ✔ Visione ✔



$ producer < /dev/video0 > /dev/streamer0

Thursday, April 22, 2004

Internet Media Group

66

Outro

Information Wants To Be

Free Thursday, April 22, 2004

Internet Media Group

67

FINE DEMO WLAN: SSID=Medialab Dynamic IP: DHCP http://192.168.1.1 http://streaming.polito.it [email protected] [email protected] [email protected]

Thursday, April 22, 2004

Internet Media Group

68

Related Documents

Streaming
November 2019 22
Smooth Streaming
May 2020 10
Manual Streaming
December 2019 17
Streaming Services.docx
December 2019 25
Video Streaming
June 2020 8