今天总结一下近期对于H.265视频编码框架的一些配置及理解,如有错误请各位大佬指出,欢迎大家私信改正错误,共同探讨!
我采用的是HM16.9编解码器来对视频做处理。前期的一些准备工作有:
1.去官网下载HM16.9代码svn_HEVCSoftware - Revision 4998: /tags
2.官网下载Visual Studio(社区版免费)Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器
准备工作完成后,我们打开HM-16.9文件夹下的build文件夹,使用Visual Studio打开任意.sln文件,此时,已打开项目。点击视图-解决方案资源管理器,右侧出现解决方案资源管理器。如图所示:
接下来介绍如何设置配置文件及运行代码:
编码部分:
1、右键解决方案HM_vs2010(9个项目,共9个),点击生成解决方案,如下图1。运行完成后,控制台会出现“成功生成9个项目”。此时,你的HM-16.9\bin\vc2010\Win32\Debug目录下会出现下图2中红框内的6个文件。
2、复制HM-16.9\cfg文件夹下的.cfg文件到目录HM-16.9\bin\vc2010\Win32\Debug下,我这里复制的是encoder_lowdelay_P_main.cfg,根据你的需求去选择。下图介绍了.cfg文件中的一些参数,可以自行设置。
3、在解决方案中,右键TAppEcoder-设为启动选项。此时, TAppEcoder文件夹加粗。
4、在解决方案中,右键TAppEcoder-属性,得到下图2。点击配置属性中的调试,修改右侧的命令、命令参数、工作目录。
(1)命令:可以通过下拉箭头-浏览,选择1中生成的TAppEcoder.exe
(2)命令参数:是你选择的.cfg文件名称,此处可以写一个.cfg文件,也可以写多个。⚠️书写规范:-c XXX.cfg或-c XXX.cfg -c AAA.cfg
写多个.cfg的原因是将.cfg文件拆分成多块内容,一般来说分2个:1个是#======== File I/O ===============,其中包含你所操作视频的一些信息;第2个是#======== Profile ================及后面所有内容。
我这里将他们都放入encoder_lowdelay_P_main.cfg中,方便更改。
(3)工作目录:是你.cfg存放目录,一般放在HM-16.9\bin\vc2010\Win32\Debug下。
5、运行TAppEcoder,在指定路径HM-16.9\bin\vc2010\Win32\Debug下生成.cfg文件中设置的.bin文件和视频重构文件。运行结果如下:
解码部分:
1、在解决方案中,右键TAppDecoder-设为启动项目,然后,右键TAppDecoder-属性,得到如下图2。点击配置属性中的调试,修改命令、命令参数、工作目录。
(1)命令:可以通过下拉箭头-浏览,选择编码部分1中生成的TAppDecoder.exe
(2)命令参数:需要使用编码部分生成的.bin文件。⚠️书写规范:-b XXX.bin -o XXX.yuv
-o后面的内容是解码后的视频文件,如果想看解码后的视频文件,则可以选择生成,不需要则可不写-o XXX.yuv
(3)工作目录:.bin文件存放的目录,以及生成的.yuv文件也会放到这个路径下。
2、运行TAppDecoder,得到生成的.yuv解码视频。