ffmpeg在Mac上的编译

原帖地址:https://blog.csdn.net/minger1202/article/details/52302500

Mac上的编译

在Ubuntu系统下编译ffmpeg的源码很方便,缺少什么第三方的工具或者lib直接就可以apt-get,再不行就百度,总之解决起来很方便。最近屌丝鸟枪换Mac了,所以这里就说说Mac上如何编译ffmpeg源码以及如何解决编译过程中遇见的问题。

下载源码配置环境

首先你需要下载源码的地址:https://ffmpeg.org/download.html#get-sources。 
你可以运行:”git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg”直接从代码库上down下来,操作2。当然也可以直接把源码的压缩文件下载下来,操作1。 

编译源码

-cd ffmpeg 
-./configure 
-make 
-make install 
对于一些小白来说,可能都不知道这四个命令都是干什么的,我就简单说明一下后三个命令:cd我就不说了,要是这个都不知道,那也就别编译源码了。./configure是对所要编译的源码的配置。这操作会检测一些系统环境,例如,ffplay的编译是需要sdl(Simple DirectMedia Layer),它是一套用C语言写成的开放源代码的跨平台多媒体开发库。如果没有sdl,那么就无法编译出ffplay。我在编译过程中也遇到了没有sdl这个问题,后面我会以sdl为例子,讲解如何解决编译过程中遇到的问题。make命令就是编译源码,因为源码的编译规则已经写在了makefile里面,所以你只需要make一下就ok了。编译结束后,在ffmpeg文件夹下面会生成几个可执行文件ffplay,ffserver,ffmpeg,ffprobe等。实际上,至此我们已经完成了源码的编译。make install的作用就是把这些命令和编译好的lib安装到你的系统里面。实际上你不安装也可以,在你之后用的时候,就显示的指明执行文件的路径,头文件以及lib的位置就行,不过还是建议安装一下,否则用起来还是比较费事的。

发现问题解决问题

前置条件:如果是Mac,请先安装Xcode。

在执行上面的编译操作后,我发现我并没有生成ffplay,然后一脸懵逼的我不知所措了。。。。

为什么呢? ./configure –help 。发现里面有好多disable,enable的选项。我是不是忘了把ffplay enable了呢?于是,我在此config,./configure –enable-ffplay。结果,还是没有把ffplay编译出来。

打开ffmpeg源码的根目录,你会发现有三个文件,从名字上就能判断他们是和配置有关的,分别是:config.h, config.log还有config.mak。分析一下,代码没编译出ffplay肯定和头文件有关,我就打开了config.h。搜索ffplay关键字,发现有个宏定义#define CONFIG_FFPLAY 0,值是0,可以确定,这就是导致无法编译出ffplay的直接原因。通过名字我们可以看出config.log是配置的日志文件,同样打开它,并搜索关键字ffplay,结果发现里面终于出现了一些有用的信息。通过log,可以看出ffplay编译的时候是需要一些第三方的lib支持的,但是在检查这些lib的时候,发现sdl检测失败。那好吧,既然问题找到了,就顺着这个线索解决吧。在安装sdl的时候,也遇见了一些曲折这里就不说了。我就直奔主题说怎么安装sdl吧。首先你要先下载个工具brew,这个brew有点类似Ubuntu的apt-get,就是,你可以用它直接安装一些东西。

开始正式编译

cd $ffmpegSourceCodeDir 
./configure 
make 
make install 
这下终于把ffplay也编译出来了。 

总结:

至此所有的编译工作也就结束了,在网上有很多编译ffmpeg的帖子,而且写的也很详尽。但是,很少有针对编译过程中出现的问题怎么去解决的文章。本文旨在说明编译过程中遇见问题的解决方法,希望对您有帮助。如果在编译期间遇见问题,请给我留言,我们相互交流探讨。

原文地址:https://www.cnblogs.com/blackhumour2018/p/9427797.html

时间: 2024-10-14 07:25:59

ffmpeg在Mac上的编译的相关文章

MAC上反编译android apk---apktool, dex2jar, jd-jui安装使用(含手动签名)

前文 介绍了在Windows平台利用强大的APK-Multi-Tool进行反编译apk,修改smali源码后再回编译成apk的流程,最近受人之托,破解个apk,所幸的是所用到的这三个软件都是跨平台的,mac上也妥妥的.这里记录下在mac上所用的东西和流程. 总共需要三个软件,为了便于找到最新的版本,把官网也放后面: Apktool:http://ibotpeaches.github.io/Apktool/install/ 最新版本2.0.1 dex2jar: https://github.com

