Top Banner
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Fabio Sonnati – Maggio 2011 Best Practices per l’encoding video e il delivery su Mobile
30

Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

Dec 19, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Fabio Sonnati – Maggio 2011

Best Practices per l’encoding video e il delivery su Mobile

Page 2: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

2

Speaker bio – Fabio Sonnati TWITTTER: @sonnati

� Fabio Sonnati - Freelance, Adobe Community Professional dal 2006, sviluppatore e beta tester di Flash Media Server dal 2003. Ho una specifica esperienza nella progettazione, sviluppo ed ottimizzazione di piattaforme di erogazione video e di encoding.

� Blog: http://sonnati.wordpress.com

� Twitter: @sonnati

� Email: [email protected]

Page 3: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Premessa: il video ha cambiato il web

Il video ha cambiato il modo di comunicare su Internet. E’ stato uno

dei principali protagonisti del web negli ultimi 5 anni, da YouTube in

poi.

“driver” fondamentale di tale trend è stato l’ Adobe Flash Player :

pluging onnipresente, cross-platform, immediato e programmabile

ha reso facilmente accessibile al 98-99% dell’Internet audience

contenuti video annullando le barriere di accesso precedenti.

Page 4: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

PARTE I - Ecosistema video di AdobeLo “Status Quo”

Page 5: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Breve cronistoria del video sul web

1998-2005 – Il video su Internet esiste fin dagli albori ma resta ai

margini per carenza di connessioni veloci, di codec efficienti, di

tecnologie realmente “abilitanti” e per la guerra tra i tre maggiori

player del mercato: Microsoft, Apple e Real Networks.

2005-6 – YouTube, sfruttando il Flash Player 7 come tecnologia

abilitante, inaugura il nuovo trend del video su Internet.

Il video ha livelli di qualità non elevati ma la totale facilità di

accesso, i modelli on-demand e “user generated content”

determinano una reale esplosione di consenso da parte degli

Internauti.

2007-8 – Adobe rilascia il Flash Player 9 update 3 con supporto alle

tecnologie H.264 e AAC. Lo “stato dell’arte” nella campo della

codifica audio video arriva sul 98% dei desktop.

2009-10 – Viene rilasciato Flash player 10 che segna la maturità per la

piattaforma video di Adobe su desktop. Inizia la strategia cross platform.

Page 6: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

10 Generazioni di Innovazione con Flash

Flash 6

Viene introdotto il codec video Spark per lo streaming da FCS

Flash 7

Progressive downloading

Flash 8

Codec video VP6

Flash 9 update 3

Codec video H.264, codec audio AAC

Flash 10

p2p, accelerazione video, DRM, speex, dynamic streaming

Flash 10.1 e successivi (Desktop + Mobile)

HTTP dynamic streaming, StageVideo, Echo cancellation,

Page 7: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

ECOSISTEMA VIDEO ADOBE

Gli elementi dell’ecosistema:

- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV)

- CS 5.5 Media Encoder (Desktop encoder)

- FMES (Batch encoder)

- Flash Media Live Encoder 3.5 (live encoder)

- Flash Media Server 4 (streaming server, communication server)

- Flash Access 2 (DRM)

- Cirrus and LCCS (Services)

Page 8: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Penetrazione della piattaforma Flash su Desktop

L’Adoption rate delle nuove release del Flash Player è in continua

ascesa. Una nuova release supera l’80% di diffusione in pochi mesi.

Page 9: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Penetrazione della piattaforma Flash su Mobile

Nel 2011 sono previsti oltre 40 modelli di smartphones con supporto al

Flash Player i quali costituiranno una base di 132 Milioni di device

(36% del totale smart phones venduti). Se consideriamo Flash o AIR

su telefoni o tablet si sale a 200 Milioni di device.

Page 10: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Flash Player e AIR su Mobile

Flash Player e AIR sono disponibili oggi su:

• Android dalla release 2.2 in poi

• WebOS di HP

• QNX (Playbook) di RIM

Le applicazioni AIR possono essere cross-compilate per funzionare anche sui

dispositivi iOS come applicazioni native. Nessun supporto al Flash Player

nel browser.

(ricordiamo infine che Flash e AIR sono disponibili anche su GoogleTV e tutte

le SmartTV e lettori Bluray 2011 di Samsung)

Page 11: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Flash Player e AIR su Mobile

ANDROID

Supporto molto esteso alle funzioni di AIR 2.6 con alcuni distinguo:

Full HW acceleration abilitata solo su Android 3.1 (StageVideo)

Il supporto a Access 2.0 arriverà nel corso dell’estate. Accesso alla sola

fotocamera dorsale come sorgente di streaming.

PLAYBOOK

Eccellente livello di supporto delle funzioni audio video. Streaming 720p

e 1080p senza problemi.

iOS

Alcune limitazioni a partire dal mancato supporto ai codec H.264 e AAC

In attesa di AIR 2.7 per un netto incremento delle performance generali.

Limitazioni superabili in parte utilizzando StageWebView.

Page 12: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

