gpt4 book ai didi

php - 找到ffmpeg的绝对路径

转载 作者:行者123 更新时间:2023-12-04 04:34:54 25 4
gpt4 key购买 nike

我将 ffmpeg 和 ffmpeg-php 安装到我的专用服务器上,并使用一个小脚本尝试从特定秒中提取图像。

<?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?我需要吗?我已经安装了。

谢谢

enter image description here

最佳答案

如果您使用 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 errorffmpeg只输出错误信息和 -y避免 $finalfilename文件存在的问题。我也压制了所有 STDOUT并且只移动了 STDERR输出到 $stderr多变的。如果您的 exec()由于某种原因调用失败( $exit_status 将不为 0),你会得到 $stderr 上发生的情况大批。

如果我遗漏了什么,请告诉我!

关于php - 找到ffmpeg的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19889217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com