【FFMPEG】安装FFMPEG

385 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情 >>

系统环境

  • Ubuntu18.04
  • VMware 16 Pro

安装步骤

  • 源码方式安装

1.下载ffmpeg

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

注意:虚拟机没安装git的时候会提示安装

2.安装pkg-config

apt install pkg-config

3.安装SDL与SDL2

sudo apt-get install libsdl1.2-dev(比较大,10M左右)
sudo apt-get install libsdl-image1.2-dev 
sudo apt-get install libsdl-mixer1.2-dev 
sudo apt-get install libsdl-ttf2.0-dev 
sudo apt-get install libsdl-gfx1.2-dev 
#SDL2
sudo apt-get install libsdl2-dev

4.编译安装ffmpeg

 
#--disable-static --enable-shared:动态静态库
./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --disable-x86asm

make -j 4
make install

5.配置环境变量

将安装好的文件写到bashrc中,可以让当前用户使用

vim ~/.bashrc

export PATH="$PATH:/usr/local/ffmpeg/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib"
#刷新环境变量
source ~/.bashrc

6.检测

直接输入ffmpeg显示出版本号即安装成功
安装完成后记得去安装目录下我这里是/usr/local/bin下查看下是否有ffplay

  • 成功标志
    • 1./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --disable-x86asm
    • 2.编译make -j 4
    • 3.安装make install

--disable-static --enable-shared:动态静态库
动态库是程序执行时用到才加载的,静态库是编译时就与你的程序结合到一起的

编译出错:
1.问题

nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
解决方案:

./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --disable-x86asm

\

2.问题


WARNING: pkg-config not found, library detection may fail.
解决:

apt install pkg-config

3.安装完成在bin里发现没ffplay

原因:
你的操作系统没有SDL或者SDL版本不正确所导致。

  1. 重新安装SDL。

  2. 重新安装FFMPEG。
    解决:
    sudo apt-get install libsdl1.2-dev(比较大,10M左右)
    附加包:
    sudo apt-get install libsdl-image1.2-dev
    sudo apt-get install libsdl-mixer1.2-dev
    sudo apt-get install libsdl-ttf2.0-dev
    sudo apt-get install libsdl-gfx1.2-dev\

    安装完成后需要重头重新编译!!! 气人坑多
    重新编译后还是没有。。。
    然后换了清华的源
    下载了sdl2库

sudo apt-get install libsdl2-dev

再次重新编译就可以了

4.执行ffmpeg报错

root@huaweiservice:/usr/local/ffmpeg/lib# ffmpeg

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

解决方法:
1.配置环境变量
2.vi /etc/ld.so.conf
3.加入
/usr/local/ffmpeg/lib
/usr/local/lib
4.刷新
sudo ldconfig

头文件解释