PARTE II – Encoding Best Practices

Page 13: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Tecnologia video H.264

H.264 è lo stato dell’arte della codifica video.

Standard internazionale, è ampiamente supportato dall’industria

(BlueRay disk, HD Broadcasting, Mobile Video, HD Camcorder).

H.264 è un codec complesso, con prestazioni superiori a WMV, VP6,

DivX o codec più moderni come il VC1 o il VP8. Ha grandi potenzialità

di miglioramento e ancora non è sfruttato al 100%.

H.264 nasce come codec unico per una molteplicità di scenari, dal

mobile al broadcasting full-hd. Dalla video conferenza al vod passando

per il web streaming.

Page 14: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Principi di compressione video

La codifica video viene genericamente cosi’ eseguita:

• Il frame viene diviso in blocchi (tipicamente 8x8).

• Ad ogni blocco viene applicato un modello psico-visuale per cui ai dettagli più fini (alte frequenze) viene applicata una

quantizzazione meno accurata.

• Le ridondanze spaziali vengono predette dai blocchi adiacenti

(spatial prediction).• Le ridondanze temporali vengono ridotte tramite la “motion

estimation e compensation” cosi’ che solo le differenze rispetto

ad un fotogramma di riferimento vengono codificate.

• Viene applicata una codifica entropica al bitstream per

comprimerlo ulteriormente (VLC, variable length coding).

Page 15: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Tipologie di frame video

I-frames

Vengono codificati solo usando tecniche Intra-frame. Gli I-frame non hanno

riferimenti ad altri fotogrammi e sono quindi utilizzati come punti di accesso

(Keyframes).

P-frames

Vengono predetti dai precedenti reference frames utilizzando tecniche di

motion estimation and compensation (Inter-frames).

Hanno riferimenti ad altri frame quindi formano una catena di dipendenze.

B-frames

Sono fotogrammi i cui blocchi vengono interpolati

fra un riferimento nel passato ed uno nel futuro.

Determinano una compressione molto efficiente.

Page 16: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Lo standard H.264

� Blocchi 4x4 e/o 8x8

� Diverse modalità di predizione spaziale

� Reference Frames multipli

� motion compensation accurata

� B-Frame molto efficienti

� Deblocking filter

� Context-adaptive entropy coding (CABAC)

H.264 utilizza moltissime tecniche evolute di compressione rispetto agli standard precedenti

Page 17: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Lo standard H.264

Codec “Profiles”

Il profilo H.264 determina il sottoinsieme di tecniche di encoding utilizzabili dall’encoder e dal decoder. I profili più semplici richiedono minore CPU e memoria ma sono meno efficienti in termini di rapporto qualità / banda.

� Baseline Profile (BP): Profilo dedicato a dispositivi mobile a bassa potenza di elaborazione (Non supporta i B-Frames, il CABAC e i blocchi 8x8)

� Main Profile (MP): Originariamente inteso come profilo generico per dispositivi video mainstream, ha perso progressivamente importanza rispetto all’ High profile.

� High Profile (HiP): Profilo nato per le esigenze del broadcasting HD e FullHD, è usato nel BluRay e nel digitale satellitare e terrestre HD.

Page 18: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Lo standard H.264

Codec “Levels”

� Il livello definisce la massima risoluzione dei frame, la massima memoria richiesta per la decodifica, il massimo numero di reference e il massimo bitrate. Il livello è molto importante per la compatibilità con i device mobili. Tipicamente il profilo baseline è usato con livello fino a 3.1, il main profile con livello fino a 4.1 e l’ high profile con livello fino a 5.1

� La buona notizia è che il decoder software di H.264 incluso nel Flash supporta ogni profilo e ogni livello. Tuttavia sui dispositivi mobile èimportante assicurarsi di sfruttare l’accelerazione HW.

Page 19: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

HW Acceleration sui dispositivi Mobile

Tipologie di accelerazione HW

1. Accelerazione HW della sola decodifica2. Accelerazione HW della decodifica, dello scaling e del compositing

Playbook : accelerazione più avanzata su ogni livello e profilo fino a risoluzioni FullHD

Android 2.2, 2.3 e 3.0 : sola la prima forma

Android 3.1 : la forma più completa (StageVideo)

Page 20: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

HW Acceleration sui dispositivi Mobile

Conseguenza:

Per garantire le migliori performance anche su dispositivi Android entry-level e per supportare altri dispositivi con la stessa codifica (iOS piùvecchi, BlackBerry, Simbian) è consigliabile codificare in Baseline Level 3.0

Risoluzione consigliate:

Mobile phone Tablet

Page 21: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

HW Acceleration sui dispositivi Mobile

Esempio di settings CS 5.5 Media EncoderVideo settings

Format – multiplexing: F4V

Video – resolution (depends):

For 16:9 content: 640 × 360 For 4:3 content: 640 × 480

Frames per second (fps): Same as source footage

Profile: Baseline

Level: 3.0 or 3.1 (two to three reference frames will be used)

Bit rate: VBR, two-pass Target bit rate: 350–600 kbit/sec. depending on video "complexity"

