音视频学习笔记-ffmpeg编译以及配置

ffmpeg编译

  1. 使用Git下载
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
  1. 下载完成后,进入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=
  1. 执行 编译、安装命令
sudo make && sudo make install

然后就开始编译了,执行这步后一般会报错

  1. 安装依赖库
    使用brew安装ffmpeg依赖库 例如fdk-aac x264 x265 speex pkg-config
    sdl2
    brew的使用百度,很方便的一个工具

  2. 编程错误

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就可以了,环境变量也会帮我们配置好,很方便,当然,需要体验的同学还是要自己操作才行。

  1. 配置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$ 

猜你喜欢

转载自blog.csdn.net/shengpeng3344/article/details/93172135