ffmpeg编译
- 使用Git下载
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
- 下载完成后,进入FFmpeg源代码目录,运行配置命令
gensees-iMac:~ gensee$ cd /Users/gensee/Desktop/ffmpeg/ffmpeg
gensees-iMac:ffmpeg gensee$ ./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-videotoolbox --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=clang --host-cflags= --host-ldflags=
- 执行 编译、安装命令
sudo make && sudo make install
然后就开始编译了,执行这步后一般会报错
-
安装依赖库
使用brew安装ffmpeg依赖库 例如fdk-aac x264 x265 speex pkg-config
sdl2
brew的使用百度,很方便的一个工具 -
编程错误
1 warning generated.
HOSTLD libavcodec/qdm2_tablegen
Undefined symbols for architecture x86_64:
"_avpriv_request_sample", referenced from:
_build_table in qdm2_tablegen.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libavcodec/qdm2_tablegen] Error 1
查了下是–enable-hardcoded-tables参数导致的,我的机子上llvm是8.0版本的,我看通过brew安装的ffmpeg是llvm10.0的,不知道是不是版本原因,找不到模拟器架构下的这个函数。这里修改下configure配置,先不纠结这个
gensees-iMac:ffmpeg gensee$ make clean
gensees-iMac:ffmpeg gensee$ ./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-videotoolbox --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags=
然后编译成功了,这里其实我们可以直接使用brew安装ffmpeg,先brew search ffmpeg,然后选择一个brew install ffmpeg就可以了,环境变量也会帮我们配置好,很方便,当然,需要体验的同学还是要自己操作才行。
- 配置FFmpeg所需环境变量
gensees-iMac:/ gensee$ sudo vi /etc/profile
Password:
//在末尾加上export PATH=$PATH:/usr/local/ffmpeg/bin
//然后:wq!强制退出
这样我们在终端中ffmpeg命令就可以调用了
gensees-iMac:~ gensee$ ffmpeg
ffmpeg version N-94063-g86f04b918c Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.38)
configuration: --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-videotoolbox --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags=
libavutil 56. 29.100 / 56. 29.100
libavcodec 58. 53.100 / 58. 53.100
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
gensees-iMac:~ gensee$