版本号: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之前,我们先对其性能进行測试,以确定是否须要再次优化。
    測试的流程例如以下:

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格式有非常多种,再加上不同的參数配置,又会有非常多种。下载前一定要看清楚是否是自己须要的格式。由于这些測试序列文件通常都会比較大的
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,这篇是罗索实验室的文章。一个专业研究音视频,流媒体解决方式的站点。

工具推荐

1.软件开发必备翻墙代理。低延迟(50ms),月费10元,详询(宝哥儿QQ1066690060)请自觉遵守国家法律法规

转载于:https://www.cnblogs.com/jzssuanfa/p/6820728.html

H264编码器性能測试相关推荐

  1. Linux 性能測试工具

    Linux 性能測试工具 linux performance 查看系统配置 查看CPU信息 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64- ...

  2. 微博达人硅谷之歌:Testin云測移动搜索性能測试非常是让人信服

    微博达人硅谷之歌:Testin云測移动搜索性能測试非常是让人信服 2014/10/08 · Testin · 开发人员訪谈 2013年11月1日,谷歌运行董事长施密特(Eric Emerson Sch ...

  3. mongodb3.0 性能測试报告 一

    mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver   共6台 cpu:  单颗8核 ...

  4. 软件安全性能測试(转载)

    近来,在我负责的公司某软件产品的最后測试工作,经常被问到这样一个问题:在做測试过程中,我们的软件产品在安全性方面考虑了多少?应该怎样測评一个软件究竟有多安全? 这个软件因为涉及客户商业上重要的信息资料 ...

  5. 最大概率法分词及性能測试

    最大概率分词是一种最主要的统计方法分词. 一个待切割的字符串有多种分词结果,最大概率分词的原则是将当中概率最大的那个作为该字符串的分词结果. 第一部分 理论基础 如对一个字符串: S:有意见分歧 分词 ...

  6. Android App性能測试

    一.内存 1.查看单个应用App最大内存限制 Command:adb shell "getprop|grep heapgrowthlimit" C:\Users\hujiachun ...

  7. 用python做自己主动化測试--绘制系统性能趋势图和科学计算

    在性能測试中.我们常常须要画出CPU memory 或者IO的趋势图. 预计大学里.大多数人都学习过matlib, 领略了matlib绘图的强大. python提供了强大的绘图模块matplotlib ...

  8. 软件測试基本方法(一)之软件測试

    为什么要进行软件測试: 产品质量的保证 控制成本的关键 软件可靠性确认 让企业具备国际竞争力 软件測试定义: 软件測试是由"验证(verification)"和"有效性确 ...

  9. 移动測试技术保护源码!解码全球首款移动端白盒測试工具ThreadingTest (文章转自己主动点科技)...

    作者 智晓锋 - 2014/07/14 自从斯诺登曝光美监听丑闻事件之后,我国政府就将信息安全问题上升到了国家安全的高度.基于此.国内的一家创业公司推出了智能型Android真机白盒測试以及开发辅助类 ...

最新文章

  1. 南外计算机课,南外小升初,怎么考?
  2. 【PAT乙级】1005 继续(3n+1)猜想 (25 分)
  3. *** FATAL ERROR: too many grib files .. 1st=F:\data\预测数据 2nd=- ***
  4. C++编译预处理:宏定义指令、文件包含指令和条件编译指令
  5. springCloud分布式事务实战(九)改造ThemeMicroService 支持分布式事务
  6. 0.typescript-相关文档
  7. 使用Visual Studio来创建动态库/静态库,并加载
  8. 49 字符大小写排序
  9. 虚拟机的安装中遇到的问题(WIN10主机)
  10. Web Science笔记 Emotion, Event detection
  11. 在centos7上编译EDK2
  12. Ardupilot代码学习笔记
  13. Qt调试错误:The inferior stopped because it received a signal from the Operating System.SIGSEGV
  14. 也谈阻塞、非阻塞、同步、异步
  15. 记录使用QRCode 显示并下载二维码图片
  16. 手机微信语音批量转文字 使用百度语音识别
  17. LeetCode 复数乘法
  18. Wireshark For Windows
  19. python爬虫学习 之 定向爬取 淘宝商品价格
  20. 软件工程论文书写设计步骤及如何降低重复率

热门文章

  1. 彭蕾:阿里的人才观,其实很简单,就4个词,8个字
  2. CSS——美化网页元素(字体样式,文本样式,阴影,超链接伪类,列表,背景,渐变)
  3. new Set 去重和其他方法
  4. 有一个电影叫《原谅我,又一次撒谎》
  5. Android FlowLayout 流式布局
  6. Hive中alter table 对分区表的操作:添加列,修改列,删除历史分区
  7. 华为OD机试 - 能力组队(C 语言解题)【独家】
  8. 多迪技术总监揭秘:Java入门最佳学习路径几个阶段?
  9. python 常见错误提示
  10. 杰理之AC104如何解析FAT文件系统中的dir文件【篇】