2013-11-27 26 views
5


Sto lavorando a un sito di condivisione video in cui le persone possono caricare i propri video e voglio che i caricamenti più recenti vengano visualizzati nella pagina dell'indice, ma non come video ma anteprime, in modo che quando si fa clic su la miniatura si arriva alla pagina del video. Ragazzi, sapete tutti come funziona l'indice di youtube/funziona - questo è quello che sto cercando di simulare.

Ho letto di ffmpeg ma a me sembra che funzionerebbe solo se sul computer è installato ffmpeg. Voglio che questo sia un processo automatico anche se l'utente non deve prima installare qualcosa sul proprio PC.
C'è un modo per codificarlo? O devo usare qualche tipo di framework o CMS? Questo problema può essere risolto semplicemente ottenendo l'hosting di ffmpeg (example)?
Se non c'è un modo manuale per farlo in php, c'è modo di usare python?

Fyi, il mio sito web è scritto in php e io uso jwplayer per lo streaming dei video.
Si prega di notare che voglio ottenere una miniatura da un video che è stato caricato sul mio server e non una miniatura di youtube o vimeo.Come posso ottenere una miniatura da un video che un utente ha caricato sul mio server?

+0

Mi sembra che tu abbia frainteso qualcosa. ffmpeg deve essere installato sul server in cui sono caricati i video. Quando l'utente carica un video, probabilmente crei una voce in un database e sposta il file da qualche parte. Durante questo processo chiamerai anche ffmpeg per creare una miniatura per il video, senza che l'utente debba installare nulla. –

+0

Ah, grazie! È possibile installare ffmpeg su un server di hosting condiviso? – user3041398

+0

Dipende interamente dal provider, ma non lo conterei a meno che non sia qualcosa che specificatamente fornisce. –

risposta

4

Ho lavorato su questo tipo di problema e sono sicuro che l'utente non ha bisogno di ffmpeg sul pc, ma è necessario un server con ffmpeg installato.

Per creare una miniatura dal video, provare il seguente codice.

<?php 
$video = 'path/to/video.flv'; 
$thumbnail = 'path/to/thumbnail.jpg'; 
shell_exec("ffmpeg -i $video -deinterlace -an -ss 1 -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $thumbnail 2>&1"); 
?> 
+2

Se vuoi cercare nel flusso video invece di afferrare il primo "secondo", aggiungi '-ss 00: 10: 00.1' (per esempio) prima dell'opzione' -i'. –

+0

funziona nella generazione della miniatura del video .mp4? –