【问题标题】:FFMpeg working in command line but not in shell_execFFMpeg 在命令行中工作,但不在 shell_exec 中
【发布时间】:2015-04-28 21:13:17
【问题描述】:

当我使用命令行 (ffmpeg -idust.mp4 -s 320x240 video.flv 2>&1) 转换视频时,它的转换效果很好。但是当我使用 php 代码时它没有。代码如下:

echo "Starting ffmpeg...\n\n";
$ffmpeg = "~/ffmpeg_sources/ffmpeg";
echo exec("$ffmpeg  -i dust.mp4 -s 320x240 video.flv 2>&1");
echo "Done.\n";

输出是:

正在启动 ffmpeg... sh: 1: ~/ffmpeg_sources/ffmpeg: not foundDone.

任何帮助将不胜感激。

提前致谢

【问题讨论】:

  • 从命令行运行时您没有使用~/ 的绝对位置,因此它可能会在您的路径上的其他地方找到它。在您的脚本中,您专门使用了~/ffmpeg_sources/ffmpeg,因此如果这不是可执行文件所在的位置,您将收到该错误。尝试从命令行运行which ffmpeg 以找出真实位置。或者只是设置$ffmpeg = "ffmpeg" 并让路径找到它。
  • 你的 ffmpeg 安装在哪里?告诉我路径
  • 只需输入命令(whereis ffmpeg)并点击回车即可找到确切位置。只需告诉我该路径
  • 感谢伙伴...的帮助

标签: php video ffmpeg


【解决方案1】:

我已经回答了同样的问题,只要看看那个答案,你就会知道你犯了什么错误。

我们使用 ffmpeg 创建视频缩略图。

在Linux系统(centos 6.x) Ffmpeg安装过程及Php示例:-

这个过程在我的centos 6中完成,并使用php创建了缩略图。

只需点击此链接Ffmpeg for video thumbnail creation

【讨论】:

  • 谢谢...我想通了
【解决方案2】:

使用完整路径:

echo exec("/root/example/ffmpeg_sources/ffmpeg -i /home/site/etc/dust.mp4 -s 320x240 /home/site/etc/video.flv 2>&1");

确保 php 拥有read/execute 权限:

/root/example/ffmpeg_sources/ffmpeg

写入权限:

/home/site/etc/

和读取权限:

/home/site/etc/dust.mp4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多