ubuntu上安装ffmpeg

本文档详细介绍了FFmpeg的编译与配置过程,包括系统基础环境搭建、所需源码包编译、FFmpeg编译及常见问题解决方法。适用于希望自行编译FFmpeg以获得定制功能的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装包和主要步骤:

 

1. 首先安装系统基础环境

RHEL & CentOS 系列:yum install -y automake autoconf libtool gcc gcc-c++

Debian & Ubuntu 系列:apt-get install automake autoconf libtool gcc gcc-c++

 

2. 下载最新的FFMpeg源码包

FFMpeg官方下载地址:http://ffmpeg.org/download.html

一般直接使用最新版本,下载完成后解压缩,进入源码文件夹,运行“./configure --help”查看帮助,这里主要是为了确认需要安装的扩展,有些扩展默认是已经开启的,有些是需要单独下载扩展源码包进行编译的。以我的需求为例,需要单独编译yasm、lame、OenCore AMR、AmrNB和AmrWB,其中lame是MP3解码器。

 

3. 编译所需源码包

从各个官方地址下载上述五种源码包,为了保证兼容最新版本的ffmpeg,请务必也下载最新版本的源码:

yasm:http://yasm.tortall.net/Download.html

lame:http://lame.sourceforge.net/download.php

OenCore AMR:http://sourceforge.net/projects/opencore-amr

AmrNB & AmrWB:http://www.penguin.cz/~utx/amr

分别解压缩并编译上述源码包,直接使用“./configure && make && make install”即可。

 

4. 编译FFMpef

回到刚才的FFMpeg源码目录,打开所需扩展并且编译FFMpeg:

./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared

make && make install

ldconfig

最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。

 

5. 可能遇到的问题

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

mv /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0

 

6. 使用方法

MP3转换AMR: ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr

AMR转换MP3: ffmpeg -i 1.amr 1.mp3

 

遇到问题及解决:

 

1. ERROR: libopenjpeg not found

http://code.google.com/p/openjpeg/downloads/detail?name=openjpeg-1.5.1.tar.gz&can=2&q=

下载openjpeg-1.5.1的代码,注意不要下载openjpeg-2.0的,否则ffmpeg跟openjpeg的接口不支持,编译会处错误。

configure 
make,make install

找到头文件是在/usr/local/include/openjpeg-1.5.1下面,而ffmpeg在连接的时候,其实是/usr/local/include,所以提示说“ERROR: libopenjpeg not found”。将/usr/local/include/openjpeg-1.5.1下面的头文件“openjpeg.h”拷贝到/usr/local/include下面。

 

1,x264也是有这个问题,x264.h这个文件要放在/usr/local/include下,而不是在/usr/local/下单独建个子目录放。 其他的库都是在make install的时候自己建的子文件夹。

需要将libx264的库文件拷贝到/usr/local/lib下
或者直接在configure的时候,改变路径,如下所示:
./configure --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared
即可。

 

2. ERROR:libfdk_aac not found

http://sourceforge.net/projects/opencore-amr/?source=directory

下载fdk-aac-0.1.1.tar.gz 

执行 

configure

make

make install

 

3. ERROR:libilbc not found

https://github.com/dekkers/libilbc

git clone git://github.com/dekkers/libilbc.git

解压

安装cmake,如下所示

sudo apt-get install cmake

创建一个build目录,执行:

cd build
cmake ..           (这里的..意思是,如果是一个.表示CMakeLists.txt在当前路径下,两个..表示CMakeLists.txt在上一层目录下)

cmake install ..
make                (在build/bin下会找到可执行文件。)

make install      (将生成的库拷贝到linux相关目录下)

 

4. ERROR: libmp3lame >= 3.98.3 not found

sudo apt-get install libmp3lame-dev

 

5. ERROR: libopencore_amrnb not found

