本文为对《FFmpeg 从入门到精通》一书第1章 FFmpeg 简介的学习总结
FFmpeg 中的主要工具有:
- 编解码工具 ffmpeg
- 播放器 ffplay
- 多媒体分析器 ffprobe
通常在 Linux 系统下使用 apt-get install ffmpeg 或 yum install ffmpeg 都可以直接安装 FFmpeg,但版本会比较老,想要学习或使用新功能就需要自行编译安装。
编译安装
进入 ffmpeg 目录即可执行./configure 进行编译操作,但不同平台间会存在一依赖差异
FFmpeg 一些支持的查看
减小编译体积也可禁用不需要使用到的模块,如:
在关闭之后可定制支持自己所需的模块,如希望支持 H.264视频编码、AAC 音频编码并封装为 MP4(系统需支持 libx264,fdkaac,编译安装方法参见常见问题1和2):
让FFmpeg等程序通常会希望对全部用户 直接可用,可在编译时使用 prefix 参数并进行 PATH 的配置,如:
Windows
安装 MinGW,http://www.mingw.org(主要需要 C和 C++编译器,可勾选 Basic Setup 中的所有内容)
安装MSYS:http://www.mingw.org/wiki/MSYS
为能够在Windows执行configure编译,可安装以上两者或直接安装 http://www.cygwin.com/
Windows国内安装Git加速地址:https://github.com/waylau/git-for-win
Linux
编译时要求汇编部分的代码需要用到 yasm/nasm,否则会提示添加–disable-x86asm或-disable-asm
书中提到的是安装yasm汇编器
根据网上资料显示更建议安装 nasm 汇编器,因其维护更为活跃
macOS
macOS上编译安装与 Linux 步骤一致,这里略过
常见问题
1、ERROR: libfdk_aac not found
访问https://sourceforge.net/projects/opencore-amr/files/fdk-aac/并下载最新版安装包、解压编译安装即可
如出现`.rodata’ can not be used when making a shared object; recompile with -fPIC,可执行
2、ERROR: libx264 not found
git clone https://code.videolan.org/videolan/x264.git
cd x264
./configure –enable-shared
sudo make && sudo make install
3、error while loading shared libraries: libfdk-aac.so.2: cannot open shared object file: No such file or directory
FFmpeg所支持主要外部库列表
- bzip2
- Fontconfig
- Frei0r
- GnuTLS
- libiconv
- libass
- libbluray
- libbs2b
- libcaca
- dcadec
- FreeType
- Game Music Emu
- GSM
- iLBC
- Modplug-XMMS
- LAME
- OpenCORE AMR
- OpenJPEG
- Opus
- RTMPDump
- Schroedinger
- libsoxr
- Speex
- Theora
- TwoLAME
- vid.stab
- VisualOn AAC
- VisualOn AMR-WB
- Vorbis
- vpx
- WavPack
- WebP
- x264
- x265
- XAVS
- Xvid
- XZ Utils
- zlib
以上外部库链接 Alan 在整理时均已进行了验证更换,如今后链接发生变化,欢迎读者在评论区进行更正