前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >征服工具链-FFmpeg的编译(Windows 篇)

征服工具链-FFmpeg的编译(Windows 篇)

作者头像
瑶瑶
发布2020-07-03 14:36:47
1.5K0
发布2020-07-03 14:36:47
举报
文章被收录于专栏:音视频技术开发

注:参考自bilibili系列视频,征服工具链-FFmpeg的编译(Windows 篇),更详细的内容可以从视频获取https://www.bilibili.com/video/BV17i4y1G7WA

下载

官网下载msys2, ffmpeg,x264

Autoconf

Autoconf是M4宏处理器的扩展包,用于生成自动构建源码包的脚本。 适用于多种UNIX-like系统。可以使软件包在所有的UNIX-like系统上进行编译。

注:M4 是一个宏处理器.将输入拷贝到输出,同时将宏展开. 宏可以是内嵌的也可以是用户定义的. 除了可以展开宏,m4还有一些内建的函数,用来引用文件,执行Unix命令,整数运算,文本操作,循环等. m4既可以作为编译器的前端也可以单独作为一个宏处理器.

ffmpeg、x264等岁数较大的软件,都用Autoconf构建。既然生成的脚本构建源码的脚本是在UNIX-like系统上进行编译的,那么我们在windows上编译软件就会很困难,解决方法是,msys2,它可以在windows上模拟一个UNIX-like系统。 为了解决Autoconf的跨平台缺陷,cmake诞生。

MSYS2

MSYS2 (Minimal SYStem 2)主要用于 shell 命令行开发环境。是集成了pacman(包管理工具)和Mingw-w64的Cygwin升级版(Cygwin是一个在windows平台上运行的类UNIX模拟环境), 提供了bash shell等linux环境、版本控制软件(git/hg)和MinGW-w64 工具链。 MSYS2把UNIX-like系统函数转换成 Windows 的 API ,从而实现在windows上执行linux脚本。 安装MSYS2之后,还需要在MSYS2里手动安装Mingw-w64

MinGw 和 cygwin

操作系统提供的系统API是不同的,如Windows使用CreateProcess()创建进程,而Linux使用fork()。所以想要在Windows环境下使用Linux的编译工具,也就是gcc/g++,我们需要一个中间的转换工具或者平台,这也就是MinGW和cygwin存在的原因。 MinGW 是让Windows 用户可以用上GNU 工具,比如GCC,用于编译。 Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。 即cygwin提供在windows平台上运行的类UNIX模拟环境,MinGw是在windows上使用gcc编译器,提供编译功能。 gcc的输入是源文件,输出是静态库/动态库/可执行文件。

编译x264 和 FFmpeg

编译库时,如果有依赖,且依赖所在目录既有动态库,又有静态库,他会优先选择动态库。静态库,代码会嵌入被依赖库;动态库,在最后运行时,需要把动态库放在运行目录用于引用。 代码量小的习惯生成静态库,代码量大的习惯生成动态库。

编译脚本:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载
  • Autoconf
  • MSYS2
    • MinGw 和 cygwin
    • 编译x264 和 FFmpeg
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档