美文网首页
mac怎么编译ffmpeg和ffplay

mac怎么编译ffmpeg和ffplay

作者: 想成为大牛的程旭元 | 来源:发表于2020-07-20 17:04 被阅读0次

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

开始编译

  1. 终端输入./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 的代码,就会顺利编译了。

  1. 执行 make -j 4,执行OK后,执行3的代码
  2. 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

感谢无私奉献的大哥们

Mac 上为 FFmpeg 配置环境变量
iOS开发 - 超详细集成 FFmpeg 步骤

相关文章

网友评论

      本文标题:mac怎么编译ffmpeg和ffplay

      本文链接:https://www.haomeiwen.com/subject/omyykktx.html