php如何实现amr转成mp3

php实现amr转成mp3的方法:1、在服务器安装ffmpeg;2、使用“ffmpeg -i”指令来转换amr为mp3格式;3、在网页端使用html5的audio标签来播放mp3文件即可。

思路

  1. 服务器安装ffmpeg
  2. 使用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)

posted @ 2024-06-23 20:14  温柔的风  阅读(175)  评论(0)    收藏  举报