关于用ffmpeg转换音频文件amr格式为aac格式记录。包含java代码以及liunx安装

发布时间 2023-08-03 14:17:37作者: 善逸a

在liunx上先执行

/usr/local/ffmpeg/bin/ffmpeg -i /icooper/appdata/H5TransferTemp/temp_169104070929582710298008327991031690794842225.amr -c:a aac /icooper/appdata/H5TransferTemp/temp_16910407092951690794842225.aac是否成功。

当可以执行时代码拼接部分

private void convertAmrToAac(File source, String target){
        String ffmpeg = configNameDao.getConfigValueByKey("ffmpeg");
        String command = ffmpeg + " -i " + source.getAbsolutePath() + " -c:a aac " + target;
        logger.info("execute:" + command);
        try {
            Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec(command);
            int i = proc.waitFor();
            logger.info("Process waitFor 返回结果:{}", i);
        } catch (Throwable t) {
            t.printStackTrace();
            logger.info("命令执行失败");
        }
}

 

最主要的是服务器上要安装Ffmpeg:
//下载解压fmpeg
wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz
tar -zxvf ffmpeg-4.1.tar.gz
//安装
cd ffmpeg-5.1
./configure --prefix=/usr/local/ffmpeg
make && make install
//配置变量
vi /etc/profile
# 在最后PATH添加环境变量:
export PATH=$PATH:/usr/local/ffmpeg/bin
# 保存退出
# 查看是否生效
source /ect/profile  设置生效

如果安装完使用ffmpeg或者/usr/local/ffmpeg/bin/ffmpeg还是执行不了报错的话:

问题./ffmpeg: error while loading shared libraries: libavdevice.so.59: cannot open shared object file: No such file or directory

解决:

  1. vi /etc/ld.so.conf
  2. 加入配置/usr/local/ffmpeg/lib,具体看自己的安装目录
  3.  

     刷新配置ldconfig

  4. 验证ffmpeg -version

 

如果想要用ffmpeg抓换arr格式到mp3的话,需要在装一个libmp3lame第三方库

libmp3lame第三方库安装方法:

  1. 下载压缩包 https://sourceforge.net/projects/lame/files/lame/
  2. 解压 ,进入lame-3.100目录下,在终端打开
  3. 依次执行
./configure --enable-shared
make
make install

  安装ffmpeg时, --enable-libmp3lame引入libmp3lame,上面安装部分的命令要换成下面的

./configure --enable-shared --enable-libmp3lame
make
make install

  转mp3的服务器命令如下:

/usr/local/ffmpeg/bin/ffmpeg -i /icooper/appdata/H5TransferTemp/1690794842225.amr /icooper/appdata/H5TransferTemp/08031410.mp3