Quanta banda richiede la visualizzazione di un video su YouTube?

E’ la classica domanda che si pone chi:

1) Ha una tariffazione a KB per navigare con il proprio cellulare

2) Sfigati che come me fanno parte dell’ Anti Digital Divide (ADSL a 640 Kbps), e si chiedono il perche’ non riescono a vedere un video a 360p su YouTube senza aspettare la bufferrizzazione dei pacchetti, che tradotto sarebbe il caricamento del video 😀 .

Partiamo andando a leggere le specifiche che ci mette direttamente a disposizione Google

Risoluzione:

YouTube usa un aspect ratio standard a 16:9, con le principali risoluzione video a:

  • 1080p: 1920×1080
  • 720p: 1280×720
  • 480p: 854×480
  • 360p: 640×360
  • 240p: 426×240
Con un fps ( frame per second) pari a 24/30, dove fps rappresenta il numero di frame (immagini) per secondo
Comparison of YouTube media encoding options
Default container FLV MP4
Video Encoding Sorenson H.263 MPEG-4 AVC (H.264)
Profile Main Baseline High
Resolution progressive 240p 270p 360p 480p 360p 720p 1080p 3072p
Resolution VGA WQVGA HVGA nHD FWVGA nHD WXGA WUXGA HXGA
Max width (pixels) 400 480 640 854 640 1280 1920 4096
Max height (pixels) 240 270 360 480 360 720 1080 3072
Bitrate[2] (Mbit/s) 0.25 0.8 0.5 0.8–1 0.5 2–2.9 3–4.3 3.5–5
Audio Encoding MP3 AAC
Channels 1–2 2 (stereo)
Sampling rate (Hz) 22050 44100
Bitrate[2] (kbit/s) 64 128 96 152 128

Questa tabella presa da Wikipedia riassume le varie risoluzioni e i relativi dettagli per ogni configurazione ( compresa la banda che a noi interessa), vediamo assieme come interpretare i numeri  per la risoluzione a 360p.

Video:

Encoding: MPEG-4 AVC (H.264) è il codec usato per la compressione del video ( vedremo più avanti a cosa serve)

Resolution: 360p è la risoluzione del video

Max width (pixel): 640 sono i pixel in larghezza del video

Max height(pixel): 360 sono i pixel in altezza del video

Bitrate (Mbit/s): 0.5 è il parametro che mi interessava, in poche parole dice che per visualizzare correttamente ( senza bufferrizzare ) il video abbiamo bisogno di almeno di una banda pari a 500 Kbps ( la mia ADSL è di poco superiore)

Audio:

Encoding: AAC è il codec audio usato

Channels: 2(stereo)  abbiamo la registrazione a due canali (stereo)

Sampling rate (Hz): 44100 è il rate usato per il campionamento dell’audio

Bitrate (kbit/s): 128 è la banda utilizzata dalla sola traccia audio.

Calcolo Bitrate (Datarate)

Con il termine Bitrate si intende il numero di kilobits per secondi (kbps) che dobbiamo trasferire/ricevere per vedere un video. Più il valore è alto, più la qualità del video migliora.

La formula per il calcolo del Bitrate è molto semplice:

Total Bitrate (bps) = altezza del frame (pixel)  x  profondità del frame (pixel)  x  frame rate (fps)  x  numero di bit per rappresentare un pixel

Nel nostro caso avremo

Bitrate(360p)= 360 x 640 x 24 x 4 = 22118400 (bps)   che sarebbero all’incirca 22 Mbps

Ma non avevamo detto che il Bitrate per la 360p era di appena 0.5 Mbps ??

Ed ecco che entra in gioco il codec che abbiamo citato prima: MPEG-4 AVC (H.264), il numero che è uscito fuori dalla formula precedente si riferisce al video “un-compressed”.

Tramite il codec MPEG-4 ( tra i migliori in circolazione) abbiamo un Compression Ratio 50:1, significa che il fattore di compressione farà si che il Bitrate uncompressed venga diviso per 50.

Per tale motivo il Bitrate del video compresso sarà uguale a:

BitRate Video Compressed = Bitrate Uncompressed / Compression Ratio MPEG-4   —>  Bitrate Compressed = 22 Mbps / 50 = 0.44 Mbps

Perfetto! ora ci troviamo con il valore in tabella 😉

Spero di aver fatto un pò di chiarezza su come calcolare il Bitrate di una sorgente Video e di come leggere correttamente i dato che ci mettono a disposizione i vari siti di Hosting Video.

Sperando che presto… anche i nostri piccoli comuni vengano raggiunti da una connessione semi-decente 🙁

Riferimenti:

http://en.wikipedia.org/wiki/YouTube

http://adterrasperaspera.com/blog/2010/05/24/approximate-youtube-bitrates

http://blog.jimmyr.com/High_Quality_on_Youtube_11_2008.php

http://neuron2.net/LVG/ratesandsizes.html

http://support.google.com/richmedia/bin/answer.py?hl=en&answer=2462489

http://www.kanecomputing.co.uk/pdfs/compression_ratio_rules_of_thumb.pdf

Google File System – Come funziona e la sua Architettura

Google Data Centers - File System Distributed

Ultimamente mi sono interessato ai File System Distribuiti, usati da una miriade di Sistemi di Calcoto Distribuiti ( HPC, Cluster, Sistemi GRID ), grazie alla peculiarita’ di poter immagazzinare enormi quantita’ di dati che altrimenti non potrebbero essere immagazzinate su un singolo disco rigido.

Immaginate un Sistema come quello di Google, con migliaia di cluster e centinaia di Terabyte di dati da gestire. Un Sistema in grado di visualizzare in pochi secondi e da qualsiasi parte del mondo tutte le vostre mail, tutti i vostri documenti, tutte le vostre immagini. Un Sistema che non ammette Failure o perdita di dati alcuna ( Spero almeno che i Crawlers di Google dopo questa premessa aumentino il SiteRank del blog 😛 ).

Google File System ( GFS o GoogleFS ) è il lavoro di anni di ricerca ed implementazione da parte del settore ricerca e sviluppo di Google, l’idea alla base dell’architettura deriva direttamente dai due fondatori di Google: Larry Page e Sergey Brin quando ancora studiavano a Stanford e pensavano ad un File System che soddisfacesse tale definizione:

“store data reliably even in the presence of unreliable machines”

che tradotto significa: “Immagazzinare dati in maniera affidabile anche in presenza di macchine inaffidabili”. Infatti la maggior parte dei computer utilizzati da Google sono formati da componenti economiche che molto spesso crashano o si rompono, per tale motovo il File System da usare doveva avere un alto grado di tollerenza ai guasti.

Leggi tutto “Google File System — Come funziona e la sua Architettura”