sudo apt-get install libx264-dev libxvidcore-dev libopencore-amrwb-dev libopencore-amrnb-dev libfaad-dev libfaac-dev libmp3lame-dev \
libtwolame-dev liba52-0.7.4-dev libcddb2-dev libcdaudio-dev libcdio-cdda-dev libvorbis-dev libopenjpeg-dev

(5) git chone git://git.videolan.org/x264.git
configure
make && make install
(6) ERROR: libvo_aacenc not found
http://sourceforge.net/projects/opencore-amr/files/vo-aacenc/vo-aacenc-0.1.2.tar.gz/download
(7) ERROR: libvo_amrwbenc not found
http://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/
(8) ERROR: libvpx decoder version must be >=0.9.1
http://code.google.com/p/webm/downloads/detail?name=libvpx-v1.1.0.tar.bz2&can=2&q=
(9)编译 ffplay 需要 libsdl1.2-dev 库:
sudo apt-get install libsdl1.2-dev (10)ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file

Solution:
Search the file libavdevice.so.52 on the server using the ‘find’ command

1
# find / -name libavdevice.so.52

You need to add the path to the directory the file is in, in the ‘ld.so.conf’ file. If for example the file is located under “/usr/local/lib” directory, execute

1
# vi /etc/ld.so.conf

and add the following at the bottom of the file

 
/usr/local/lib

 

 

7. Encoder (codec id 86017) not found for output stream #0.0

解决方案:http://diogomelo.net/blog/11/encoder-codec-id-86017-not-found-output-stream-00-compile-ffmpeg-yourself

Ubuntu 系统上安装 FFmpeg 可以通过多种方式进行,具体包括使用系统包管理器直接安装、从源码编译安装等。以下是详细的方法说明: ### 通过 APT 安装 FFmpeg Ubuntu 的官方仓库中通常包含 FFmpeg 的预编译版本,适用于大多数用户。可以通过以下命令进行安装: ```bash sudo apt update sudo apt install ffmpeg ``` 安装完成后,可通过以下命令验证是否成功安装: ```bash ffmpeg -version ``` 该方法操作简单,适合不需要自定义功能的用户 [^4]。 ### 源码编译安装 FFmpeg 对于需要特定功能或最新版本的用户,可选择从源码编译安装。首先需确保系统已安装必要的构建工具和依赖库,如 `build-essential`、`yasm`、`libsdl1.2-dev` 和 `libsdl2-dev` 等: ```bash sudo apt install build-essential yasm libsdl1.2-dev libsdl2-dev ``` 然后下载所需版本的 FFmpeg 源码包,并解压进入目录: ```bash tar -xvf ffmpeg-7.1.1.tar.xz cd ffmpeg-7.1.1 ``` 执行配置脚本以准备编译环境。建议启用共享库支持并指定安装路径: ```bash ./configure --enable-shared --prefix=/usr/local/ffmpeg ``` 完成配置后开始编译安装: ```bash make sudo make install ``` 为使系统能够识别新安装FFmpeg 命令,需更新环境变量及动态链接库路径: ```bash export PATH=/usr/local/ffmpeg/bin:$PATH echo 'export PATH=/usr/local/ffmpeg/bin:$PATH' >> ~/.bashrc source ~/.bashrc sudo ldconfig ``` 最后,通过运行 `ffmpeg -version` 来确认是否成功安装 [^3]。 ### 非 root 用户安装 FFmpeg 若没有管理员权限,仍可通过下载预编译的二进制文件实现本地安装。首先将下载的压缩包解压,并将其中的 `ffmpeg` 可执行文件移动到用户的本地目录下(如 `~/bin/ffmpeg`): ```bash unzip ffmpeg-release-amd64-static.zip cp ffmpeg-7.1.1-amd64-static/ffmpeg ~/bin/ ``` 随后将其添加至环境变量中以便全局访问: ```bash echo 'export PATH=~/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` 再次检查版本信息以验证安装状态 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值