为php安装ffmpeg

时间:2016-02-02 21:14:42

标签: php ffmpeg ffmpeg-php

我已经在互联网上搜索超过3天了,找不到任何有关如何安装ffmpeg for php的明确解释的内容。我目前在我的Mac命令行上正确安装了ffmpeg但是如何在我的PHP脚本中使用它是超出我的。如何为php安装ffmpeg?任何帮助都会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

ffmpeg是一组可执行程序,而不是API。过去有一个我知道的项目构建了一个php扩展,但它并不健壮,并且由于多种原因从未真正成为可行的,其中最重要的是ffmpeg有很多不同的选项和构建

几年前,我的任务是为社交网络创业公司构建一个音频和视频编码系统,利用PHP作为中间件,所以我已经完成了这个精确的练习。

最具挑战性的方面之一是提出了ffmpeg的工作编译版本以及我们想要的所有编码器。在我们的例子中,我们的托管环境是AWS,我们使用的是亚马逊Linux服务器,因此在此过程中出现了一些小问题,以及我不得不追逐的补丁。有些软件包有ffmpeg,但是它们已经过时了,而且缺少我们需要的关键功能。让事情发挥作用的唯一方法是获取ffmpeg源并编译它,以及我们使用的各种编解码器的源,主要是获取mpeg4视频和兼容音频。如果你不方便这样做,你可能无法让事情发挥作用。

关于它的PHP方面,我最终使用了上面评论中建议的PHP-FFMpeg库,但我确实对它进行了分叉并进行了许多适用于我们的自定义,但是它们并没有真正有助于上游。随后,库的维护者解决了我遇到的许多问题,现在它是一个更强大的库,如果您尝试创建自己的包装器,应该可以为您节省很多问题。

总结您的服务器需要:

  • ffmpeg的工作编译版本及其关联的助手
    可能需要的程序取决于你将会是什么 使用您正在制作的媒体。例如,有一个单独的媒体内省程序(ffprobe),用于确定要编码的媒体的特征。
  • PSR-0 / Composer兼容项目。我们是建立在Symfony 2.x之上,但这不是一个要求。我确实想提一下,因为该项目确实推动了包含php' exec'的symfony组件的改进和稳定性。任何调用外部程序的努力的核心功能。

按照说明阅读API,您应该能够获得一个示例编码以使用PHP,但请记住ffmpeg可以处理文件,并且您需要仔细考虑许多与文件相关的问题(原始文件)文件,渲染文件和命名,临时文件位置)除非你做一些微不足道的事情,否则你必须处理所有这些事情。在我们的例子中,这些程序是异步命令行/批处理的,并且需要花费大量的时间和精力来确定一种扩展和高效的方法。毋庸置疑,编码视频可能需要花费大量时间,并且不是您想要在最终用户上传的单片php脚本中执行的操作,然后在您在同一脚本中执行所有处理时等待!

我知道您正在尝试在Mac上执行此操作。这真的是您的生产部署的目标环境吗?这是一个挑剔和平台依赖的过程,我不认为尝试在你的Mac上获得一个hacky版本是可取的,因为获取ffmpeg的过程,以及确切的版本和组件是高度的对你的成功而言非常重要。