【问题标题】:ffmpeg not working from phpffmpeg 不能从 php 工作
【发布时间】:2015-02-12 21:35:03
【问题描述】:

我从http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2安装了版本 并且还尝试了 yum 版本,但它对于 youtube-dl 来说还不够新。

我试过export PATH=$PATH:/usr/local/bin/ffmpeg 和 PHP/Apache 仍然找不到 FFmpeg。

Apache 用户在 CentOS 6.5 上运行 PHP 脚本。
从 php 命令行以 root 身份调用我的 youtube-dl.php(使用 FFmpeg)
从 php apache 用户调用我的 youtube-dl.php 可以工作(不适用于 FFmpeg)

我正在尝试做的事情:shell exec youtube-dl(youtube dl 在其二进制代码中调用 FFmpeg,现在可以对其进行修改以添加完整路径)。这有效,但 FFmpeg 部分 我的 youtube-dl.php 文件

$output = shell_exec('youtube-dl -o "/home/test/%(title)s.%(ext)s" '.$url.'      -f bestvideo+bestaudio 2>&1');
echo "<pre>$output</pre>";

# which ffmpeg
/usr/local/bin/ffmpeg

本网站其他页面上有人说 local/bin 用于自定义版本,但我直接从 FFmpeg 下载并进行了标准的 ./configure make install。

完成:

 chmod 755 to /usr/local/bin/ffmpeg

直接将 FFmpeg 作为测试命令运行(有时有效,但在我升级/重新启动/updatedb/etc 时无效)

$output = shell_exec('ffmpeg 2>&1');
echo "<pre>$output</pre>";

结果:

<pre>sh: ffmpeg: command not found</pre>

我阅读了所有这些类似的问题,但它们没有帮助:

FFMPEG PHP 似乎不起作用
FFmpeg 不工作
使用 FFMPEG 录制音频可以在终端中工作,但不能通过 PHP 的 exec()
本地主机上的 ffmpeg-php 权限被拒绝
来自 PHP 的 C++ 程序无法正常工作
FFMPEG 从命令行工作,但不是 PHP
从 php 调用 shellscript - 无法正常工作
使用 ffmpeg 转换文件时 PHP 内部服务器错误 500
PHP 代码在执行 ffmpeg
后未继续执行 ffmpeg 不能从 php 脚本工作,但可以从命令行工作
PHP exec() 不适用于 ffmpeg
ffmpeg 不适用于 PHP exec()
ffmpeg php exec 不工作

【问题讨论】:

  • shell_exec 如何失败?你收到一些错误信息吗?如果没有,请尝试从 shell_exec 中捕获 stderr 并查看其中包含的内容。
  • 我会把stderr命令放在哪里?
  • 你得到的错误是ffmpeg: command not found,所以你需要确保shell可以访问ffmpeg。例如:unix.stackexchange.com/questions/26047/…
  • [youtube] ehcVomMexkY:正在下载 js 播放器 en_US-vflqnkATr 警告:将缓存写入 u'/var/www/.cache/youtube-dl/youtube-sigfuncs/js_en_US-vflqnkATr_40.41.json'失败:回溯(最近一次调用最后一次):OSError:[Errno 13] 权限被拒绝:'/var/www/.cache' [youtube] ehcVomMexkY:正在下载 DASH 清单警告:您已请求多种格式,但未安装 ffmpeg 或 avconv .格式不会被合并 [下载] 目的地:/home/test/f264.mp4
  • 您的PATH 是假的;它应该是/usr/local/bin。运行/usr/local/bin/ffmpeg 时会得到什么输出?

标签: php ffmpeg youtube-dl


【解决方案1】:

解决方案对我有用。 我按照这里的教程安装ffmpeg:http://www.wikihow.com/Install-FFmpeg-on-Windows

设置 PATH 然后我从命令提示符检查 ffmpeg –version 是否正常工作。

然后我尝试使用 youtube-dl(youtube 链接)-f bestvideo+bestaudio 下载 1080p 视频,但收到相同的消息:“警告:您已请求多种格式,但未安装 ffmpeg 或 avconv。格式胜出不合并。”当然是安装了。

然后我以管理员身份打开命令提示符,尝试了同样的方法,终于成功了。

【讨论】:

  • 首先,欢迎堆栈溢出!链接到文档或教程是个好主意。但是链接可能会中断。因此,请始终尝试在 S.O. 上概述答案。也是。 (即使只是没有以下详细信息的基本步骤也足够了!):)
【解决方案2】:
  • 第 1 步: cd ..

  • 第 2 步: cd /usr/bin

  • 第 3 步: wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.latest.tar.gz

  • 第 4 步: tar -xvzf ffmpeg.static.32bit.latest.tar.gz

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 2013-08-19
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2018-02-03
    • 2017-08-25
    • 2018-04-11
    相关资源
    最近更新 更多