如何在 CentOS 上安装 FFmpeg 和 FFmpeg-PHP 扩展

在本教程中,我们将向您展示如何在 CentOS 上安装 FFmpeg 和 FFmpeg-PHP 扩展。 对于那些不知道的人,FFmpeg 是一个跨平台的流式音频和视频以及录制和转换解决方案。 还有一个很棒的 PHP 包,称为 FFmpeg-PHP,它允许从 PHP 脚本中轻松使用 FFmpeg。 在本教程中,我将向您展示安装 FFmpeg 和 FFmpeg-PHP(PHP 扩展)的简单方法。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。

先决条件

  • 运行以下操作系统之一的服务器:CentOS 或任何其他基于 RHEL 的发行版。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一种 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

在 CentOS 上安装 FFmpeg

第 1 步。首先,让我们首先确保您的系统是最新的。

sudo yum clean all
sudo yum update
sudo yum install php-gd php-devel

Step 2. 要安装,首先您必须将与您的 CentOS/RHEL 版本对应的 DAG yum 存储库信息添加到 yum:

nano /etc/yum.repos.d/dag.repo

将以下文本添加到文件并保存:

[dag]
name=DAG RPM Repository
baseurl=https://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1

添加 Dag 存储库后,使用 yum 使用以下命令安装 FFmpeg。

rpm --import https://apt.sw.be/RPM-GPG-KEY.dag.txt
yum install ffmpeg ffmpeg-devel ffmpeg-libpostproc 

FFmpeg 基本命令

#ffmpeg -version:            show version
#ffmpeg -formats:            show available formats
#ffmpeg -codecs:             show available codecs
#ffmpeg -decoders:           show available decoders
#ffmpeg -encoders:           show available encoders
#ffmpeg -bsfs:               show available bit stream filters
#ffmpeg -protocols:          show available protocols
#ffmpeg -pix_fmts:           show available pixel formats
#ffmpeg -layouts:            show standard channel layouts
#ffmpeg -sample_fmts:        show available audio sample formats
#ffmpeg -filters:            show available filters

在 CentOS 上安装 FFmpeg-PHP 扩展

步骤 1. 下载 最新的 ffmpeg-php 版本

wget https://nchc.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
tar -xjf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize
./configure
make
make install

如果你得到 [ffmpeg_movie.lo] 编译FFmpeg-PHP时出现错误1,那么你需要做:

#nano ffmpeg_movie.c
Changes in ffmpeg_movie.c:
#row 311: list_entry *le; to zend_rsrc_list_entry *le;
#row 346: list_entry new_le; to zend_rsrc_list_entry new_le;
#row 360: hashkey_length+1, (void *)&new_le, sizeof(list_entry), to hashkey_length+1, (void *)&new_le,sizeof(zend_rsrc_list_entry),

在 CentOS 上安装 FFmpeg 和 FFmpeg-PHP 扩展

将 FFmpeg.so 模块复制到 PHP 默认模块位置。 现在你必须编辑 php.ini 使用 FFmpeg.so 模块启用 FFmpeg-PHP 支持的文件。

#nano /etc/php.ini

将以下两行放在 php.ini 文件的末尾

[ffmpeg]
extension=ffmpeg.so

现在应该安装 FFmpeg-PHP 扩展。 您可以通过创建一个名为 info.php 的文件来检查 /var/www/html/ 内容如下:

<?php
phpinfo();
?>

Save