php - exec(ffmpeg) 不在 php 中执行,但会在终端中执行?

标签 php ffmpeg

我有一个允许用户上传视频的网站,并且我安装了 ffmpeg 的 VPS 服务器,安全模式已关闭,并且在我的终端中测试了命令,但是当我尝试在 exec() 中运行命令时,它可以在 php 脚本中运行,甚至shell_exec() 它不执行。下面是我的代码(更改了一些隐私变量)。

$video_name = $_FILES["post_vid"]["name"];
$Vurl = "/folder1/folder2/$vrand_file_name/$video_name";
$VnewName = $vrand_vid_name .".mp4";
$VurlNew = "/folder1/folder2/$vrand_file_name/$VnewName";
$convertold = "/home/user/directory/domain.com/$Vurl";
$convertNew = "/home/user/directory/domain.com/$VurlNew" ;
$ffmpegC = "/user/local/bin/ffmpeg";
exec($ffmpegC.' -y -i "'.$convertold.'" -f mp4 "'.$convertNew.'"');

我在运行正常的 move_uploaded_file() 之后有代码。
还检查了,我的 php 使用与我的终端相同的用户...
对此的任何见解都会很棒,在此先感谢。

最佳答案

请在 exec 附近修复您的代码如下,你能试试吗?

$command = $ffmpegC.' -y -i "'.$convertold.'" -f mp4 "'.$convertNew.'" 2>&1';  
exec($command, $array);
var_dump($array);
exit;

通过使用 2>&1 , stderror输入到 $array .

所以你可以看到原因。

祝你好运!

关于php - exec(ffmpeg) 不在 php 中执行,但会在终端中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666824/

相关文章:

为输出流打开编码器时出现 PHP-FFMpeg 错误

video - ffmpeg 循环未找到错误

video - 如何使用 C/C++ 流式传输视频

php - 在 PHP 和 MySQL 中为联系表单创建 SQL 脚本

php - MySQL 或 Yii2 ActiveRecord

php - 如何在简单的 php 邮件脚本中仅显示发件人的姓名而不是电子邮件地址

audio - 合并 2 个音频流和一个视频流

node.js - ffmpeg - ffmpeg aws lambda 函数错误

php - 显示来自表连接 mysql 的某些 id

php - 有什么方法可以识别 PHP 中的 F5 刷新?