Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Uploading video using PHP

Posted on 2009-05-18
1
Medium Priority
?
451 Views
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 http://www.myownserver.info/index.php/step-4-additonal-settings/11-installffmpeg.html

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" 
size="26">
 
<input type="submit" name="submit" value="upload" >
 
</form>
 
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
+++++uploadvideopro.php+++++++++++++++++++++++++++++++++++++++++++++++++
 
<?php
 
/***************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++)
 
if($array_path[$i]!="")
 
$dynamic_path =$dynamic_path."/".$array_path[$i];
 
/**********************************************************/
 
/******************set folders*****************************/
 
$flvpath = "flvfiles/";
 
$moviepath = "movies/" ;
 
chmod($moviepath,0777);
 
chmod($flvpath,0777);
 
/*********************************************************/
 
 
/******************Upload and convert video *****************************/
 
 
 
if(isset($_FILES["x_URL"]))
 
{
 
$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");
 
 
}
 
else
 
{
 
die("The file was not uploaded");
 
}
 
}
 
 
 
else
 
{
 
die("Please upload file only with avi, wmv, mov or mpg extension!");
 
}
 
}
 
else
 
{
 
die("File not found");
 
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
?>
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Open in new window

0
Comment
Question by:bosscat
1 Comment
 
LVL 8

Accepted Solution

by:
biztiger earned 1500 total points
ID: 24543677
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.
0

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
This holiday season, we’re giving away the gift of knowledge—tech knowledge, that is. Keep reading to see what hacks, tips, and trends we have wrapped and waiting for you under the tree.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
Suggested Courses

581 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