Uploading video using PHP

Posted on 2009-05-18
Last Modified: 2012-05-07
Dear all,

i manage to upload my videos using the following script but unable to convert it to flv nor display the thumbnails. I have followed the ffmpeg installation from this site

i'm using windows running on xampp apache on localhost.

may i know why and is thr any other alternative for me? thanks!
++++++++ uploadvideo.html++++++++++++++++++++++

<form name="frm" action="uploadvideopro.php" method="post" enctype="multipart/form-data" >

<input name="x_URL" type="file" class="form1" 


<input type="submit" name="submit" value="upload" >





/***************Load FFMPEG *********************************/

$extension = "ffmpeg";

$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;

$extension_fullname = PHP_EXTENSION_DIR ."/". $extension_soname;

// load extension

if (!extension_loaded($extension)) {

dl($extension_soname) or die("Can't load extension $extension_fullname\n");



/*****************Get the path to Extention ****************/

$array_path = explode("/",$_SERVER['SCRIPT_FILENAME']);

$dynamic_path = "";

for ($i=0;$i<sizeof($array_path)-1;$i++)


$dynamic_path =$dynamic_path."/".$array_path[$i];


/******************set folders*****************************/

$flvpath = "flvfiles/";

$moviepath = "movies/" ;




/******************Upload and convert video *****************************/



$fileName = $_FILES["x_URL"]["name"];

$fileNameParts = explode( ".", $fileName );

$fileExtension = end( $fileNameParts );

$fileExtension = strtolower( $fileExtension );

if($fileExtension=="avi" || $fileExtension=="wmv" || $fileExtension=="mpeg" 

|| $fileExtension=="mpg" || $fileExtension=="mov" )


if ( move_uploaded_file($_FILES["x_URL"]["tmp_name"],$moviepath.$_FILES["x_URL"]["name"]) 



if( $fileExtension == "wmv" ) {

exec("ffmpeg -i ".$dynamic_path."/".$moviepath."".$fileName." 

-sameq -acodec mp3 -ar 22050 -ab 32 -f flv -s 320x240 ".$dynamic_path."/".$flvpath."myflv.flv");


if( $fileExtension == "avi" || $fileExtension=="mpg" || 

$fileExtension=="mpeg" || $fileExtension=="mov" ) {

exec("ffmpeg -i ".$dynamic_path."/".$moviepath."".$fileName." 

-sameq -acodec mp3 -ar 22050 -ab 32 -f flv -s 320x240 ".$dynamic_path."/".$flvpath."myflv.flv");


/******************create thumbnail***************/

exec("ffmpeg -y -i ".$dynamic_path."/".$moviepath."".$fileName." 

-vframes 1 -ss 00:00:03 -an -vcodec png -f rawvideo -s 110x90 ".$dynamic_path."/".$flvpath."myflv.png");




die("The file was not uploaded");





die("Please upload file only with avi, wmv, mov or mpg extension!");





die("File not found");




Open in new window

Question by:bosscat
1 Comment

Accepted Solution

biztiger earned 500 total points
Comment Utility
For converting the video, always give the full path name of ffmpeg.exe on the exec function.

That means if you are converting wmv file, try this:-

if( $fileExtension == "wmv" ) {
exec("C:\ffmpeg -i ".$dynamic_path."/".$moviepath."".$fileName."
-sameq -acodec mp3 -ar 22050 -ab 32 -f flv -s 320x240 ".$dynamic_path."/".$flvpath."myflv.flv");

It assumes that ffmpeg is installed on c:\ (that means the path to ffmpeg.exe is c:\ffmpeg.exe)

Also your codesnippet will work if you add ffmpeg as a Environment Variable and put the path of the ffmpeg.exe as the value of environment variable.

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now