我需要在本地主机上安装 ffmpeg PHP 扩展,以便可以测试一些脚本,但我无法弄清楚如何做到这一点。
我有 WampServer 2.0 和 PHP 5.2.9-2,我的操作系统是 Windows XP。请有人给我一步一步的说明。
我在这里找到了一些 Windows 版本:sourceforge.net/projects/ffmpeg-php/files/
我目前所做的:
- 从这里下载 ffmpeg_new:http://sourceforge.net/projects/ffmpeg-php/files/
- 将 php_ffmpeg.dll 从 php5 文件夹复制到 C:\wamp\bin\php\php5.2.9-2\ext
- 将文件从 common 复制到 windows/system32 文件夹
- 将 extension=php_ffmpeg.dll 添加到 php.ini 文件
- 重新启动所有服务(Apache、PHP……)
但是当我尝试使用 ffmpeg 时出现此错误(而且 ffmpeg 甚至没有在 phpinfo() 中列出):
Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use extension=ffmpeg.dll in your php.ini in C:\wamp\www\hunnyhive\application\modules\default\controllers\MyAccountController.php on line 314
答案1
也在这里回答你的问题(因为你也在 stack overflow 上发布了它)...
问题似乎不在于 ffmpeg...警告与 dl 函数的使用有关。多线程 PHP 不支持动态加载任何 PHP 扩展,因此您需要确保将其 .dll 文件放置在其余 php 模块所在的位置。
您真正需要弄清楚的是,为什么尽管 php.ini 中存在“extension=php_ffmpeg.dll”指令,但扩展仍未加载。通常您可以在 apache 错误日志中看到任何启动错误(例如 PHP 表示无法加载库)。此外,您是否查看过 phpinfo() 并确认 ffmpeg 不存在(应该不存在,因为 extension_loaded 返回 false),但也许它以不同的名称存在。
答案2
嘿,使用 extension_loaded() 而不是 dl
答案3
http://sergey89.ru/files/ffmpeg-php-win32-all.zip
- 解压 ffmpeg-php-win32-all.zip
- 将 php_ffmpeg.dll 复制到 \wamp\php4\extension\ (对于 php5 则是 \wamp\bin\php\ext)
- 将 avcodec.dll 和 avformat.dll 以及包中的任何其他文件复制到 \windows\system32\
- 编辑 \wamp\apache\apache2.xx\bin\php.ini - 添加行 extension=php_ffmpeg.dll
- 重新启动 Apache。