1.brew方式
代码搜索
brew search ffmpeg
出来结果
ffmpeg ffmpeg2theora ffmpeg@2.8 ffmpegthumbnailer
这里我们需要知道ffmpeg和ffmpeg@2.8,ffmpeg@2.8是老版本
命令行输入 brew install ffmpeg
这里会耗不少时间,请耐心等待。
这里使用源码的方式安装
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
编译ffmpeg
1. 执行./configure --prefix=/usr/local/ffmpeg --enable-debug=3
2. make -j 4
3. make install
第一条通过 prefix来指定安装路径 2个-
debug=3 debug打开,是为了使用源码的时候,方便调试
通过第一条,然后就会产生,ffmpeg的运行脚本,
make 运行脚本
-j 是设置 同时有多少个进程并发进行,这里是4个
make install 是把编译好的ffmpeg安装到prefix路径下
这里我选择的是download源码到本地的。
启动ffmpeg
cd ffmpeg本地路径
./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared
--disable-static 关闭静态库
--enable-shared 打开动态库
这句代码就是告诉configure你生成的makefile是动态库,不是静态库
默认是生成静态库的
如果不记得这些命令 可以通过
./configure --help
开始编译
- 终端输入./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared
这时候报错
**nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.**
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
感谢这位大哥的奉献
FFmpeg yasm/nasm not found or too old
当你输入sudo apt-get install yasm的时候,会报错
sudo: apt-get: command not found
解决方式
mac解决yasm/nasm not found or too old. Use --disable-yasm for a crippled build.
安装完后,再执行开始编译-1
的代码,就会顺利编译了。
- 执行 make -j 4,执行OK后,执行3的代码
- make install
执行make install的时候,报错
mkdir: /usr/local/ffmpeg/lib: Permission denied
make: *** [install-libavdevice-shared] Error 1
报错原因:权限问题导致的,用下面的解决办法
到这一步就安装到/usr/local/ffmpeg这了,
然后我们进入这个路径
cd /usr/local/ffmpeg
ls
//打印出来
bin include lib share
//bin 是ffmpeg的所有命令和工具
//include 是ffmpeg的头文件
//lib 是ffmpeg的生成的动态或者静态库
//share 是文档或者例子
//执行命令 进入bin里面
ls bin
// 缺少 ffplay 应该是ffmpeg ffplay ffprobe
ffmpeg ffprobe
//ffmpeg 可以进行推流、音视频处理
//ffplay 可以拉流、播放本地的音视频文件
//ffprobe 用来侦测多媒体文件、比如一些格式
输入 cd .. 退出这个目录结构
进入include库
对ffmpeg二次开发的时候,需要引用头文件,
libavcodec libavfilter libavutil libswscale
libavdevice libavformat libswresample
//libavcodec 编解码
//libavdevice 管理设备的
//libavfilter 各种滤镜和特效
//libavformat 多媒体文件格式处理的
//libavutil 基本工具
//libswscale 视频的缩放等处理
//libswresample 音频的重采样
进入lib库
libavcodec.58.96.100.dylib libavformat.dylib
libavcodec.58.dylib libavutil.56.55.100.dylib
libavcodec.dylib libavutil.56.dylib
libavdevice.58.11.101.dylib libavutil.dylib
libavdevice.58.dylib libswresample.3.8.100.dylib
libavdevice.dylib libswresample.3.dylib
libavfilter.7.87.100.dylib libswresample.dylib
libavfilter.7.dylib libswscale.5.8.100.dylib
libavfilter.dylib libswscale.5.dylib
libavformat.58.48.100.dylib libswscale.dylib
libavformat.58.dylib pkgconfig
//dylib是动态库,静态库是framework或者.a
//libavcodec.58.96.100.dylib,真正的库
// libavcodec.58.dylib、libavcodec.dylib这2个库是连接符,是我们编程的时候,引入库所使用的,
进入share
cd share
ls
ffmpeg man
为哈编译之后,没有ffmplay呢?
到这以后,得配置环境变量
vi ~/.bash_profile
//把刚才git clone的源码地址写上就行,我是下载到Downloads里,所以这里的路径是下面的
export PATH=${PATH}:/Users/xxx/Downloads/ffmpeg
//写完之后,请退出终端,再打开,输入ffmpeg -version,输出来结果就OK了
ffmpeg -version
感谢无私奉献的大哥们
网友评论