Realizzare un videoblog con upload dei video come YouTube sul proprio sito web (Parte II)

Cosa da ricordare

E' sempre bene posizionare i video caricati sul serve dagli utenti in un' apposita directory, della quale fare quotidiano backup.

Inoltre, se qualcosa durante la conversione va storto, viene mostrato all' utente l' outpou di ffmpeg, contenente la descrizione/causa dell' errore; a ciò dovremo però stare attenti, perchè la descrizione dell' errore può rivelare particolare importanti a possibili attakkers.

Il video convertito viene posizionato in una sotto-directory di quella per gli uploads, e viene nominato con l' ID a lui associato. Stessa cosa per l' immagine di anteprima del video, in formato PNG, chiamata come il video associato.

Riprodurre il video nel browser

Ora che il video è stato caricato ed opportunamente convertito, bisogna renderlo visibile. Per far ciò ci viene in aiuto il player FlowPlayer:

    {% if video %}
<div style="textalign:center; width:100%;">
<center>
<object  type="application/x-shockwave-flash"
width="320" height="263" id="FlowPlayer" data="/showvideo/FlowPlayer.swf">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="/showvideo/FlowPlayer.swf" />
    <param name="quality" value="high" />
    <param name="scale" value="noScale" />
    <param name="wmode" value="transparent" />
    <param name="flashvars" value="baseURL=/showvideo&videoFile=flv/
        {{video.flvfilename}}&autoPlay=false&bufferLength=5
            &loop=false&progressBarColor1=0xAAAAAA&
            progressBarColor2=0x555555&autoBuffering=false&
            splashImageFile=clicktoplay.jpg&hideControls=false" />
<p>Dein Browser scheint kein Flash-Plugin installiert zu haben</p>
</object>
<p>
<center>
<strong>{{video.comment}}</strong>
</center>
</p>
</center>
</div>
{% endif %}

 

Da notare l' attributo "splashImageFile=clicktoplay.jpg" , utile per impostare un' immagine sostitutiva del video finchè l' utente non vi clicka per riprodurlo.

Il risultato finale

Ecco uno screen di quanto abbiamo creato: un blog aggiornabile da ciascun utente, che potrà associare ad ogni post un video

mantavideo

 

Qualità di conversione e dimensioni

Di default la conversione del video genera un FLV di qualità accettabile, ma non certamente strepitosa. Ciò permette però di ridurre un video di dimensioni 2.8MB in uno da 590kB. Il guadagno di spazio è quindi notevole, e nel caso si sia propensi per una migliore qualità, bisognerà aspettarsi un incremento di dimensioni proporzionale al grado di qualità scelto.

Gestione

E' una buona idea l' evitare che il video FLV risulti montato su Django, ma piuttosto su Apache (o un altro web server); per far ciò dovremo aggiungere le righe seguenti al file httpd.conf

    Alias /showvideo/ "/path/to/my/media/root/video/"
<Location "/showvideo/">
    SetHandler none
</Location>

 

Potremmo inoltre voler porre un limite massimo di dimensione video da caricare, il che si può fare usando la direttiva LimitRequestBody.

Problemi e limitazioni

Una delle limitazioni lampanti di un servizio strutturato in tal mondo è la scarsa compatibilità con i molti formati-video attuali. Non vengono infatti convertiti quelli in formato Media Player, o di altri formati proprietari. E' quindi bene limitare l' upload solamente di files .AVI, così da non incorrere in questo genere di problemi.

L' upload del video attualmente avviene nella stessa pagina nella quale è stato scritto l' articolo, il che non rappresenta un problema nel caso del caricamento di un video di breve durata (breve tempo di attesa), ma che diventa scomodo se il video è di dimensioni piuttosto estese. In tal caso sarebbe meglio aprire una nuova finestra in stile pop-up nella quale inizializzare e portare a termine il trasferimento.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!