一、下载安装
1、官方下载地址:Download FFmpeg
2、下载完上传到服务器然 然后解压就算安装完成了
tar -xf ffmpeg-git-amd64-static.tar.xz
3、然后配置一下全局变量(当然也可以不用配置 使用的时候带上文件路径就行)
cd /usr/bin
ln -s /root/ffmpeg-git-20231006-amd64-static/ffmpeg ffmpeg
二、在PHP中用exec()函数运行ffmpeg命令处理音频
1、php.ini中exec()函数禁用去掉 保存 重启php
2、需要给执行命令用户设置权限 找到/etc/sudoers 这个文件 添加一行
比如给www用户添加权限 大概意思就是 www用户用exec()函数执行命令 不需要验证密码
www ALL=(ALL) NOPASSWD: ALL
3、php中执行ffmpeg命令压缩音频
exec('sudo ffmpeg -i /www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde.mp3 -b:a 69k -y /www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde_2.mp3 2>&1',$log,$status);
var_dump($log,$status);
命令参数简单解释:
exec('sudo (使用有权限的用户去执行命令)
ffmpeg -i (指定要转换的音频文件)
/www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde.mp3 (被转换的音频文件全路径)
-b:a 69k (指定要被转换成的比特率 一半语音聊天的音频大概是 128k 所以69k差不多是压缩了一倍 这个我不懂 我测试的结果大概是这样)
-y (生成后的文件有相同名字覆盖掉)
/www/wwwroot/test.com/public/uploads/media/20231019/efce4e11df5a332a70c00b3edb430bde_2.mp3 (生成后的文件存放全路径)
2>&1 (加上这个后 如果执行没成功 会有提示原因)',
$log(执行结果记录),
$status(执行返回状态 0 表示执行成功));
三、完成(一定按照步骤来是能转换成功的)
关于ffmpeg的参数说明 可以自行搜索查阅.