版本:0.1.0-beta
作者:石硕
更新:2014-04-13 15:54:08
============================================================
如今,H264已经成为视频行业的标准规范,企业中使用比较多的当数X264,开源,资源消耗又比较少。
首先,介绍一下常见的三大开源H264编码器:JM、X264、T264
JM H264的官方测试源码,实现了264的所有特性,但程序结构冗长,编码复杂度高,不推荐商业应用。
X264 摈弃了264中对编码性能贡献小,但计算复杂度极高的新特性,推荐商业应用。
T264 编码与X264类似,但是解码器只能解T264编码的,有点坑。
在使用H264编码器X264之前,我们先对其性能进行测试,以确定是否需要再次优化。
测试的流程如下:
GIT地址:git://git.videolan.org/x264.git(注,X264最原始的源码都是在linux下编译的,如果想要windows版的,请看下面)
windows版X264地址:http://doom10.org/index.php?topic=3.0(注:第三方移植的,自行判断是不是最新)
下面是视频直播中使用到的:
分 辨 率:160×120 320×240 640×480
帧 率:10 15 20 25 30
码 率:128 160 256
编码延时:<= 200ms
码率精度:<= 15%
兼 容 性:标准H264解码器可以解码
操作系统:winXP win7-x86 win7-x64
CPU :AMD Athlon II X2 240(高配) AMD SP145(低配)
MEM :2GB
YUV结构介绍中文翻译版:http://blog.csdn.net/SearchSun/article/details/2443867
在这些YUV格式中,比较常见的是YUV420,一帧YUV420在文件中的排布如下,以CIF图像(352*288)为例:
Y信息 352*288 B
U信息 352*288/4 B
V信息 352*288/4 B
算出一帧数据的大小 = 352*288 + 352*288/4 + 352*288/4 ,常见写作 352*288*3/2
从上面的链接中找到的最为规范的要数这个:http://sp.cs.tut.fi/mobile3dtv/stereo-video/
YUV格式有很多种,再加上不同的参数配置,又会有很多种,下载前一定要看清楚是否是自己需要的格式,因为这些测试序列文件通常都会比较大的
5.1、YUV序列文件制作方法
1)从网上下载任意格式的视频文件,AVI最好
2)安装 FFSetup.exe(中文名称格式工厂),把下载好的视频文件转换为AVI格式,转换参数中视频编码选H264
3)使用 avitoyuv.exe 把转换好的AVI文件转换为YUV文件
4)使用 YUVViewer.exe 验证转换的正确性
YUViewer下载地址:http://ishare.iask.sina.com.cn/f/21603725.html
编码延时:可以在测试程序中输出日志查看
码率精度:同上
兼 容 性:使用H264visa可以正常播放即可
CPU :高配在2%以内 低配在4%以内
MEM :?MB以内
H264visa下载地址:http://ishare.iask.sina.com.cn/f/25002676.html (这个需要2新浪积分)
如果对X264编解码比较感兴趣,打算深入研究,可以从这里开始:http://www.rosoo.net/a/200908/7424.html,这篇是罗索实验室的文章,一个专业研究音视频,流媒体解决方案的网站。
作者:石硕
更新:2014-04-13 15:54:08
============================================================
如今,H264已经成为视频行业的标准规范,企业中使用比较多的当数X264,开源,资源消耗又比较少。
首先,介绍一下常见的三大开源H264编码器:JM、X264、T264
JM H264的官方测试源码,实现了264的所有特性,但程序结构冗长,编码复杂度高,不推荐商业应用。
X264 摈弃了264中对编码性能贡献小,但计算复杂度极高的新特性,推荐商业应用。
T264 编码与X264类似,但是解码器只能解T264编码的,有点坑。
在使用H264编码器X264之前,我们先对其性能进行测试,以确定是否需要再次优化。
测试的流程如下:
1、到X264官网下载264源码
官方网站:http://www.videolan.org/developers/x264.htmlGIT地址:git://git.videolan.org/x264.git(注,X264最原始的源码都是在linux下编译的,如果想要windows版的,请看下面)
windows版X264地址:http://doom10.org/index.php?topic=3.0(注:第三方移植的,自行判断是不是最新)
2、根据实际的业务需要,制定相应的测试标准
由于X264是根据H264的标准制作的,所以,H264标准以及以前标准都是适用的。实际应用中,会有不同的需求,比如说监控对帧率要求比较低,再比如说网络传输对码率要求比较高,又比如说在移动平台上使用对CPU MEM要求比较高。下面是视频直播中使用到的:
分 辨 率:160×120 320×240 640×480
帧 率:10 15 20 25 30
码 率:128 160 256
编码延时:<= 200ms
码率精度:<= 15%
兼 容 性:标准H264解码器可以解码
操作系统:winXP win7-x86 win7-x64
CPU :AMD Athlon II X2 240(高配) AMD SP145(低配)
MEM :2GB
3、新建测试项目,调用X264库
新建VC项目,读取YUV序列文件(下面会介绍文件来源),编码,输出到H264文件4、网上查找YUV序列的结构,了解都有哪些格式
YUV结构介绍英文版:http://www.fourcc.org/yuv.phpYUV结构介绍中文翻译版:http://blog.csdn.net/SearchSun/article/details/2443867
在这些YUV格式中,比较常见的是YUV420,一帧YUV420在文件中的排布如下,以CIF图像(352*288)为例:
Y信息 352*288 B
U信息 352*288/4 B
V信息 352*288/4 B
算出一帧数据的大小 = 352*288 + 352*288/4 + 352*288/4 ,常见写作 352*288*3/2
5、网上查找YUV序列文件,或者自行制作
YUV测试序列下载地址:http://dpinglee.blog.163.com/blog/static/144097753201242254639795/ (这个是目前网上能找到的最全面的)从上面的链接中找到的最为规范的要数这个:http://sp.cs.tut.fi/mobile3dtv/stereo-video/
YUV格式有很多种,再加上不同的参数配置,又会有很多种,下载前一定要看清楚是否是自己需要的格式,因为这些测试序列文件通常都会比较大的
5.1、YUV序列文件制作方法
1)从网上下载任意格式的视频文件,AVI最好
2)安装 FFSetup.exe(中文名称格式工厂),把下载好的视频文件转换为AVI格式,转换参数中视频编码选H264
3)使用 avitoyuv.exe 把转换好的AVI文件转换为YUV文件
4)使用 YUVViewer.exe 验证转换的正确性
6、网上查找YUV序列文件播放器,验证YUV文件的有效性
找到YUV序列文件之后,使用 YUVViewer.exe 验证文件的正确性YUViewer下载地址:http://ishare.iask.sina.com.cn/f/21603725.html
7、运行测试项目,读取YUV文件,输出H264文件
8、编码的过程中,观察H264编码器的各项指标,并做记录
在不同的参数配置下,观察下面的各项指标是否正常:编码延时:可以在测试程序中输出日志查看
码率精度:同上
兼 容 性:使用H264visa可以正常播放即可
CPU :高配在2%以内 低配在4%以内
MEM :?MB以内
9、网上查找H264文件播放器,验证编码的正确性
使用H264visa验证编码后H264文件的正确性H264visa下载地址:http://ishare.iask.sina.com.cn/f/25002676.html (这个需要2新浪积分)
如果对X264编解码比较感兴趣,打算深入研究,可以从这里开始:http://www.rosoo.net/a/200908/7424.html,这篇是罗索实验室的文章,一个专业研究音视频,流媒体解决方案的网站。
版权声明:本文为博主原创文章,未经博主允许不得转载。