php如何实现amr转成mp3
php实现amr转成mp3的方法:1、在服务器安装ffmpeg;2、使用“ffmpeg -i”指令来转换amr为mp3格式;3、在网页端使用html5的audio标签来播放mp3文件即可。
思路
- 服务器安装ffmpeg
- 使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数执行即可)
一、服务器安装ffmpeg以cenos为例
https://www.cnblogs.com/wt645631686/p/18263826
1. 首先安装系统编译环境
yum install -y automake autoconf libtool gcc gcc-c++ #CentOS
2. 编译所需源码包
#yasm:汇编器,新版本的ffmpeg增加了汇编代码 wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar -xzvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make make install #lame:Mp3音频解码 wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz tar -xzvf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure make make install #amr支持 wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz tar -xzvf opencore-amr-0.1.3.tar.gz cd opencore-amr-0.1.3 ./configure make make install #amrnb支持 wget http://www.penguin.cz/~utx/ftp/amr/amrnb-11.0.0.0.tar.bz2 tar -xjvf amrnb-11.0.0.0.tar.bz2 cd amrnb-11.0.0.0 ./configure make make install #amrwb支持 wget http://www.penguin.cz/~utx/ftp/amr/amrwb-11.0.0.0.tar.bz2 tar -xjvf amrwb-11.0.0.0.tar.bz2 cd amrwb-11.0.0.0 ./configure make make install
#ffmpeg
wget https://ffmpeg.org/releases/ffmpeg-6.0.tar.bz2
tar xjf ffmpeg-6.0.tar.bz2
cd ffmpeg-6.0
./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared make make install #加载配置 #最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。 ldconfig
3.使用方法
ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr #MP3转换AMR ffmpeg -i 1.amr 1.mp3 #AMR转换MP3
php使用案例
$root_path = root_path(); $conversion_fileUrl = str_replace('amr','mp3',$fileUrl); $shell_exec = "ffmpeg -i {$root_path}public/{$fileUrl} {$root_path}public/{$conversion_fileUrl}"; shell_exec($shell_exec); $fileUrl = $conversion_fileUrl;
支持完整的音频格式转化,用最新的。包含awb
✅ 步骤 1:下载并安装 opencore-amr(替代 amrwb-11.0.0.0.tar.bz2)
Bash
编辑
cd /tmp
# 下载官方 opencore-amr(推荐)
wget https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.6.tar.gz
# 解压
tar xf opencore-amr-0.1.6.tar.gz cd opencore-amr-0.1.6
# 配置、编译、安装
./configure --prefix=/usr/local --enable-shared make -j$(nproc) sudo make install
# 更新动态库缓存
sudo ldconfig
✅ 这个版本等同于你尝试下载的 amrwb-11.0.0.0.tar.bz2,但来源更稳定。
✅ 步骤 2:验证是否安装成功
Bash
编辑
# 检查头文件
ls /usr/local/include/opencore-amrwb/
# 检查库文件
ls /usr/local/lib/libopencore-amrwb.*
你应该看到 libopencore-amrwb.so 等文件。
✅ 步骤 3:重新配置 FFmpeg(确保启用 AMR-WB 支持)
Bash
编辑
cd /path/to/ffmpeg-6.0 make clean ./configure \ --disable-asm \ --enable-libmp3lame \ --enable-libopencore-amrwb \ --enable-gpl \ --enable-nonfree \ --enable-version3 \ --prefix=/data/app/ffmpeg \ --enable-shared \ --enable-pic \ --extra-cflags="-I/usr/local/include" \ --extra-ldflags="-L/usr/local/lib -Wl,-rpath=/data/app/ffmpeg/lib"
🔺 --extra-cflags 和 --extra-ldflags 确保 FFmpeg 能找到你手动安装的 opencore-amr。
✅ 步骤 4:编译并验证
Bash
编辑
make -j$(nproc)
make install
验证 AMR-WB 解码器是否启用:
编辑
/data/app/ffmpeg/bin/ffmpeg -decoders | grep amrwb
输出应包含:
Text
编辑
DEAI. amrwb AMR-WB (Adaptive Multi-Rate Wideband)
浙公网安备 33010602011771号