在VS工程中引入x264库进行H.264编码,其中一个难点是填写编码参数结构体x264_param_t,因为x264_param_t结构体很庞大,x264库每个版本此结构体都有变化,缺少说明文档。编码实践中摸索出一套有效的方法,大家跟随我去围观。这套方法总体思路是:首先用x264工程生成的测试程序x264cli.exe找到合适的命令行选项,再把命令行选项填写到VS工程属性进行调试运行,修改x264测试程序代码x264.c,增加x264_param_t结构体默认值变量,在x264.c代码中,完成解析命令行选项处设置断点,运行调试,当程序在断点处停止是,使用VS变量监视窗口对比结构体x264_param_t的原始值与更新命令行选项后的值,把不同的变量值记录下来并填写代码中。
1、确定合适的命令行选项
a、用“x264cli.exe -h”找到列出所有选项的命令,不同的X264库版本可能不同。
b、执行“x264cli.exe --fullhelp”
c、阅读详细帮助,确定命令行参数,准备好测试用的视频文件,比如:
x264cli --preset ultrafast --tune zerolatency --bitrate 2000 -I 25 -o captor-1000.h264 captor-1000_1920x1080.yuv
2、设置x264测试程序工程属性
主要是填写“配置属性 --》调试 --》命令参数”,如下图。
3、修改x264测试程序的代码
修改x264.c文件,增加x264_param_t结构体默认值变量,如下图。
4、编译、设置断点、运行 Debug
在x264.c文件的main()函数中找到解析命令行选项的代码,在合适的地方设置断点。
5、使用VS变量监视窗口对比结构体x264_param_t的原始值与更新命令行选项后的值
附上x264库VS2019工程下载地址:Projects · Shift Media Project