2012-01-29 13 views
6

Mam tę stronę (bardzo proste, aby pokazać to, czego potrzebuję), aby przesłać pliki flv - czytam kilka postów na temat ffmpeg-php, ale jak zainstalować na serwerze, jeśli to jest rozwiązanie i jak z niego korzystać?trzeba utworzyć miniaturę do przesyłania wideo (bardzo prosty kod)

<?php 
if(isset($_REQUEST['upload'])){ 
$tmp_name = $_FILES['video']['tmp_name']; 
$name = $_FILES['video']['name']; 
$path = "videos/"; 
move_uploaded_file($tmp_name,$path.$name); 
} 
else{ 
?> 
<form action="" method="post" enctype="multipart/form-data"> 
<input name="video" type="file" /> <input name="upload" type="submit" value="upload" /> 
</form> 
<?php 
} 
?> 

i trzeba utworzyć miniaturę filmu przesłanego w innym folderze o tej samej nazwie jakiejkolwiek pomocy? z góry dzięki

Odpowiedz

8

Instalacja ffmpeg powinna być prosta. W dowolnej dystrybucji opartej na Ubuntu/Debianie, użyj apt-get:

apt-get install ffmpeg 

Po tym możesz użyć go do utworzenia miniatury.

Najpierw trzeba uzyskać losową lokalizację czasową z pliku:

$video = $path . escapeshellcmd($_FILES['video']['name']); 
$cmd = "ffmpeg -i $video 2>&1"; 
$second = 1; 
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) { 
    $total = ($time[2] * 3600) + ($time[3] * 60) + $time[4]; 
    $second = rand(1, ($total - 1)); 
} 

Teraz, gdy zmienna $second jest ustawiony. Uzyskać rzeczywiste miniatury

$image = 'thumbnails/random_name.jpg'; 
$cmd = "ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1"; 
$do = `$cmd`; 

Będzie on automatycznie zapisany na miniaturę, aby thumbnails/random_name.jpg (może chcesz zmienić tę nazwę na podstawie przesłanego wideo)

Jeśli chcesz zmienić rozmiar miniatury, użyj parametru -s (-s 300x300)

Zapoznaj się z ffmpeg documentation, aby uzyskać pełną listę parametrów, których możesz użyć.

+0

dzięki za odpowiedzi, ale nadal nie rozumiem - jak przesłać ffmpeg do serwera i zainstalować go za pomocą tego kodu I nie wiem nic na temat Linuksa i jestem nowy na hosting mam cpanel 11.30.5 (build 6) –

+0

ok zapytałem wsparcie hostingu i wrócili do mnie, że ffmpeg nie jest obsługiwane żadne rozwiązanie? –

+0

Jeśli Twoja firma hostingowa nie ma zainstalowanego ffmpeg, to niestety to rozwiązanie nie będzie działać. Czy możesz przełączyć się na hosting, który obsługuje ffmpeg? Wykonaj wyszukiwanie w Google na "shared hosting ffmpeg". Powinno ich być setki. – Tony

2

Albo można to zrobić w przeglądarce z tagu wideo HTML5 i płótnie, patrz: https://gist.github.com/adamjimenez/5917897

+1

Powinna być odpowiedzią. Ffmpeg kinda ssie za to małe zadanie. Zmarnowana na to planty czasu. –

+0

to jest to, czego używam. po zakończeniu przesyłania klient generuje miniaturę i przekazuje dane base64 na serwer. świetny anwser –

Powiązane problemy