携手创作,共同成长!这是我参与「掘金日新计划 · 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
- 1./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --disable-x86asm
--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版本不正确所导致。
-
重新安装SDL。
-
重新安装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