Friday, February 18, 2011

FFMPEG for Windows

Hi,

FFMPEG has been a very interesting topic for a very long time. This post will guide you for enabling ffmpeg and all its functionality under Windows environment. I have been using XAMPP as my local server and this following method works like charm to me. But if you are using anything else, then you need to make the changes accordingly (e.g. the path of php/extension's direcory)

So here is the trick:


Step 1
Install xampp, use latest version. After installation there should be a directory C:\xampp
In this example i use C:\xampp as default directory.

Step 2
Check if gd2 is installed, you can do this by using phpinfo() in you script.

Step 3
Download ffmpeg.exe from one of the following links:
http://ffdshow.faireal.net/mirror/ffmpeg/
http://arrozcru.no-ip.org/ffmpeg_builds
http://ffdshow.faireal.net/mirror/ffmpeg/
http://www.paehl.com/open_source/?Convert_Tools:FFMPEG
http://oss.netfarm.it/mplayer-win32.php

Step 4
Unpack the downloaded zip or 7z file, three files should show up namely ffmpeg.exe, ffplay.exe, pthreadGC2.dll .

Step 5
Download the ffmpeg windows dll files:
http://azzerti.free.fr/php_ffmpeg_win32.zip

Step 6
Unpack the downloaded zip file, five dlls should show up namely php_ffmpeg_20050123.dll, php_ffmpeg_20050212.dll, php_ffmpeg_20050618.dll and also avcodec.dll and avformat.dll

Step 7
Copy 1 of 3 dlls which you've unpacked in step 6 into C:\xampp\php\extensions. Rename the dll to php_ffmpeg.dll

Step 8
Open your php.ini file which you find in C:\xampp\php .Add the following line to the list with dlls:
extension=php_ffmpeg.dll
Check also if extension=php_gd2.dll is uncommented. If not then remove the ;

Step 9
Copy the avcodec.dll and avformat.dll which you've unpacked in step 6 to C:\WINDOWS\system32

Step 10
Copy pthreadGC2.dll which was unpacked in step 4 to C:\WINDOWS\system32

Step 11
Restart xampp

Simple Example
Step 12
Create a directory in C:\xampp\htdocs for example www.test.dev\www
C:\xampp\htdocs\www.test.dev\www

Step 13
Open the httpd.conf file, this one you find in C:\xampp\apache\conf
Add under the line
NameVirtualHost localhost:80

the next data
<VirtualHost localhost:80>
ServerName www.test.dev
DocumentRoot C:/xampp/htdocs/www.test.dev/www
</VirtualHost>

Step 14
Find the hosts file on your computer, somewhere in the windows directory and add the following line:
127.0.0.1 www.test.dev

Step 15
Restart xampp

Step 16
Make a php file in the DocumentRoot (C:\xampp\htdocs\www.test.dev\www) for example test.php

Step 17
Add a flv file to the DocumentRoot. In this example i call it wattan.flv.

Step 18
Copy ffmpeg.exe which you've unpacked in step 4 into the DocumentRoot.(C:\xampp\htdocs\www.test.dev\www)

Step 19
Add the following code to the test.php file:
<?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;
}
?>

Step 19
Open the url http:\\www.test.dev\test.php in firefox.

Step 20(Most Important)
ENJOY!!! ;)


No comments:

Post a Comment