Maximum bit rate: (1.5 to 1.6) × target bit rate

Keyframe (depends): For progressive downloading: fps × (3 to 4)

Audio settings

Codec: AAC, stereo Frequency: 44.1 kHz Audio quality: High Bit rate: 80 kbit/sec.

Page 22: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

PARTE III – Delivery Best Practices

Page 23: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Delivery best practices

� Quale tecnica di erogazione ?

Flash Player supporta molte tecniche di erogazione differenti:

� Progressive Download

� RTMP Streaming

� RTMP Dynamic Streaming

� HTTP Dynamic Streaming

� Peer Assisted Streaming

Page 24: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Delivery best practices

� Quale Player Video ?

� Custom (low level Flash Player API)

� OSMF (Framework)

� Strobe or Flash Media Player (turn-key solutions)

� Raccomandazioni generiche

� Utilizzate un rapporto di 16:10 per il player

� Non utilizzare wmode = trasparent

� Usare StageVideo, se disponibile

� Usare Dynamic Streaming per migliorare la QoS

� Fare device detection e modificare skin (pulsanti

grandi per il touch) e scelta delle risoluzioni / bitrate

in base al device.

Page 25: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Delivery best practice

Raccomandazioni per i player custom o skinnati

- Evitare video con filtri, rotazioni, blending, trasparenza, pixel bender

- Posizionate i video su pixel esatti

- Limitare effetti e trasparenze sugli elementi della UI

- Preferire callback agli eventi e centralizzare i timer

- Determinare se siamo su mobile usando varie tecniche- If (Capabilities.cpuArchitecture == “ARM” ) … siamo su CPU Arm

- If (Capabilities.version.indexOf(“AND”) != -1 … siamo su Android

- Determinare la dimensione della diagonale:

- var dpi:Number = Capabilities.screenDPI;var screenX:Number = Capabilities.screenResolutionX;var screenY:Number = Capabilities.screenResolutionY;var screenDiagonal:Number = Math.sqrt(((screenX*screenX)+(screenY*screenY))) / dpi;

- Quindi definire una UI dedicata al Touch e ai dispositivi condisplay piccoli.

Page 26: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Dynamic Streaming

Come massimizzare la QoS ?

� Usare RTMP & HTTP Dynamic Streaming

FP10 può cambiare bitrate al volo per adattarsi ai cambiamenti di banda

disponibile

FP10.1 offre un API per il QoS che fornisce moltissime dettagliate informazioni

sulle prestazioni in decodifica del player, sulla banda disponibile e quella

richiesta istantaneamente dal flusso video. Grazie a queste info è possibile

attivare il cambio di bitrate che sarà trasparente per l’utente.

La DynamicStream class o meglio l’ OSMF implementa tutta la complessa

euristica necessaria per gestire il bitrate switching in base alla banda

disponibile, la dimensinone dello schermo la potenza della CPU.

Page 27: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Dynamic Streaming

Desktop 16:9

Resolution Bitrate

1280 x 720 1-2 Mbit/s

1024 x 576 0.8-1.5 Mbit/s

848 x 480 0.6-1 Mbit/s

640 x 360 0.4-0.7 Mbit/s

Mobile 16:9

Resolution Bitrate

640 x 360 0.5-0.8 Mbit/s

512 x 288 0.4-0.6 Mbit/s

480 x 272 0.3-0.4 Mbit/s

320 x 180 0.2-0.3 Mbit/s

Dynamic Streaming – encoding recommendations

� Use fixed length GOP (2-4 seconds)

� Use 2-pass CBR (or “light” VBR es: VBV buffer = gop length)

� Use same audio settings for each stream

� Find a balanced set of resolutions - bitrates

Multiscreen 16:9

Resolution Bitrate

1280 x 720 1-2 Mbit/s

1024 x 576 0.8-1.5 Mbit/s

848 x 480 0.6-1 Mbit/s

640 x 360 0.5-0.8 Mbit/s

512 x 288 0.4-0.6 Mbit/s

480 x 272 0.3-0.4 Mbit/s

320 x 180 0.2-0.3 Mbit/s

[email protected]

[email protected]

Page 28: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Applicazioni video in AIR su iOS

var webView = new StageWebView();webView.stage = this.stage;webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight);var path:String = new File(new File("app:/html/service.htm").nativePath).url;webView.loadURL(Path);

* http://code.google.com/p/stagewebviewbridge/wiki/Communication

E’ possibile sopperire alle limitazioni del

packager per iOS utilizzando funzioni native tramite l’oggetto StageWebView e codice

HTML5 embeddato nel package.

Con il progetto StageWebViewBridge è infine

possibile gestire una comunicazione

bidirezionale con il contenuto dello

StageWebView.

Page 29: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Thank you

Page 30: Fabio Sonnati – Maggio 2011...- Flash Player/AIR (Browser, Desktop, Mobile, Connected TV) - CS 5.5 Media Encoder (Desktop encoder) - FMES (Batch encoder) - Flash Media Live Encoder

© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.