最近在学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编码器的低延时编码和非延时编码的更多相关文章

  1. matplotlib作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码

    效果图 代码 import matplotlib.pyplot as plt config = { 'color': 'black', 'lw': 5, } def init(): plt.figur ...

  2. x264 编码器选项分析 (x264 Codec Strong and Weak Points) 2

    文章目录: x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1 x264 编码器选项分析 (x264 Codec Strong and Weak Po ...

  3. x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1

    文章文件夹: x264 编码器选项分析 (x264 Codec Strong and Weak Points) 1 x264 编码器选项分析 (x264 Codec Strong and Weak P ...

  4. ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析 (转5)

    原帖地址:http://blog.csdn.net/austinblog/article/details/25127533 该文将以X264编码器为例,解释说明FFMPEG是怎么调用第三方编码器来进行 ...

  5. Mac系统下编译支持Android平台的最新X264编码器

    Mac系统下编译支持Android平台的最新X264编码器 原文来自 http://www.mingjianhua.com,转载请注明出处 1.首先去官网下载最新的x264源代码,解压到任意目录 ht ...

  6. 【python测试开发栈】带你彻底搞明白python3编码原理

    在之前的文章中,我们介绍过编码格式的发展史:[文章传送门-todo].今天我们通过几个例子,来彻底搞清楚python3中的编码格式原理,这样你之后写python脚本时碰到编码问题,才能有章可循. 我们 ...

  7. 【Java】如何检测、替换4个字节的utf-8编码(此范围编码包含emoji表情)

    > 参考的优秀文章 1.十分钟搞清字符集和字符编码 2.Java中byte与16进制字符串的互相转换 3.[异常处理]Incorrect string value: '\xF0\x90\x8D\ ...

  8. 编码占用的字节数 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 ...

  9. 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数

    来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...

随机推荐

  1. 使用国内镜像composer安装laravel

    1.安装 Laravel,创建blog项目 首先先说一下直接安装的方法,要想使用这个方法,首先要FQ(这是我们的基本国情决定的).这样的安装方式有两种: ①.全局安装 使用命令Laravel Inst ...

  2. MySQL索引经验

    在数据库表中,使用索引可以大大提高查询速度. 假如我们创建了一个testIndex表:create TABLE testIndex(i_testID INT NOT NULL,vc_Name VARC ...

  3. Qt解析xml

    发现用 Qt 解析 xml 文件非常方便,下面是一个简单的解析 xml 文件的例子: #include <QtCore/QCoreApplication> #include <QDo ...

  4. JAVA-从题目看算法,将输入字符串进行排序并输出

    来看一个排列的样例.它所做的工作是将输入的一个字符串中的全部元素进行排序并输出,比如:你给出的參数是"abc" 则程序会输出:abc acb bac bca cab cba 这是一 ...

  5. PCIE BAR空间

    PCIE应用程序编程,首先就要理清PCIE BAR空间到底说的是什么.在PCIE配置空间里,0x10开始后面有6个32位的BAR寄存器,BAR寄存器中存储的数据是表示PCIE设备在PCIE地址空间中的 ...

  6. Oracle PLSQL Demo - 03.流程判断[IF ELEIF ELSE]

    declare v_job ) := 'Programmer'; v_sal number; begin if v_job = 'Programmer' then v_sal :; elsif v_j ...

  7. SparkStreaming操作Kafka

    Kafka为一个分布式的消息队列,spark流操作kafka有两种方式: 一种是利用接收器(receiver)和kafaka的高层API实现. 一种是不利用接收器,直接用kafka底层的API来实现( ...

  8. org.apache.commons

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍. 一.Commons BeanUtils http://jakar ...

  9. Google Guava 库用法整理<转>

    参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports- ...

  10. Extjs 弹出下拉Grid

    /** * 系统通用下拉选择Gird */ Ext.define("Common.picker.GridPicker", { extend: "Ext.form.fiel ...