x265 介绍与编译流程

本文详细介绍了在Windows上使用Visual Studio、MSYS2+MinGW编译x265的流程,包括环境配置、cmake的使用、nasm安装等步骤,适合对视频编解码和开源软件编译感兴趣的读者。
摘要由CSDN通过智能技术生成

Windows 下 x265 编译流程(VS 环境,MingGW/Msys2+MinGW 环境)

本文同步发表于 该地址

1 概述与资源链接

x265 是一个快速、性能较优、使用广泛的 HEVC 开源视频编码器。其相关资源如下

2 编译流程说明

x265 的主体部分使用 c++ 编写,关键代码则使用汇编进行加速,使用 cmake 生成自己的编译配置。因此,windows 下编译 x265 的步骤可以大致概括为以下几步,不管是使用什么编译环境,这些基本步骤都是类似的

  1. 构建自己的编译环境,这里包括两个,一是安装 c/c++ 编译环境,比如 Visual Studio 的 MSVC 或者 MinGW 的 gcc,二是安装汇编器,比如 nasm
  2. 使用 cmake 构建符合上述编译环境的项目工程,首先安装 cmake,然后调用 cmake 进行构建,对于 VS 环境,cmake 会生成一个 sln 项目文件,对于 MinGW 环境,则会生成 Makefile
  3. 通过构建的工程完成整个编译流程,对于 VS 环境,就是打开项目文件使用 VS 进行生成,对于 MinGW 环境,则是使用 make 指令调用 gcc 进行编译

针对上述编译步骤,x265 本身提供了若干构建脚本可供使用(见此地址),如果你的环境是 VS,你可以找到对应 VS 版本的 make-solutions.bat 文件双击运行,然后得到 VS 工程项目。如果你的 MinGW 环境是 MSYS2 下的,那么可以调用 msys2 文件夹下的 make-Makefiles.sh 生成 Makefile,然后使用 make 完成编译。

如果你预先已经有了匹配上述脚本的环境,可以直接使用上面的脚本进行编译,如果环境不匹配,比如想用目前脚本还不支持的 VS2019、VS2022,或者想在不安装 msys2 的情况下直接用 windows 的 MinGW 进行编译,可以直接对着 这个网站 去改 cmake -G 后面双引号里的参数。

如果你知道怎么操作,其实你就不用看下面的编译过程了,下面的介绍实质上是对上面这个过程的一个逐步的描述,然后配了点图。如果你对编译过程不太熟,可以继续往下看。

3 具体的编译流程

以下主要介绍在 windows 环境下编译 x265 的流程,在 windows 环境下,x265 有三种编译方式,一种是在安装了 VS(Visual Studio) 的情况下,使用 VS 中的 MSVC 编译环境进行编译,第二种是在安装了 MSYS2 版本的 MinGW 的情况下,使用 MSYS2 版本 MinGW 中的 gcc 进行编译,第三种是在 windows 中直接安装了 MinGW 时(非 MSYS2),直接调用 windows 中的 MinGW 的 gcc 进行编译

3.1 代码下载

编译前首先需要下载 x265 代码,如果你不需要下载最新版本,可以去 github 镜像下载,目前最新的是 2020 年的 3.4 版本,如果你需要最新的版本,或者对镜像不放心,那么可以从官方的 bitbucket 仓库下载,不过这里需要一些 git 的相关操作,以下介绍从官方仓库下载的方法

  1. 安装 git:因为下载 x265 代码需要用到 git clone​​,所以在下载前需要首先安装 git 软件,可以参考 该网站 或者其它教程进行安装

  2. 访问前面提到的 x265 代码存储网站,选择合适的 x265 版本,这一步主要是明确你想要的版本的名字,后面要用到(Branches 名或者 Tags 名)

    我们可以通过下图的按钮进行分支切换,查看不同版本的 x265 代码

    image

    其中 stable 版本 = 最新的 Release 版本,比如现在(2023/1)stable 版本就对应的 Release 3.5 版本,一般没有特殊情况建议下载 stable 版本,当然你也可以下载 master 版本,但是 master 版本是还在开发中的版本,可能会有 bug。比如 22 年 10 月的时候 x265 新增了一个 mcstf(基于运动补偿的时域滤波)在 master 版本里,但是这个 mcstf 因为刚实现,存在 bug,不能开多线程,一开多线程就 segmentfault,所以一般还是建议下载 stable 的版本,这个是已经稳定的版本,基本不会有前面这种 bug。

    image

    如果要 3.0 之前的版本,可以到在 tag 里面去找

    image

  3. 选择合适的 x265 版本后,使用 git 指令进行下载和版本切换

    首先点击右上角的 clone 获取下载指令,通过指令右边的复制按钮进行复制
    image

    然后在 git bash 里面通过 clone 指令进行下载(如果嫌慢,可以看下怎么设置 git 的代理,当然前提是你要有一个代理)

    name@DESK MINGW64 /f/WorkSpace/video-coding/x265
    $ git clone https://bitbucket.org/multicoreware/x265_git.git
    Cloning into 'x265_git'...
    remote: Enumerating objects: 89608, done.
    remote: Counting objects: 100% (89608/89608), done.
    remote: Compressing objects: 100% (89458/89458), done.
    remote: Total 89608 (delta 9097), reused 80262 (delta 111), pack-reused 0
    Receiving objects: 100% (89608/89608), 236.67 MiB | 11.05 MiB/s, done.
    Resolving deltas: 100% (9097/9097), do
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值