quickstream

23
Quickstream streaming media website

Upload: radu-potop

Post on 26-Jun-2015

302 views

Category:

Technology


0 download

DESCRIPTION

streaming media website

TRANSCRIPT

Page 1: Quickstream

Quickstreamstreaming media website

Page 2: Quickstream

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

Page 3: Quickstream

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

Page 4: Quickstream

Arhitectura

Page 5: Quickstream

Quickstream

● Noi am folosit Linux

● Orice SO:

● HTTP server (Apache)

● PHP 5

● FFMPEG

● Nu are nevoie de bază de date

Arhitectura

Page 6: Quickstream

Detalii tehnice

Page 7: Quickstream

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

Page 8: Quickstream

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

Page 9: Quickstream

Quickstream

Are doua fişiere principale:

● index.php

● Interfaţa

● functions.php

● Fişier de configurare

● Funcţiile site-ului

Detalii tehnice

Page 10: Quickstream

Mod de funcţionare

Page 11: Quickstream

Quickstream

● Upload film

● Redenumire în hash

● Encoding

● Obţine adresa

● Redirectează la adresa respectivă

● Validează adresa

● Stream back

Mod de funcţionare

Page 12: Quickstream

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

Page 13: Quickstream

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

Page 14: Quickstream

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

Page 15: Quickstream

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

Page 16: Quickstream

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

Page 17: Quickstream

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

Page 18: Quickstream

Observaţii

Page 19: Quickstream

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

Page 20: Quickstream

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

Page 21: Quickstream

Quickstream Observaţii

Licenţa BSD

● Foarte permisivă

● Permite copierea, distribuirea,

modificarea aplicaţiei

● Înglobarea ei în aplicaţii proprietare

Page 22: Quickstream

Demo

Page 23: Quickstream

Mulţumesc