0

我一直在尝试在 RHEL (Redhat Enterprise Linux) 5.6 (Tikanga) 环境中安装 ffmpeg-php v0.6.0。我正在运行 PHP 版本 5.2.17 并安装了以下 ffmpeg 包:

  • ffmpeg-0.6.5-1.el5.rf
  • ffmpeg-devel-0.6.5-1.el5.rf
  • ffmpeg-libpostproc-0.6.5-1.el5.rf

我已按照这些安装说明进行操作。我被困在我运行的步骤上make,我收到以下错误:

In file included from /usr/include/sys/stat.h:105,
                 from /usr/include/php/main/php_streams.h:28,
                 from /usr/include/php/main/php.h:400,
                 from /usr/local/src/ffmpeg-php-0.6.0/ffmpeg-php.c:40:
/usr/include/bits/stat.h:88: error: field 'st_atim' has incomplete type
/usr/include/bits/stat.h:89: error: field 'st_mtim' has incomplete type
/usr/include/bits/stat.h:90: error: field 'st_ctim' has incomplete type
/usr/include/bits/stat.h:149: error: field 'st_atim' has incomplete type
/usr/include/bits/stat.h:150: error: field 'st_mtim' has incomplete type
/usr/include/bits/stat.h:151: error: field 'st_ctim' has incomplete type
In file included from /usr/include/php/main/php.h:406,
                 from /usr/local/src/ffmpeg-php-0.6.0/ffmpeg-php.c:40:
/usr/include/php/TSRM/tsrm_virtual_cwd.h:209: error: expected specifier-qualifier-list before 'time_t'
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg-php.c: In function 'zm_startup_ffmpeg':
/usr/local/src/ffmpeg-php-0.6.0/ffmpeg-php.c:94: warning: implicit declaration of function 'avcodec_init'

一直在爬网寻找其他人是否遇到过类似的问题,到目前为止,我发现这个建议安装旧版本的 ffmpeg-php。

我对使用旧版本的东西不满意,并且想知道是否有其他人遇到上述错误并已成功解决它们,或者他们是否可以为我指出正确的方向来开始解决它们。

4

1 回答 1

0

查找了几个小时后,似乎 time.h 出于某种明显的原因已在 ffmpeg 1.2.1 中使用(这是我测试的)。这导致与操作系统自己的同名文件发生冲突。

虽然我不能用 PHP 编写代码(并且几乎无法阅读 PHP 代码),但我发现了一个由tony2001维护的 git 存储库,他对原始项目进行了更改,并且使用他的存储库帮助我在 CentOS-6.2、CentOS-6.3 上成功安装了它和 CentOS-6.4(对不起,我没有在任何其他版本上测试过这些,但我想如果它适用于 CentOS-6.4,它应该也适用于 RHEL 5.x 和 6.x)

你可以在这里找到回购。

希望这对您将来有所帮助(也许其他人最终会来到这里)

PS:顺便说一句,在撰写此答案时,ffmpeg 2.0 已发布,但我还没有机会对其进行测试

于 2013-08-08T16:43:29.243 回答