测试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 - 语法复习与学习
//本月的第一天,最后一天 $start=date('Y-m-01', strtotime(date("Y-m-d"))); echo date('Y-m-d', strtotim ...
- Ext.net中Combobox如何绑定数据库中的值-通用方法
今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单.简单添加项就行了.代码如下: <ext:ComboBox ID=" /> </Items> ...
- 使用 dockerfile 创建镜像
dockerfile 是一个文本格式的配置文件,可以使用 dockerfile 快速创建自定义的镜像. dockerfile 一般包含4部分信息:基础镜像信息.维护者信息.镜像操作指令.容器启动时执行 ...
- Java:多线程,线程同步,同步锁(Lock)的使用(ReentrantLock、ReentrantReadWriteLock)
关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨Lock对象. synchronize ...
- 【C语言】调整数组使奇数所有都位于偶数前面(改动)
//调整数组使奇数全部都位于偶数前面. //输入一个整数数组.实现一个函数,来调整该数组中数字的顺序使得数组中全部的奇数位于数组的前半部分,全部偶数位于数组的后半部分 #include <std ...
- Linux安装Qt详细步骤 亲测总结
下载 qt-everywhere-opensource-src-4.8.4.tar.gz================准备工作====================yum install kern ...
- Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧
Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧 相信大家刚看到Zynq手册的时候,对着那么一大堆缩略语肯定是一头雾水,特转来一篇文章,为大家解惑 摘要:本文介绍与 ...
- [k8s]subpath解决cm覆盖目录问题
参考 发现cm老覆盖容器原有目录里的内容,后来不得不通过in -s的方式来搞cm, 先将cm挂到/tmp下,然后ln -s文件到指定目录. 后来发现个cm的subpath特性可以解决这个问题 写了bu ...
- Spring中applicationContext.xml的bean里的id和name属性区别
转自:http://www.cnblogs.com/ztf2008/archive/2009/02/11/1388003.html <beans><bean id="per ...
- Qt creator 编译错误:无法解析的外部符号(命令)
问题来自于:仅仅是在creator 中加入了一个新的DIalog类,并在main(),中实例化并show.就出现例如以下的错误: main.obj:-1: error: LNK2019: 无法解析的外 ...