X265编码效率仍然低
本次测试软件环境:Intel Celeron双核 2.60 Ghz CPU; 4GB 内存;安装 Ubuntu 13.04
hzsx@hzsx-server:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
***
hzsx@hzsx-server:~$ uname -a
Linux hzsx-server 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux
hzsx@hzsx-server:~$ cat /proc/cpuinfo
***
model name : Intel(R) Celeron(R) CPU G1610 @ 2.60GHz
***
cpu MHz : 1600.000
cache size : 2048 KB
265编码器 http://x265.org/
测试序列下载地址 ftp://ftp.ldv.ei.tum.de/videolab/public/SVT_Test_Set/720p/ 720p50_parkrun_ter.yuv 和 720p50_shields_ter.yuv
从http://x265.org/下载源码编译出可执行265,查看编码效率。
发现暂时还不能用于产品。
本次测试使用了两个720P 504帧的YUV序列。压缩时间均超过2分钟。这才20秒的视频而已。
encoded 504 frames in 119.35s (4.22 fps), 525.44 kb/s // 720p50_parkrun_ter.yuv
encoded 504 frames in 124.79s (4.04 fps), 503.96 kb/s // 720p50_shields_ter.yuv
一下是对比ffmpeg和libx264编码时间。
720p50_xxx_1280x720.yuv --->>> 720p50_xxx_.h264
ffmpeg 采用gusari已经编译好的 http://ffmpeg.gusari.org/static/32bit/ ffmpeg.static.32bit.2014-04-18.tar.gz
采用2014.4.18 版本是为了和 libx264 对应
./ffmpeg -s 1280x720 -i ~/multimedia/720p50_shields_ter_1280x720.yuv -r 25 -vcodec libx264 -b 800000 ~/multimedia/720p50_shields_ter_ffmpeg_800k.h264
-b 800000 代表 800k bitrate
libx264 采用 官网 x264-snapshot-20140420-2245.tar.gz 自编译
./x264 --bitrate 800 --fps 25 --output ~/multimedia/720p50_shields_ter_libx264_800k.h264 ~/multimedia/720p50_shields_ter_1280x720.yuv
--bitrate 800 代表 800k bitrate 。 和ffmpeg命令不同,这里是以k为单位。
这里之所以没有添加参数 1280:720,后面解释。
视频序列 720p50_parkrun_ter_1280x720.yuv 记作 p ; 720p50_shields_ter_1280x720.yuv 记作 s ;
对比一下时间消耗
首先,使用ffmpeg编码对应的时间消耗
bitrate 800k 5000k 8000k
时间消耗 p16s|s17s p27s|s33s p32s|s39s
然后,使用libx264编码对应的时间消耗
bitrate 800k 5000k 8000k
时间消耗 p16s|s17s p27s|s33s p32s|s39s
从时间消耗上来说,基本上是一样的。
最后解释一下,libx264参数设置中,如果添加了 --sar 1280:720
得到的H264视频文件,使用mediainfo查一下就会发现,Display aspect ratio : 3.160 。
申明,这里的yuv序列不包含任何其他信息,仅仅是颜色yuv值。
这是因为我yuv文件的命名,后缀前给出了分辨率1280x720,libx264会自动判断分辨率。
如果添加了--sar 1280:720,导致编码后再次缩放比例1280:720,即是(1280:720)*(1280:720) = 3.16
X265编码效率仍然低的更多相关文章
- (原)理解码率控制模式(x264,x265,vpx)
理解码率控制模式(x264,x265,vpx) 原文链接:https://slhck.info/video/2017/03/01/rate-control.html 翻译:lihaiping1603@ ...
- Android开发学习之路-Android Studio开发小技巧
上一次发过了一个介绍Studio的,这里再发一个补充下. 我们都知道,Android Studio的功能是非常强大的,也是很智能的.如果有人告诉你学Android开发要用命令行,你可以告诉他Andro ...
- DataTable数据赋值给Model通用方法
注:该文属本人原创,今后项目中发现该方法存在BUG会实时更新,转载记得附上原文出处,方便大家获得最新代码. 相信大家在做项目中,经常会根据不同的表new各种不同的Model,当需要对Model进行实例 ...
- iOS开发之音频口通信-通过方波来收发数据
之前做过的项目有需要通过音频口通信用方波来收发数据,由于这方面的资料比较少,下面就介绍下其原理,希望能给大家帮助. 一. 音频通信简介大家应该都知道支付宝声波支付和拉卡拉吧,它们都是利用手机的音频口( ...
- erl0008 - unicode 和 utf-8之间的关系
转载:http://blog.jobbole.com/84903/ 原文出处: 卢钧轶 欢迎分享原创到伯乐头条 本文将简述字符集,字符编码的概念.以及在遭遇乱码时的一些常用诊断技巧. 背景:字符集 ...
- jxls2.3-简明教程
jxls是一个简单的.轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局.java中成熟的excel导出工具有pol.jxl,但他们都是使用java代码的方式来导出ex ...
- protobuf 编码实现解析(java)
一:protobuf编码基本数据类型 public enum FieldType { DOUBLE (JavaType.DOUBLE , WIRETYPE_FIXED64 ), FLOAT (Java ...
- 【视频编解码·学习笔记】7. 熵编码算法:基础知识 & 哈夫曼编码
一.熵编码概念: 熵越大越混乱 信息学中的熵: 用于度量消息的平均信息量,和信息的不确定性 越是随机的.前后不相关的信息,其熵越高 信源编码定理: 说明了香农熵越信源符号概率之间的关系 信息的熵为信源 ...
- JQuery --- 第三期 (jQuery事件相关)
个人学习笔记 1.JQuery事件绑定 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
随机推荐
- 如何解决jenkins中shell脚本明明执行失败却不自行退出,且构建结果仍然显示success的问题??
首先,需要明确shell命令执行结果$?为0或者非0仅能代表此执行语句是否顺利执行了,例如: 执行语句:adb connect 192.168.XX.XX 执行结果:unable to connect ...
- Mongodb使用总结
学习Mongodb已经有半年多了,为啥学习它,工作需要啊.好了,废话不说,总结在实际项目应用中的几点问题. 学习总结 首先,mongodb基本上既照顾到了sql某些语法,又有nosql的许多优点.入门 ...
- C#如何控制方法的执行时间,超时则强制退出方法执行
转自:http://outofmemory.cn/code-snippet/1762/C-how-control-method-zhixingshijian-chaoshi-ze-force-quit ...
- MSCRM4.0如何使js事件在批量编辑表单中触发
MSCRM4.0如何使js事件在批量编辑表单中触发 MSCRM4.0如何使js事件在批量编辑表单中触发 MSCRM3.0我们可以通过在onload事件加入以下代码来控制某个属性为只读.crmForm. ...
- 带节假日JS万年历控件代码
<form name="CLD" class="content"> <table width="100%" border= ...
- OpenVPN下载、安装、配置及使用详解
OpenVPN下载.安装.配置及使用详解 OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可 ...
- python登录豆瓣,发帖
学习了urllib.urllib2及cookielib常用方法的使用登录豆瓣,由于有验证码,采取的办法是将验证码图片下载到同目录下,查看图片后输入验证码即可登录.发帖帖子内容写死在代码中了 [Pyth ...
- Codeforces Round #239 (Div. 2) C. Triangle
time limit per test:1 secondmemory limit per test:256 megabytesinput:standard inputoutput:standard o ...
- Spring3 +mybatis3 之 MapperScannerConfigurer
之前一直使用"org.mybatis.spring.mapper.MapperFactoryBean"这个类在spring中配置mybatis的dao接口,后来发现如果dao太多话 ...
- code forces Jeff and Periods
/* * c.cpp * * Created on: 2013-10-7 * Author: wangzhu */ #include<cstdio> #include<iostrea ...