文章目录
下载x265
首先从repo下载x265压缩包,这里我们选择最新版本3.1
,下载到本地文件夹后解压缩。
配置环境
我们先阅读以下build文件夹下的readme,了解应该如何运行这个项目:
一、必要条件
- GCC, MSVC (9, 10, 11, 12), XCode or Intel C/C++
- CMake 2.8.8 or 更高版本,下载链接 http://www.cmake.org
- 如果是 Linux,ccmake是有帮助的,通常是一个名为cmake-curses-gui的package
二、可选条件
如果是compile assembly primitives(大概是按照原始设置编译),要安装下面两个程序,并要放在PATH路径中
a.如果下载的x265是2.6之后的版本, 对于Windows,下载最新的yasm.exe
,下载地址 http://yasm.tortall.net/Download.html,放在%PATH%路径中,注意不需要下载vsyasm packages,对于Linux,打包时用到的yasm可能早于1.2。正确安装YASM之后,使用cmake生成文件,可以看到以下输出
-- Found Yasm 1.3.0 to build assembly primitives
b. 如果下载的x265是2.6之后的版本,需要下载安装nasm 2.13或者更高版本,也放在%PATH%路径中,下载连接 http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 。正确安装nasm之后,使用cmake生成文件,可以看到以下输出
-- Found Nasm 2.13 to build assembly primitives
现在可以build 编码器然后运行x265 -V了,如果出现x265 [info]: using cpu capabilities: MMX, SSE2, ...
,则截至目前一切顺利,否则x265的性能会大打折扣。Visual Leak Detector (仅针对Windows)
下载地址https://vld.codeplex.com/releases,同样也需保证该程序位于%PATH%下。
三、安装步骤 for Linux
- Use cmake to generate Makefiles:
cmake ../source
- Build x265:
make
Or use our shell script which runs cmake then opens the curses GUI to
configure build options
cd build/linux
;./make-Makefiles.bash
make
四、安装步骤 for Windows
We recommend you use one of the make-solutions.bat files in the appropriate build/ sub-folder for your preferred compiler. They will open the cmake-gui to configure build options, click configure until no more red options remain, then click generate and exit. There should now be an x265.sln file in the same folder, open this in Visual Studio and build it.
我们推荐你使用bulid/
下面子文件夹中对应你编译器版本的make-solutions.bat
文件。他们将会打开cmake-gui
来configure build options,点击configure 直到没有红色的选项存在,然后点击 generate 并 exit。在原来的文件夹下会有一个x265.sln
文件,使用VS打开即可。
对于Windows用户,总结下来就是:
x265
版本大于2.6,需要下载yasm.exe
和nasm.exe
,并添加到%PATH%- 推荐下载
Visual Leak Detector
,同样放在%PATH%里 - 然后选择
build/
下合适的VS版本,双击.bat
脚本,自动运行cmake-gui,然后点点点,直到没有共色选项,然后generate就可以看到.sln
文件啦!
图文步骤
首先下载yasm 1.3.0
和nasm-2.15.05-installer-x86.exe
,这里为了保险都是32位版本的,放置在C:\Windows
下面;
然后双击build/make-solutions.bat
,出现cmd命令框,等到输出停止后按回车,cmake 界面就出现了:
勾选需要打开的功能后(如果想使用x265 10bit,需要勾选HIGH_BIT_DEPTH
),点击左下角的Configure
,如果像下图一样,出现Configure done
且 待勾选的功能没有红色的,代表Configure完成:
(如果点击Configure之后,还有功能是红色的,需要勾选后重新Configure,直到没有红色的功能为止)
再点解左下角的Generate
,出现Generate done
之后,就可以关闭Cmake了。
此时,文件夹下会从原来的三个bat文件扩展为很多文件,我们只用VS打开x265.sln
即可。
报错CMake Error :Visual Studio 15 2017 -could not find any instance of Visual Studio
的解决方法
这可能是因为VS没有安装某系模块,以及没有配置合适的环境变量,可以对照这篇教程进行修改。
【补充】x265 10bit的编译
x265在10bit序列上表现很好,因此也是各大制片组在压缩4k视频时的不二之选,更多关于x265 10bit的压缩性能可以参考文章:为什么我会选择x265。
如果要使用x265 10bit的功能,需要修改source
文件夹下的CMakeListst.txt
,将 option(HIGH_BIT_DEPTH "Store pixel samples as 16bit values (Main10/Main12)
改为ON
,然后双击build/make-solutions.bat
,此后的步骤基本不变,唯一需要做的是在点击Configure
之前,勾选HIGH_BIT_DPETH
。
值得注意的是,只有64位架构上才能使用x265 10bit,如果是在32位系统上使用10bit x265编码高分辨率序列,可能会出现内存分配的问题。
调试运行
首先将cli
设为启动项目,然后打开项目属性:
和HM16一样,我们只需要配置命令参数和工作目录即可:
其中,工作目录的设置我习惯上在总项目文件下新建一个workspace文件夹,下面的文件夹以年份_日期
命令,例如21_1229
表示2021年12月29号的测试文件和测试结果。
命令参数设置为--preset fast --input sintel_640_360.yuv --fps 30 --input-res 640x360 --output rec.bin --psnr --ssim --bitrate 128
,其中YUV文件需要自己去找,后面的input-res
也需要根据YUV设置。
然后右键生成解决方案即可,输出结果如下表示生成成功:
更多关于x265的命令,参考x265 documentation,在上面的例子中,你可以选择不同的加速模式,更多模式可以参考—perset <string/integer>