quickstream
DESCRIPTION
streaming media websiteTRANSCRIPT
Quickstreamstreaming media website
Quickstream
● Site (aplicaţie web)
● Upload film stream back→
● Streaming = redarea filmului direct de pe
site - fără a fi nevoit să-l descarci
● Servicii arhi-cunoscute de streaming
media: YouTube! (şi Vimeo)
Introducere
Quickstream
● Acces anonim
● Nu este nevoie de cont / înregistrare
● Privat
● Adresele filmelor nu se publică
● Nu poţi accesa filmele altora (decât
dacă ştii adresa exactă)
Introducere
Arhitectura
Quickstream
● Noi am folosit Linux
● Orice SO:
● HTTP server (Apache)
● PHP 5
● FFMPEG
● Nu are nevoie de bază de date
Arhitectura
Detalii tehnice
Quickstream
● 300 LOC (linii de cod)
● Cod scris în HTML 4.01, CSS şi PHP
● Alcătuită din 6 funcţii
● Am folosit Mercurial pentru version
control → http://cmyk.wooptoo.com/hg/quickstream/
● Doxygen pentru comentarea codului şi
generarea documentaţiei pentru API
Detalii tehnice
Quickstream
● Redarea filmului se face cu un player
Flash Video
● Nu este scris de noi:
● JW FLV Player
● Primeşte parametrii prin JavaScript
● Filmele nu pot fi accesate direct
Detalii tehnice
Quickstream
Are doua fişiere principale:
● index.php
● Interfaţa
● functions.php
● Fişier de configurare
● Funcţiile site-ului
Detalii tehnice
Mod de funcţionare
Quickstream
● Upload film
● Redenumire în hash
● Encoding
● Obţine adresa
● Redirectează la adresa respectivă
● Validează adresa
● Stream back
Mod de funcţionare
Quickstream
Upload - verifică dacă fişierul încărcat:
● Nu are erori
● Este mai mic de 30 MB
● Fişierul nu există deja
● Este de tip video
Mod de funcţionare
Quickstream
Redenumire în hash:
● Se face MD5 hash al fişierului
● Fişierul este redenumit in acel hash
● Rezultă fişiere cu nume unice
● Permite stocarea tuturor filmelor în
acelaşi director
● Eliminarea dublurilor
Mod de funcţionare
Quickstream
Encoding:
● Encoding în .flv
● Se realizează cu FFMPEG
● Procesul cel mai intensiv dpdv al
resurselor
● Acceptă aproape orice format video
(am testat mpeg, mp4, avi, mov)
Mod de funcţionare
Quickstream
Obţine adresa:
● Generează adresa la care va putea fi
accesat filmul
● Este de forma a?=hash
● Hash-ul din adresa este numele
fişierului
Redirectează la adresa respectivă
Mod de funcţionare
Quickstream
Validează adresa - verifică dacă:
● Există fişierul de la adresa respectivă
● Adresa conţine doar caractere alfa-
numerice
(pentru a preveni ?a=../hash)
● Funcţie de securitate
Mod de funcţionare
Quickstream
Redarea filmului - afişează:
● Playerul Flash, la care îi este
transmisă adresa filmului
● Permalink unde poate fi accesat mai
târziu filmul
● Embed code
Mod de funcţionare
Observaţii
Quickstream
● Prima pagină conţine un film demo şi un
mic tutorial
● Filmul demo nu are hash şi poate fi
accesat la adresa speciala ?a=demo
● Pot fi definite si alte adrese speciale
● Când se introduce o adresa se execută
doar validarea şi redarea filmului
Observaţii
Quickstream Observaţii
}Redirect la prima pagină
● Când este accesată aplicaţia:
Adresă greşită
Fără adresă
● Dacă uiţi adresa re-upload pentru →
recuperare
● La re-upload nu se mai face encoding
Quickstream Observaţii
Licenţa BSD
● Foarte permisivă
● Permite copierea, distribuirea,
modificarea aplicaţiei
● Înglobarea ei în aplicaţii proprietare
Demo
Mulţumesc