mysql在mac上的编译和调试

今天正式开始漫漫长路,打算这几年用业余时间刷刷mysql5.5源代码,由于手边的书籍基本都是基于mysql5.5的,所以就不用5.7版本的代码了,更何况我更关注基本内核.因此,没有特殊指明,那么,一般都指mysql5.5版本.工作原因没有深入去了解mysql,既然想玩技术,工作上的技术挑战没有研究mysql内核这么直接,因此,决定用业余时间搞搞些技术活,一方面可以让自己的技术深入储备,另一方面也让自己在工作之余从技术中获得点点成就感. 选择mac平台因为简单,windows平台我也编译成功了,但

MAC上反编译android apk-apktool, dex2jar, jd-jui安装使用

前文 介绍了在Windows平台利用强大的APK-Multi-Tool进行反编译apk,修改smali源码后再回编译成apk的流程,最近受人之托,破解个apk,所幸的是所用到的这三个软件都是跨平台的,mac上也妥妥的.这里记录下在mac上所用的东西和流程. 总共需要三个软件,为了便于找到最新的版本,把官网也放后面: Apktool:最新版本2.0.1 dex2jar: 最新版本2.0 JD-GUI: 最新版本1.4.0 这三个软件Apktool的安装稍微麻烦点,其他都还好,基本上下载下来解压了就

FFmpeg在iOS上完美编译

最近刚接触ffmpeg,找了很多相关的编译资料,都没有编译成功,前几天在 github上找到一个脚本(https://github.com/kewlbear/FFmpeg-iOS-build-script),就可完美编译 具体步骤如下: 1.下载脚本:https://github.com/kewlbear/FFmpeg-iOS-build-script,要运行这个脚本, 准备条件: 先下载文件:https://github.com/libav/gas-preprocessor, 复制gas-pr

MAC 上 protobuf 编译

#!/bin/bash #选本替换成https://github.com/google/protobuf/releases/tag/v2.6.1 echo Building Google Protobuf for Mac OS X / iOS. echo Use 'tail -f build.log' to monitor progress. ( PREFIX=`pwd`/protobuf mkdir ${PREFIX} mkdir ${PREFIX}/platform XCODEDIR=`xc

npm grunt在mac上编译bootstrap源码

因为gmu需要用编译的方式下载,于是联想到bootstrap什么less sass编译 less先学,据说基于js编译和less编译器,安装起来详细, sass据网上介绍基于ruby, 以下为在mac上下载编译boostrap过程 1.安装node.js brew install node.js就可以了 2.sudo npm install bootstrap(记住npm命令需要加sudo) 3.进入bootstrap sudo npm install(根据package.json编译)(再次提

TiDB之mac上搭建及调试技巧

此文目的 由于本人最近已经成为TiDB的粉丝,所以就开始各种研究TiDB的源码,研究源码这个事情,首先就需要在自己电脑上不断的调试及修改.TiDB本身的代码是非常容易编译和调试的,但是要把PD.TiKV集群同时在本机上建立起来,还是有一点难度的.好在pingcap官方提供了docker-compose搭建集群的方式,可以快速的在个人电脑上启动一个TiDB的集群.但是,我要的不只是一个集群,我还希望在我的mac上实时编译调试TiDB服务,这个TiDB服务能够和docker-compose的集群里的

ffmpeg在PC上编译问题全解决

原帖地址:http://blog.sina.com.cn/s/blog_61bc01360102w815.html Optional Harfbuzz-1.1.3 所以需要分别下载并解压以下三个库: http://downloads.sourceforge.net/freetype/freetype-2.6.2.tar.bz2 http://fribidi.org/download/fribidi-0.19.7.tar.bz2 http://www.freedesktop.org/softwar

尝试在Mac上编译DNX

自从XRE改名为DNX至今,从来没有在Mac OS X上成功编译过DNX.一直很纳闷,难道DNX的开发人员不用Mac?今天突然明白了,DNX的开发人员真的不用Mac.而且DNX用的2个持续集成服务AppVeyor与Travis,一个是Windows环境,一个是Linux环境,就是没有Mac OS X环境. 看来不能指望DNX的开发人员短期内解决这个问题了,只能自己动手. 编译的错误信息如下(编译命令./build.sh): Restore complete, 725ms elapsed info