linux下使用ffmpeg将amr转成mp3

摘要:
系统环境:CentOSLinuxrelease8.2.2004(Core)1.首先安装系统编译环境yuminstall-yautomakeautoconflibtoolgccgcc-c++2.编译所需源码包#yasm:汇编器,新版本的ffmpeg增加了汇编代码wgethttp://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar

系统环境:

CentOS Linux release 8.2.2004 (Core)

1. 首先安装系统编译环境

yum install -y automake autoconf libtool gcc gcc-c++

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 https://nchc.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar -xzvf lame-3.100.tar.gz
cd lame-3.100./configure
make
make install
#amr支持
wget https://nchc.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.5.tar.gz
tar -xzvf opencore-amr-0.1.5.tar.gz
cd opencore-amr-0.1.5./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-snapshot.tar.bz2
tar -xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
./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

附录:
附录1. ffmpeg默认安装目录为“/usr/local/lib”,有些64位系统下软件目录则为“/usr/lib64”,编译过程中可能会出现
“ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory”等类似的错误,解决办法是建立软链接:
# ln -s /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0

附录2. 如果出现以下提示:ffmpeg: error while loading shared libraries: libavdevice.so.54: cannot open shared object file: No such file or directory
可以通过如下方式查看ffmpeg的动态链接库哪些没有找到:

ldd `whichffmpeg`
        libavdevice.so.54 =>not found
        libavfilter.so.3 =>not found
        libavformat.so.54 =>not found
        libavcodec.so.54 =>not found
        libswresample.so.0 =>not found
        libswscale.so.2 =>not found
        libavutil.so.51 =>not found
        libm.so.6 => /lib64/libm.so.6 (0x00002ab7c0eb6000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ab7c100b000)
        libc.so.6 => /lib64/libc.so.6 (0x00002ab7c1125000)
        /lib64/ld-linux-x86-64.so.2 (0x00002ab7c0d9a000)
#如果类似于上面的输出内容,查找以上类库,会发现全部在/usr/local/lib/find /usr/local/lib/ | grep -E "libavdevice.so.54|libavfilter.so.3|libavcodec.so.54"
/usr/local/lib/libavfilter.so.3.17.100
/usr/local/lib/libavcodec.so.54.59.100
/usr/local/lib/libavdevice.so.54
/usr/local/lib/libavcodec.so.54
/usr/local/lib/libavfilter.so.3
/usr/local/lib/libavdevice.so.54.2.101
#查看链接库配置文件
more  /etc/ld.so.conf | grep /usr/local/lib
#如果不包含的话,需要编辑此文添加:
vi /etc/ld.so.conf
/usr/local/lib
/usr/local/lib64
#运行配置命令
ldconfig

免责声明:文章转载自《linux下使用ffmpeg将amr转成mp3》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Caliburn Micro框架攻防世界--re1-100下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ubuntu 18.04 64bit下如何启动向日葵远程控制端软件?

一. 背景   从向日葵官网下载了linux版向日葵远程控制端软件,解压后直接执行Sunlloginremote发现以下错误:     jello@jello:~/sunlogin_remote_linux$ ./SunloginRemote       This application failed to start because it could n...

后端开发工程师的开发环境配置(Vscode+C/Go/Python等)

前言         我是一名后端开发工程师,主要语言是C、Go、Python。早年做C开发的时候都是在windows下开发,一直使用的是soure insight,尤其是时隔多年更新的4.0版本解决了中文乱码等问题,用起来更是得心应手。后来转到Mac下开发,虽然可以用wine运行windows程序,但总感觉别扭,也是时候做一些新的尝试了。      ...

Linux访问控制列表(Access Control List,简称ACL)

Linux访问控制列表(Access Control List,简称ACL) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.ACL概述 ACL:Access Control List,实现灵活的权限管理   除了文件的所有者,所属组和其它人,可以对更多的用户设置权限   CentOS7 默认创建的xfs和ext4文件系统具有AC...

linux下percona-toolkit工具包的安装和使用(超详细版)

一.检查和安装与Perl相关的模块 PT工具是使用Perl语言编写和执行的,所以需要系统中有Perl环境。 依赖包检查命令为: rpm -qaperl-DBIperl-DBD-MySQLperl-Time-HiResperl-IO-Socket-SSL 如果有依赖包确实,可以使用下面的命令安装: yum install perl-DBI yum inst...

帆软Linux导出或打印乱码

Linux导出或打印乱码 目录: 1. 问题描述 2. 原因 3. 解决方案 1. 问题描述 (1)在Linux环境下,会发现客户端预览是正常的,但是在导出或打印时会出现乱码,或者一些特殊符号如人民币符号"¥",在导出或打印时发现变成了美元符号"$"。 (2)在Linux系统的客户端,预览或导出的图片乱码。   2. 原因   2.1 ...

Ubuntu环境下使用Unity3D调用C++编写的Linux so动态链接库

Unity3D已经有了支持Linux的社区版本。要在Linux环境下开发Unity3D程序,首先要安装Linux版的Unity。地址如下: https://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/#post-2556301 1 制作Linu...