文件编码H264编解码器性能测试
最近应用开发的过程当中出现了一个小问题,顺便记载一下原因和方法--文件编码
H264编码器性能测试
如今,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.html
GIT地址: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.php
即使青春是一枝娇艳的花,但我明白,一枝独放永远不是春天,春天该是万紫千红的世界。 即使青春是一株大地伟岸的树,但我明白,一株独秀永远不是挺拔,成行成排的林木,才是遮风挡沙的绿色长城。即使青春是一叶大海孤高的帆,但我明白,一叶孤帆很难远航,千帆竞发才是大海的壮观。
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
5、网上查找YUV序列文件,或者自行制造
YUV测试序列下载地址:http://dpinglee.blog.163.com/blog/static/144097753201242254639795/ (这个是目前网上能找到的最全面的)
从上面的链接中找到的最为规范的要数这个:http://sp.cs.tut.fi/mobile3dtv/stereo-video/
YUV格式有很多种,再加上不同的参数配置,又会有很多种,下载前必定要看清晰是否是自己需要的格式,因为这些测试序列文件平日都会比较大的
6、网上查找YUV序列文件播放器,验证YUV文件的有效性
找到YUV序列文件以后,需要先验证一下,文件的正确性,可应用YUV播放器--YUViewer
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,这篇是罗索实验室的文章,一个专业研究音视频,流媒体解决方案的网站。
文章结束给大家分享下程序员的一些笑话语录: 不会,Intel会维持高利润,也会维持竞争局面,国外的竞争不是打死对方的那种。你看日本有尼康,佳能,索尼,都做相机,大家都过得很滋润。别看一堆厂,其实真正控制的是后面的那几个财团——有些竞争对手,后面其实是一家人。
--------------------------------- 原创文章 By
文件和编码
---------------------------------
转载于:https://www.cnblogs.com/jiangu66/archive/2013/05/27/3102436.html
文件编码H264编解码器性能测试相关推荐
- YUV通过MediaCodec编码H264
Camear_MainActivity.java,主界面类 import android.app.Activity; import android.graphics.ImageFormat; impo ...
- MP4文件中h264的 SPS、PPS获取
SkySeraph 博客园 首页 博问 闪存 新随笔 联系 订阅 管理 随笔- 190 文章- 0 评论- 407 [流媒體]H264-MP4格式及在MP4文件中提取H264的SPS.PPS及码流 ...
- EasyPusher安卓Android手机直播推送之MediaCodec 硬编码H264格式
EasyPusher安卓Android手机直播推送之MediaCodec 硬编码H264格式 最近在研究EasyDarwin的Push库EasyPusher,EasyPusher可以推送H264视频到 ...
- shell 批量转换文件编码
相信大家在平时的跨平台编程中碰到过文件编码问题,比如在Windows代码字符编码方式是GB2312,然而转到Linux却只支持utf-8,虽然对代码部分没啥影响,但是很多中文注释部分,却一片乱码,很让 ...
- linux下查看文件编码及修改编码
linux下查看文件编码及修改编码 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果 ...
- linux 文件编码问题
iconv -f UTF-8 -t gb18030 file_input -o file_output 上述命令不一定有用. 大概了解下文件编码,和vim里面的编码情况. 1 字符编码基础知识 字符编 ...
- Python读取文件编码及内容
Python读取文件编码及内容 最近做一个项目,需要读取文件内容,但是文件的编码方式有可能都不一样.有的使用GBK,有的使用UTF8.所以在不正确读取的时候会出现如下错误: UnicodeDecode ...
- php 创建文件编码,php fopen创建utf8编码文件例子
如果我们直接使用fopen创建会发现文件编码都不是uft-8的了,那么如果要创建uft8文件我们需要进行一些技术处理,下面我搜索了网络上一些通用方法,下面一起来看看吧. 使用PHP创建编码格式为utf ...
- Linux查看文件编码格式及文件编码转换
Linux查看文件编码格式及文件编码转换 在Linux 中专门提供了一种工具convmv进行文件 名 编码 的转换 ,可以将文件 名 从GBK转换 成UTF-8编码 ,或者从UTF-8转换 到GBK. ...
最新文章
- Serializer序列化使用
- ANT集成SVNANT访问SVN(Subversion)
- 笔记-中项案例题-2020年下-风险管理
- 正则基础之——神奇的转义
- ServletContext(核心内容)
- 基于最大最小距离的分类数目上限K确定的聚类方法
- Hadoop组件启动的三种方式及配置SSH无密码登入
- linux IIC子系统分析(七)——实例分析通过i2c-dev操作I2C设备
- 四川省副高级职称计算机考试试题,四川省职称计算机考试题库.doc
- 【转载】原生Ajax写法
- 《老路用得上的商学课》36-40学习笔记
- HAL库学习笔记-10 HAL库外设驱动框架概述
- 灵遁者:真正热爱生活的人,都知道这点
- 【Python人工智能】Python全栈体系(二十)
- java中style的用法
- Excel中带字母的数字序列自增实现方法
- ESP32学习笔记(18)——光强度GY-30(BH1750)使用
- 目标检测YOLO实战应用案例100讲-基于深度学习的航拍图像YOLOv5目标检测研究及应用(论文篇)
- 绝对把老师气到撞墙的答卷和大学宿舍里出现频率最高的话
- c语言程序的引言,C语言程序设计-第1章-引言
热门文章
- 【Flink】No new data sinks have been defined since the last execution
- Cadence OrCAD Capture 复制粘贴电路时保持元器件自动编号的方法图文教程
- 学习周报之第一周(数据分析)
- 19岁的少年发明一款机械计算器,载入史册
- 计算机主机五大部件是什么,计算机硬件主要包括:主机、键盘、显示器、鼠标器和打印机五大部件...
- 亚马逊MWS开发套路演示
- 谷粒商城 spu保存
- Redis持久化策略——RDB、AOF、混合
- 找不到名称“div”
- CSGO连接到任意服务器失败问题的解决方案(超详细)