测试x264编码器的低延时编码和非延时编码
最近在学x264的编码,经过大量的测试,编码1080P的视频,编码10000帧数据。
在设置为低延时编码的时候:
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:8.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:8.000000 ms.
编码线程0,一帧耗时:8.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:7.000000 ms.
编码线程0,一帧耗时:6.000000 ms.
编码线程0,平均帧编码时间7.24ms.
编码线程0,总编码帧数:10000,得到编码帧数:10000,延时编码帧数:0,单帧最小耗时:5.00,最大耗时:18.00,总消耗时间:104274.000 ms,总编码耗时:72352 ms,平均耗时:0 ms.
结束:1 路编码平均总时间=104274.000000.
结束!!
出第一帧的时间,耗时7ms.
==============================
CPU:
4路编码,25帧2倍速,CPU:65~75%
5路编码,25帧2倍速,CPU:90~95%
8路编码,25帧1倍速,CPU:60~70%
当设置为非延时编码时:
编码线程0,一帧耗时:2.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:4.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:5.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:1.000000 ms.
编码线程0,一帧耗时:2.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,取延时帧,一帧耗时:2.000000 ms.
编码线程0,取延时帧,一帧耗时:2.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,取延时帧,一帧耗时:0.000000 ms.
编码线程0,平均帧编码时间1.48ms.
编码线程0,总编码帧数:10000,得到编码帧数:10000,延时编码帧数:6,单帧最小耗时:0.00,最大耗时:24.00,总消耗时间:45206.000 ms,总编码耗时:14774 ms,平均耗时:0 ms.
结束:1 路编码平均总时间=45206.000000.
结束!!
出第一帧的时间,耗时47ms
==============================
CPU:
8路编码,25帧1倍速,CPU:65~80%
5路编码,25帧2倍速,CPU:85~95%
4路编码,25帧2倍速,CPU:55~65%
差距这么大,我自己也惊讶了。
查找了下原因:
(官方)
Each slice adds some bitrate (or equivalently reduces quality), for a variety of reasons: the slice header costs some bits, cabac contexts are reset, mvs and intra samples can't be predicted across the slice boundary.
因为采用低延时编码的时候,每个切片添加了bitrate比特,然后有些算法上下文需要重置,以及帧内预测不能在片内做。(本人的理解。)
测试x264编码器的低延时编码和非延时编码的更多相关文章
- matplotlib作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码
效果图 代码 import matplotlib.pyplot as plt config = { 'color': 'black', 'lw': 5, } def init(): plt.figur ...
- x264 编码器选项分析 (x264 Codec Strong and Weak Points) 2
文章目录: x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1 x264 编码器选项分析 (x264 Codec Strong and Weak Po ...
- x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1
文章文件夹: x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1 x264 编码器选项分析 (x264 Codec Strong and Weak P ...
- ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析 (转5)
原帖地址:http://blog.csdn.net/austinblog/article/details/25127533 该文将以X264编码器为例,解释说明FFMPEG是怎么调用第三方编码器来进行 ...
- Mac系统下编译支持Android平台的最新X264编码器
Mac系统下编译支持Android平台的最新X264编码器 原文来自 http://www.mingjianhua.com,转载请注明出处 1.首先去官网下载最新的x264源代码,解压到任意目录 ht ...
- 【python测试开发栈】带你彻底搞明白python3编码原理
在之前的文章中,我们介绍过编码格式的发展史:[文章传送门-todo].今天我们通过几个例子,来彻底搞清楚python3中的编码格式原理,这样你之后写python脚本时碰到编码问题,才能有章可循. 我们 ...
- 【Java】如何检测、替换4个字节的utf-8编码(此范围编码包含emoji表情)
> 参考的优秀文章 1.十分钟搞清字符集和字符编码 2.Java中byte与16进制字符串的互相转换 3.[异常处理]Incorrect string value: '\xF0\x90\x8D\ ...
- 编码占用的字节数 1 byte 8 bit 1 sh 1 bit 中文字符编码 2. 字符与编码在程序中的实现 变长编码 Unicode UTF-8 转换 在网络上传输 保存到磁盘上 bytes
小结: 1.UNICODE 字符集编码的标准有很多种,比如:UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig 等: 2 服务器->网页 utf-8 ...
- 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数
来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...
随机推荐
- mysql分组取每组前几条记录(排序)
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...
- mysql特殊语句学习
一.Mysql ON子句和USING子句 Mysql 中联接SQL语句中,ON子句的语法格式为:table1.column_name = table2.column_name. 当模式设计对联接表的列 ...
- 【Android】11.1 Activity的生命周期和管理
分类:C#.Android.VS2015: 创建日期:2016-02-21 一.基本概念 1.必须理解这些方法,否则你编的程序根本就没法在实际项目中使用 当然,如果仅仅是为了玩玩,或者仅仅是作为例子为 ...
- 【Android】3.15 短串分享功能
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 短串分享是指,用户搜索查询后得到的每一个地理位置结果将会对应一条短串(短链接),用户可以通过短信.邮 ...
- windows xp 创建 Oracle(11G)数据库实例时写入系统日志失败解决方案
1.查看Windows日志相关服务(Even Log),无异常: 2.清空事件管理器中“应用程序”和“系统节点”的内容,对这两个节点,分别在“属性”页面用增大“最大日志文件大小”的值,并选中“按需要改 ...
- Cocos2d-x添加Android手机震动
这个震动需要调用adnroid系统的方法,所以需要C++调用java,JNI这里就不多做介绍了,需要的可以自己去查找下相关资料,如果你只是需要实现这个功能,相信你看完本文,应该就OK了! 1.首先,修 ...
- Mac OSX安装 GitLab 5.x
1)安装mac 2) 创建git用户和git组 4) 安装XCode 5) 安装命令行组件 6) 安装 Home brew $ ruby -e "$(curl -fsSL https://r ...
- iOS-ARC-环境下如何查看引用计数的变化
iOS-ARC-环境下如何查看引用计数的变化 一,新建立一个工程,用于测试引用计数的变化. 二,找到如下路径Build Phases---->Compile Sources---->App ...
- cvs history,CVS中查询目录下所有文件的提交记录
我们习惯用eclipse svn中查看一个目录下,甚至整个工程下,所有的文件的变更列表:操作为:右键工程 -> Team -> Show History. 最近在使用CVS,eclipse ...
- Oracle PLSQL Demo - 31.执行动态SQL拿一个返回值
DECLARE v_sql ) := ''; v_count NUMBER; BEGIN v_sql := v_sql || 'select count(1) from scott.emp t'; E ...