当前位置: 首页 > 知识库问答 >
问题:

ffmpeg可以从终端工作,但不能通过php脚本工作

越姚石
2023-03-14

我必须得到我使用ffmpeg的视频缩略图。在我的服务器上,我从ssh运行ffmpeg命令,然后它运行正常,但从php exec函数它不运行,它给出错误/usr/bin/ffmpeg:没有这样的文件或目录,但ffmpeg安装在这个位置usr/bin/ffmpeg。我的源代码是:

$ffmpeg = '/usr/bin/ffmpeg';

$videoname = 'myvideo.mp4';

$video = $_SERVER['DOCUMENT_ROOT'].'/uploads/videos/'.$videoname;

$image = $_SERVER['DOCUMENT_ROOT'].'/uploads/thumbs/thumb.jpg';

$second = 1;

$cmd = "$ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";

exec($cmd);

请提供任何解决方案。

共有2个答案

金嘉言
2023-03-14

使用shell_exec而不是exec

$ffmpeg = '/usr/bin/ffmpeg';

$videoname = 'myvideo.mp4';

$video = $_SERVER['DOCUMENT_ROOT'].'/uploads/videos/'.$videoname;

$image = $_SERVER['DOCUMENT_ROOT'].'/uploads/thumbs/thumb.jpg';

$second = 1;

$cmd = "$ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";

shell_exec($cmd);
鲁峰
2023-03-14

用这个更新你的代码,你会很好的去做。

`$ffmpeg='/usr/bin/ffmpeg';

myvideo.mp4

$video=$_SERVER['DOCUMENT_ROOT'].

_SERVER['DOCUMENT_ROOT']。'/上传/拇指/thumb.jpg';

$second=1;

$cmd=“$ffmpeg-i”$视频“'-deinterlace-an-ss$second-t00:00:01-r1-y-vcodecmjpeg-fmjpeg'$形象"' 2

有时exec()函数未命中的行为是由于变量周围缺少引号。

 类似资料:
  • 我从安装了这个版本http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2 还尝试了yum版本,但对于youtube-dl来说还不够新。 我尝试了,PHP/Apache仍然找不到ffmpeg。 Apache用户在CentOS 6.5上运行PHP脚本<打电话给我的youtube dl。以根用户身份从php命令行调用php(使用FFmpeg) 调用my youtu

  • 我有一个在pi模型3B上运行的selenium脚本,当使用 /usr/bin/python /home/pi/main.py手动运行时,该脚本运行得很好,但是当使用crontab或LXDE-pi/autostart运行它时,它只是启动浏览器,不会继续做它应该做的事情。我试图使用日志库记录信息,但没有看到任何有用的东西。起初我认为这是因为selenium没有随sudo安装,但它在python随sud

  • 我得到了一个使用Hibernate连接到数据库并检索数据的方法。当作为独立的java应用程序执行时,该方法运行良好。然而,当我试图在tomcat上部署它并作为网络服务调用时,我得到了一个错误,如下所示。我的方法是第一个也是唯一一个建立DB连接的地方,即。我没有在tomcat中定义任何数据源。 我的hibernate配置文件: 我正在使用以下hibernate模块: hibernate注释3.4.0

  • 我正在尝试在节点中运行lighthouse脚本。JS(我是新手)。我按照最初的指示来这里https://github.com/GoogleChrome/lighthouse/blob/master/docs/readme.md#using-以编程方式。我能够在package manager控制台(Visual Studio 2017)中完成前面的步骤: 然而,我确实得到了一个初始警告,NPM只支持

  • 编辑:getResourceAsStream()与FileInputStream 这是我找到的最好的解释。就我个人而言,在尝试了InputStream的所有不同子类后,我觉得FileInputstream()返回的InputStream和getResourceAsStream()返回的InputStream的实现在某些方面略有不同(导致与javax.xml.parsers.不兼容)。 我会把这个打

  • 正如你在下面看到的,我得到了矛盾的结果。感谢所有的帮助。 Firebase控制台查询 Firebase控制台查询结果 密码 代码日志