我在Centos 6机器的根目录(https://trac.ffmpeg.org/wiki/CompilationGuide/Centos)上安装了成功安装的FFMpeg.
我的apache / php工作区是/ var / www / html
现在我在/ var / www / html目录下成功运行命令以从视频文件中捕获帧.它正在捕捉一个帧.
[root@localhost html]# ffmpeg -i video.mpg -an -ss 30 -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg -s 160x100 frame8 2>&1
我想通过php运行此命令并使用shell_exec()或exec()php函数.我运行该命令的php代码是:
$cmd = "/root/bin/ffmpeg -i /project/app/webroot/videos/video.mpg -ss 00:00:14.435 -f image2 -vframes 1 /project/app/webroot/videothumbnails/example-thumb.jpg";
$locale = 'en_IN.UTF-8';
setlocale(LC_ALL, $locale);
putenv('LC_ALL='.$locale);
echo shell_exec($cmd);
当我试图通过上面的PHP代码运行命令时,我得到以下错误:
sh: ffmpeg: command not found
请帮我解决这个问题.
解决方法:
对于视频缩略图创建,我们使用ffmpeg.
在Linux Systems(centos 6.x)Ffmpeg安装过程和Php示例: –
这个过程在我的centos 6中完成,并使用php创建缩略图.
步骤1: – 请检查您的Linux服务器中是否存在任何现有的ffmpeg.如果可用,请删除该文件.
步骤2: – 对于新的ffmpeg安装,请点击此链接
http://root.uabid.com/compile-ffmpeg-on-centos-6-x/
第3步: – 安装完成后,检查安装了ffmpeg的位置.
Command: whereis ffmpeg
在linux命令行中键入此命令并检查.例如,您的ffmpeg路径(/usr/local/bin / ffmpeg).
在代码中使用此路径.
Php示例: –
<?php
if($extension === 'mp4' OR $extension == 'MP4' )
{
$video = $timestamp.$imagename;
$videoname=substr($imagename,0, -4).$timestamp;
$image = "sites/default/files/content_images/{$videoname}-thumb.jpg";
var_dump($video);
$cmd = "/usr/local/bin/ffmpeg -i /opt/lampp/htdocs/myproject/sites/default/files/content_videos/".$video." -ss 00:00:01.435 -f image2 -vframes 1 /opt/lampp/htdocs/myproject/sites/default/files/content_images/".$videoname."- thumb.jpg";
$cmdstr = $cmd;
$locale = 'en_IN.UTF-8';
setlocale(LC_ALL, $locale);
putenv('LC_ALL='.$locale);
echo exec($cmd);
?>
过程2: –
这适用于静态文件路径:
<?php
$cmd = "/root/bin/ffmpeg -i /var/www/html/project/app/webroot/videos/example.mp4 -ss 00:00:01.435 -f image2 -vframes 1 /var/www/html/project/app/webroot/videothumbnails/example-thumb.jpg";
$cmdstr = $cmd;
$locale = 'en_IN.UTF-8';
setlocale(LC_ALL, $locale);
putenv('LC_ALL='.$locale);
echo exec($cmd);
?>
希望这对你有帮助其他..