概述
x265是一款开源符合HEVC标准的编码器,也属于VLC项目之一。
由于x265是开源的,因此它得到了广泛的应用和开发。许多开源项目和商业产品都使用x265进行视频压缩处理。同时,x265也支持多种编程语言和平台,使得开发者可以方便地集成到自己的项目中。
需要注意的是,由于视频压缩技术涉及到复杂的算法和计算,因此使用x265进行视频压缩处理可能需要一定的技术背景和经验。对于初学者来说,建议先了解基本的视频压缩原理和H.265/HEVC标准,再逐步学习和掌握x265的使用方法。
官方代码仓库:
https://bitbucket.org/multicoreware/x265_git/src/master/
git镜像代码仓库:
https://github.com/videolan/x265/commits/master
官方文档:
https://x265.readthedocs.io/en/master/
编译具体过程
源码下载:
git clone https://bitbucket.org/multicoreware/x265_git.git
打开源码:
用VScode等编辑工具打开x265源码,源码目录如下,build文件夹编译相关,doc是说明文档,source文件夹是真正的实现HEVC标准的源码。
打开x265/build文件目录,可以看到x265官方本身提供了不同的平台的构建脚本。可以看到在Windows系统里针对不同版本的Visual Studio版本提供不同的构建脚本。但可以看到目前版本(最新版本3.5)还未支持VS2019、VS2022的IDE。
根据x265/build/README.text中关于Windows系统的编译说明,进行详细的详细的编译。
编译说明:
Windows系统下x265的编译一般有三种方式,即使用VS的MSVC编译、MSYS2中gcc编译、MinGW中gcc编译。
安装依赖:
x265会用到NASM 和CMAKE,以及Visual Studio;其中NASM汇编依赖,CMAKE用于生成sln文件, Visual Studio直接打开sln文件进行编译,生成x265库和可执行文件。(直接知道到官网下载或可以利用PowerShell里的winget进行安装:winget install nasm
、winget install cmake
)
sln文件生成:
小编用的Visual Studio是2022版本,而x265/build源码里没有现成的2022的构建脚本,因此需要利用CMAKE生成sln文件。完整的CMAKE指令如下(需要cmake环境定位到x265源码目录下):
cmake -G "Visual Studio 17 2022" -S ./source -B ./build/project
关于cmake的三个参数-G、-S、-B的说明如下
-S <path-to-source>
Path to root directory of the CMake project to build.
-B <path-to-build>
Path to directory which CMake will use as the root of build directory.
If the directory doesn't already exist CMake will make it.
-G <generator-name>
Specify a build system generator.
CMake may support multiple native build systems on certain platforms. A generator is responsible for generating a particular build system. Possible generator names are specified in the cmake-generators(7) manual.
If not specified, CMake checks the CMAKE_GENERATOR environment variable and otherwise falls back to a builtin default selection.
运行上面cmake指令,如果依赖库都没问题,出现如下截图,则代表成功生成sln文件。
VS2022编译x265:
打开project里的x265.sln,可以看到图标的右上角有17的数字,代表是生成了VS2022版本的sln(VS2022对应的版本就是17)。
用VS2022打开,点击"生成"->“生成ALL_BUILD”,等待一段时间的编译。
一段时间后,在输出窗口就会提示生成:7 成功,0 失败,0 最新,0 已跳过
,则代表已经编译成功。
由于选择的是Debug-x64架构编译,因此在project/Debug目录里就可以找到对应的库文件libx265.dll
和x265
可执行程序等文件。
可以根据需求编译Release、x86架构等。
备注
- 此外还可以利用MinGW、msys2进行编译直接生成库和可执行程序,可以参考README.txt以及网上资源。
- Mac和Linux相对简单,直接根据README.txt即可。