【发布时间】: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