PHP - Instalare ffmpeg-php pe Windows (XAMPP)

vineri, 17 aprilie 2009 ·

Pasi simpli pentru instalarea ffmpeg, ffmpeg-php in windows.


Pasul 1
Instalati xampp. Instalati ultima versiune. Lasati calea de baza pe care o stabileste agentul de instalare si anume: "C:\xampp".

Pasul 2
Verificati da aveti instalat gd2. Puteti verifica cu ajutorul functiei phpinfo(); Creaza un fisier php simplu si ruleaza-l (ex: localhost/numefisier.php):
phpinfo();
?>

Pasul 3
Downloadeaza ffmpeg.exe de pe unul din rumatoarele link-uri (recomand link 1) :

Pasul 4
Dezarhiveaza arhiva .7z sau .zip downloadata la pasul 3. In ea se gasesc urmatoarele fisiere: ffmpeg.exe, ffplay.exe, pthreadGC2.dll . (poti sa le pui intr-un fisier separat ca sa iti fie mai usor)

Pasul 5
Downloadeaza dll-urile ffmpeg pentru windows de AICI .

Pasul 6
Dezarhiveaza zip-ul downlaodat anterior si in el vei gasi urmatoarele fisiere (precizez fisierele din fiecare .zip ca in cazul in care un link este mort sa poti cauta si in alta parte fisierele necesare): php_ffmpeg_20050123.dll, php_ffmpeg_20050212.dll, php_ffmpeg_20050618.dll si deasemenea avcodec.dll si avformat.dll

Pasul 7
Copiaza primele 3 dll-uri dezarhivate la pasul 3 (php_ffmpeg_20050123.dll, php_ffmpeg_20050212.dll, php_ffmpeg_20050618.dll ) in C:\xampp\php\extensions . Redenumeste ultimul dll astfel: php_ffmpeg.dll.

Pasul 8
Deschide php.ini din C:\xampp\php . In lista cu dll-uri adauga urmatoarea linie:
extension=php_ffmpeg.dll
Verifica daca linia: extension=php_gd2.dll are ";" in fata. Daca da elimin-o.

Pasul 9
Copiaza avcodec.dll si avformat.dll (downloadate la pasul 6) in C:\WINDOWS\system32

Pasul 10
Copiaza pthreadGC2.dll (de la pasul 4) in C:\WINDOWS\system32

Pasul 11
Restarteaza xampp. (inchide-l si deschide-l)

Pasul 12
Creaza un director nou in C:\xampp\htdocs . In exemplu o sa folosesc: \www.test.dev\www
. In final o sa arate astfel C:\xampp\htdocs\www.test.dev\www .

Pasul 13
Intra in c:\xampp\apache\conf si deschide httpd.conf (cu notepad).
Cauta linia :
NameVirtualHost localhost:80
sau la altele: ServerName localhost:80

si adaugati sub aceasta linie urmatorul cod:
< VirtualHost localhost:80 >
ServerName www.test.dev
DocumentRoot C:/xampp/htdocs/www.test.dev/www
</VirtualHost >


Pasul 14
Cauta in calculator prin fisierul WINDOWS fisierul "hosts" si deschide-l cu notepad.
si adauga urmatoarea linie de cod:
127.0.0.1 www.test.dev

Pasul 15
Restarteaza xampp

Pasul 16
Creaza un fisier php in folderul creat ( C:\xampp\htdocs\www.test.dev\www). O sa-i spunem "test.php";

Pasul 17
Tot in acest folder copiaza un fisier flv (in exemplu o sa folosesc video.flv)

Pasul 18
Copiaza ffmpeg.exe de la pasul 4 in acest folder (C:\xampp\htdocs\www.test.dev\www)

Pasul 19
In test.php introdu urmatorul cod php:
<?php
$ffmpegpath = "ffmpeg.exe";
$input = 'wattan.flv';
$output = 'wattan.jpg';

if (make_jpg($input, $output)){
echo 'succes';
}else{
echo 'eroare';
}

function make_jpg($input, $output, $fromdurasec="01") {
global $ffmpegpath;

if(!file_exists($input)) return false;
$command = "$ffmpegpath -i $input -an -ss 00:00:$fromdurasec -r 1 -vframes 1 -f mjpeg -y $output";

@exec( $command, $ret );
if(!file_exists($output)) return false;
if(filesize($output)==0) return false;
return true;
}
?>


Acum executa scriptul de la urmatoarea adresa: http:\\www.test.dev\test.php

Pasul 20
if($ok)
echo "Felicitari.";
else
echo "Dute la pasul 1 sau lasa un comentariu";
;)





3 comentarii:

Echipa BlogCluj.ro spunea...
11 mai, 2009  

Buna ziua,

In lipsa unei adrese de e-mail publice am recurs la aceasta medoda de comunicare.

BlogBacau.ro va invita sa accesati pagina: http://blogcluj.ro/special pentru mai multe detalii.

Va multumim anticipat.

Cu stima,
Echipa BlogCluj.ro

www.blogcluj.ro
contact@blogcluj.ro

123 spunea...
27 iunie, 2009  

care este codul php de la pasul 19?

Jorj Daniel spunea...
28 iunie, 2009  

Acesta e codul:
<?php
$ffmpegpath = "ffmpeg.exe";
$input = 'wattan.flv';
$output = 'wattan.jpg';

if (make_jpg($input, $output)){
echo 'success';
}else{
echo 'bah!';
}

function make_jpg($input, $output, $fromdurasec="01") {
global $ffmpegpath;

if(!file_exists($input)) return false;
$command = "$ffmpegpath -i $input -an -ss 00:00:$fromdurasec -r 1 -vframes 1 -f mjpeg -y $output";

@exec( $command, $ret );
if(!file_exists($output)) return false;
if(filesize($output)==0) return false;
return true;
}
?>


L-am pus si in postare.

Trimiteți un comentariu

Site Advertise