课程名称:音视频基础+ffmpeg原理 入门音视频技术开发
课程章节:在不同的系统上编译 ffmpeg
课程讲师:李超
课程内容
Mac 或 Linux 下安装 ffmpeg 有两种方式:
- brew 方式
- 下载源码编译
使用 brew 方式安装,可以通过下面的命令:
brew search ffmpegbrew
brew install ffmpeg
下载 ffmpeg 源码编译
1.下载FFmpeg源码
2.编译 FFmpeg
./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --enable-ffplay //此处的3方便调试,
make -j 4 //指定多个进程并发执行
sudo make install //安装ffmpeg
- –prefix 指定ffmpeg安装路径
- –disable-static: 关闭静态库,默认会生成静态库。
- –enable-shared: 生成动态库
3. 查看配置参数,可以通过命令:
./configure --help
4. 没有生成 ffplay,为什么?
如果安装 ffmpeg 后没有生成ffplay,可以检查config.mk 文件中是否有:!CONFIG_FFPLAY=yes,原因为ffplay依赖sdl2环境,解决方法:
sudo apt-get install libsdl2-2.0
sudo apt-get install libsdl2-dev
卸载重新安装ffmpeg,配置后config.mk中CONFIG_FFPLAY=yes,则表示成功。
5. 文件解读
bin文件夹下:
- ffmpeg命令:推送,音视频处理
- ffplay命令:拉流
- ffprole:侦测多媒体文件,文件信息等
include文件夹:
- libavcodec:编解码
- libavfilter:滤镜 特效
- libavutil:基本工具
- libswresample:音频重采样
- libavdevice:管理设备
- libavformat:文件格式处理
- libpostproc:
- libswscale:视频的缩放等处理
lib文件夹:
包含静态和动态库,与include一样
share文件夹:
文档相关内容,使用手册等
6.执行ffmpeg报错,找不到改文件。
需要添加添加环境变量在~/.bashrc文件中,添加 export PATH="/usr/local/ffmpeg/bin/:$PATH",保存后退出,执行source ~/.bashrc
7.执行ffmpeg报错
ffmpeg: error while loading shared libraries: libavdevice.so.59:
cannot open shared object file: No such file or directory:
需要配置环境变量,在配置文件/etc/ld.so.conf中,增加/usr/local/ffmpeg/lib,保存后退出,执行sudo ldconfig