首先下载 ffmpeg 源码,地址为:https://www.ffmpeg.org/download.html
我下载的是 FFmpeg 4.4 "Rao"
- 把下载下来的 ffmpeg-4.4.tar.bz2 源码包放到ubuntu上。
- tar -xvf ffmpeg-4.4.tar.bz2
- 开始安装各种依赖的库
安装libasound2-dev和libpulse-dev
这两个库是SDL所依赖的,播放音频要用到
sudo apt-get install libasound2-dev
sudo apt-get install libpulse-dev
安装yasm
sudo apt-get install yasm
安装nasm
sudo apt-get install nasm
安装x264库
- ./configure --enable-shared //动态库
- make
- sudo make install
- 此时 libx264.so 默认安装在 /usr/local/lib
安装x265库
sudo apt-get install libx265-dev
安装speex-1.2.0
https://download.csdn.net/download/sanshipianyezi/9987566?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162711402216780357259266%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdownload.%2522%257D&request_id=162711402216780357259266&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~download~first_rank_v2~rank_dl_default-7-9987566.pc_v2_rank_dl_default&utm_term=speex&spm=1018.2226.3001.4451
- ./configure CC=gcc
- make
- sudo make install
安装SDL2-2.0.14
注意了,编译不出ffplay,是因为没有安装 SDL2 库,所以这个库必须要装上。
官网下载地址:https://www.libsdl.org/download-2.0.php
- ./configure
- make
- sudo make install
安装fdk-aac-0.1.6
源码包下载地址:https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz
- ./configure
- make
- sudo make install
编译ffmpeg、ffprobe、ffplay
- 进入ffmpeg目录下
- ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-indev=alsa --enable-outdev=alsa
- make
- 此时本目录下会编译出ffmpeg,ffprobe,ffplay
- sudo make install
**
有的同学编译ffmpeg时,在ffmpeg目录执行./configure … 之后,没有修改config.h文件,这样也编译不出ffplay来。解决办法是进入到 ffmpeg 目录下,打开 config.h文件找 FFPLAY 关键字,将其后面的 0 修改为 1,保存并退出该文件。在当前目录下执行 make && sudo make install。注意,修改 config.h文件后,不要再执行./configure …了,否则config.h中的值又都恢复为原来的值了。**
修改/etc/etc/ld.so.conf
目的是使用ffmpeg库的时候,能让编译器找到我们的库,因为编译器默认找/usr/lib,而不是/usr/local/lib
- sudo vim /etc//etc/ld.so.conf
- 在文件中添加 /usr/local/lib
- 在文件中添加 /usr/local/ffmpeg/lib
- 在 /etc目录下 sudo ldconfig
添加环境变量
目的是为了能使用ffplay ,ffprobe, ffmpeg,而不用每次都到ffmpeg目录下面./运行
- sudo vim /etc/profile
- 在文件末尾增加:PATH=$PATH:/usr/local/ffmpeg/bin
- source profile
如果遇到ffplay不能播放的问题
ffplay 不能播放 Could not initialize SDL - No available video device (Did you set the DISPLAY variable?)
sudo apt-get install libx11-dev
sudo apt-get install xorg-dev
重新进入SDL2-2.0.14目录
make clean
./configure
make -j4
sudo make install