如何使用PHP的ffmpeg并上传和压缩文件

时间:2015-07-21 06:29:36

标签: php video upload ffmpeg

你好我已经在本地计算机上成功安装了ffmpeg,现在我想知道如何在通过php上传文件到服务器时使用它。 我希望用户上传的所有文件都转换为swf格式。 我也通过php.ini增加了我的上传限制,所以没有upload_mx_size的问题

到现在为止我正在使用此代码

 <?php

$srcFile = "test/Sample.mp4";
$destFile = "/test/Sample22";
$ffmpegPath = "/usr/local/bin/ffmpeg";
$flvtool2Path = "/usr/local/bin/flvtool2";

// Create our FFMPEG-PHP class
$ffmpegObj = new ffmpeg_movie($srcFile);
// Save our needed variables
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
$srcFPS = $ffmpegObj->getFrameRate();
$srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
$srcAR = $ffmpegObj->getAudioSampleRate();
$srcVB = floor($ffmpegObj->getVideoBitRate()/1000); 

// Call our convert using exec() to convert to the three file types needed by HTML5
exec($ffmpegPath . " -i ". $srcFile ." -vcodec libx264 -vpre hq -vpre ipod640 -b ".$srcVB."k -bt 100k -acodec libfaac -ab " . $srcAB . "k -ac 2 -s " . $srcWidth . "x" . $srcHeight . " ".$destFile.".mp4");

exec($ffmpegPath . " -i ". $srcFile ." -vcodec libvpx -r ".$srcFPS." -b ".$srcVB."k -acodec libvorbis -ab " . $srcAB . " -ac 2 -f webm -g 30 -s " . $srcWidth . "x" . $srcHeight . " ".$destFile.".webm");

exec($ffmpegPath . " -i ". $srcFile ." -vcodec libtheora -r ".$srcFPS." -b ".$srcVB."k -acodec libvorbis -ab " . $srcAB . "k -ac 2 -s " . $srcWidth . "x" . $srcHeight . " ".$destFile.".ogv");

?>

不知道这是好还是不行,但当我只是刷新页面时,它就会起作用

 "Fatal error: Class 'ffmpeg_movie' not found in     C:\xampp\htdocs\video\videoupload.php on line 9"  

我检查了文件sample.mp4存在于test文件夹中 请帮我上传视频文件并通过ffmpeg lib将其转换为swf格式

1 个答案:

答案 0 :(得分:0)

您可能缺少一个模块,使用php -m或phpinfo()来查看是否安装了名为“FFmpeg-PHP”的模块。如果缺少它,则需要安装它,如果你想使用该类