Php 找到ffmpeg的绝对路径
我将ffmpeg和ffmpeg-php安装到我的专用服务器上,并使用一个小脚本尝试从特定的第二帧中提取图像Php 找到ffmpeg的绝对路径,php,ffmpeg,ffmpeg-php,Php,Ffmpeg,Ffmpeg Php,我将ffmpeg和ffmpeg-php安装到我的专用服务器上,并使用一个小脚本尝试从特定的第二帧中提取图像 <?php $extension = "ffmpeg"; $extension_soname = $extension . "." . PHP_SHLIB_SUFFIX; $extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname; $timeOffset = "00:00:30"; $videoPath =
<?php
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
$timeOffset = "00:00:30";
$videoPath = "sample.mp4";
$extensi = ".jpg";
$folder = "images/";
$finalfilename = $folder . $randomfilename . $extensi;
echo $extension_fullname; //I AM GETING THIS /usr/lib64/php/modules/ffmpeg.so
if (exec("ffmpeg -ss $timeOffset -i $videoPath -frames:v 1 $finalfilename")){
echo "Done";
}else{
echo "Error";
}
?>
正如您在我的执行命令中所看到的,这是ffmpeg,但是如何找到ffmpeg的绝对路径呢?看看我的截图也许这能帮你告诉我
我的最后一个问题是什么是ffmpeg php?我需要它吗?我已经安装好了
多谢各位
如果使用的是
ffmpeg
可执行文件,则不需要ffmpeg-php
。您可能只想使用ffmpeg
可执行文件,因为与ffprobe
可执行文件一起,您可以做任何事情
我没有理解您的$extension*
变量的要点。要知道安装ffmpeg
的绝对路径,可以使用which
程序:which ffmpeg
您的exec()
调用检查错误,建议您这样使用:
exec("ffmpeg -v error -y -ss $timeOffset -i $videoPath -vframes 1 $finalfilename 2>&1 >/dev/null", $stderr, $exit_status);
if ($exit_status === 0) {
print 'Done! :)';
} else {
print 'Error... :/';
// implode("\n", $stderr) will help you figure out what happened...
}
我添加了-v error
以使ffmpeg
仅输出错误消息,并添加了-y
以避免$finalfilename
文件存在问题。我还抑制了所有STDOUT
,只将STDERR
输出移动到$STDERR
变量。如果您的exec()
调用由于某种原因失败($exit\u status
将为非0),您将得到该$stderr
数组上发生的情况
如果我遗漏了什么,请告诉我 我将分别粘贴我给我的朋友所做的编辑:/usr/lib64/php/modules/ffmpeg.soFFmpeg版本0.6,版权(c)2000-2010 ffmpeg开发人员于2013年11月7日15:35:47构建,gcc 4.4.7 20120313(Red Hat 4.4.7-3)配置:libavutil 50.15。1 / 50.15. 1 libavcodec52.72。2 / 52.72. 2 libav52.64格式。2 / 52.64. 2 libav52设备。2.0 / 52. 2.0 libswscale 0.11。0 / 0.11. 0 sample.mp4:无法从“sample.mp4”中定位208.044输入#0、mov、mp4、m4a、3gp、3g2、mj2:元数据:主要品牌:短跑次要版本:0兼容品牌:iso6avc1mp41持续时间:00:03:18.03和:开始:178.044367,比特率:26 kb/s流#0.0(und):视频:h264、yuv420p、640x360、29.97 tbr、90k tbn,59.94 tbc未识别选项“frames:v”因此您使用的是未识别选项
-frames:v
。。。我想您应该改用-vframes
选项。更新我的答案以使用该答案。:)是的,这是一个未经批准的命令,但我仍然无法得到大拇指。。。我还得到了sample.mp4:无法定位238.044Ermmm,不知道为什么您得到无法定位238.044
,似乎是特定于您的sample.mp4
文件。。。请注意,$finalfilename
使用的是一个统一化的$randomfilename
变量,因此最终得到的是images/.jpg
值,这在Unix系统中意味着一个隐藏文件。我认为,如果您初始化$randomfilename
,它将按预期工作,似乎您可以忽略搜索错误。。。如果不是,则特定于该文件,因为该命令适合您的需要。:)