一、所谓码率湖南手机棋牌筒子
对于流媒体,码率(bitrate)可以定义为:单位时间内流过的数据量,单位通常采用kb/s(千比特/秒)。
这里所谓“流过”,其实就是指codec对数据进行处理。不过一般说的恒定码率(CBR)码率、可变码率(VBR),都是针对编码后的数据流,不针对解码后的数据流。解码后的数据流码率通常为一个恒定值(例如解码后的视频码率=长×宽×色深×fps),不在本文和本软件的探讨范围之内。
码率最简单的计算公式就是:码率=文件总长度/播放时间
这个公式的物理含义是:codec在播放时间内,需要将整个文件处理完。当然这样算出来的只是一个粗略的平均数,不能反映实际码率在每一秒的变化。而且由于文件中除了音频、视频数据外,还包含其它数据,因此按上面这个公式计算出来的码率会比真正的平均码率稍大。
本软件所计算的,就是编码器压缩生成的数据流的实际码率,不仅有平均码率,还有每一秒的码率,便于对数据流量进行定量分析。
不过对于大多数普通人来说,在说到“码率”的时候,AVI和RMVB又略有不同:RMVB文件是音频、视频一起编码的,所以它的码率,通常是包含音频、视频的总码率;而AVI文件的音频、视频通常是分开压缩,最后才合成到一起,因此一般人在说到AVI的码率时,指的多半只是视频的码率。
本软件可以计算视频、音频、视频+音频的码率。输出的时候,可以选择输出全部或只输出某一种码率。
二、AVI码率计算
AVI流的码率计算基本思想是:算出fps(framespersecond)值,然后顺序获取每一帧的压缩数据量,将1秒内的所有帧的压缩数据量加在一起,就是这一秒的码率。需要注意的是AVI文件的fps值通常是一个浮点数,因此会出现某一帧横跨两秒的情况(如对于fps=23.976的AVI文件来说,第24帧就从第1秒尾延续到第2秒头),计算时需要按照跨越的比例在前、后秒间进行分配。如果将fps圆整成整数,不仅计算结果不精确,而且对于播放时间比较长的片子,还可能出现最后几秒没数可算的窘况。
获取帧数据量的方式通常有3种:
使用微软提供的vfw(videoforwindows)接口。对于视频流,这种方法是最方便的,但是音频流经常不能逐帧读取,因此不能用这种方法计算音频流的码率。
使用微软提供的mmio接口,按照RIFF格式解析AVI文件。这种方法要求对AVI文件结构非常了解。
使用第三方源代码,然后在需要的地方进行更改。这个应该是比较省事,也比较靠得住的一种方案。本软件就参考了guliverkli开源项目下的AviSplitter源代码。
为了省事,也为了加快读取速度,本软件直接从AVI文件的"idx1"段读取包长度,这种方式与vfw的处理方式是一样的,不过如果AVI文件中没有索引,或索引出了问题,用本软件读取的数据也会出错。幸好常用的AVI制作、编辑软件Nandub是支持索引的,所以只要是用它合成的AVI,能够正常播放就能用本软件计算码率。
由于计算码率的时候不需要解码,因此不需要在机器上安装相应的codec。
三、RMVB码率计算
RMVB的码率计算方法与AVI类似,不过RMVB的IndexRecord中不包括包(package)长,因此只能逐包读取RMVB数据,在包头信息中有包的时间戳,根据时间戳、包长度,累加即可计算出每一秒内需要处理的总数据长度,即码率。由于包头有时间戳,因此在计算RMVB码率的时候,没有必要计算fps值。不过要注意的是RMVB文件的数据包可能出现跨秒的情况(如前一包的时间戳是1738,后一包的时间戳是2049,则前一包的数据可以认为从前1秒尾跨越到后1秒头),计算时需要按照跨越的比例在前、后秒间进行分配。
RMVB的解析接口我原本以为Real公司会提供,但是看了半天SDK帮助也不得要领,最后接受cool18的建议,参考了guliverkli开源项目下RealMediaSplitter的源代码实现。
四、统计特征量
为了从统计学的角度对码率进行分析,本软件提供了码率分布和统计特征量计算。
码率分布(Bitratedistribution)包括三列:码率(Bitrate,单位为kb/s),频数(Frequence),百分比(Percent)。它的含义是:在整个片子中,码率从多少到多少的时间一共有几秒,在全片中占百分之几。例如下面这段输出:
Bitrate Freq. Percent
<400 3 10.3%
<500 9 31.0%
<600 5 17.2%
<700 5 17.2%
<800 4 13.8%
<900 1 3.4%
<1000 0 0.0%
<1100 0 0.0%
<1200 2 6.9%
其含义为:码率小于400的地方有3处,占全片的10.3%;码率在400~500之间的有9处,占全片的31.0%;码率在500~600之间的有5处,占全片的17.2%,依此类推。
为了简化输出,本软件只提供视频流的码率分布。分布间隔自动计算,计算依据有两个:
间隔为100kb/s的倍数。
间隔区间不超过10个。太多的区间只会使人眼花缭乱。
在本软件中,以计算出来的各秒码率为统计样本,对以下统计指标进行了计算:
Max:最大值。
Min:最小值。
Average:平均值。
Standarddeviation:标准差,反映样本的变化程度。理论上说,标准差适用于对称分布,特别是正态或近似正态分布。我没有时间,也没有兴趣去做码率是否符合正态分布的假设检验,在这里加上这个指标,只不过是出于某种不可救药的职业习惯。如果您认为码率分布不是对称分布,可以忽略标准差和变异系数这两个特征量。
Coefficientofvariation:变异系数=标准差/平均值。在两组(或几组)资料均数相近、度量单位相同的条件下,标准差大,表示观察值的变异度大,即各观察值离均数较远,均数的代表性较差;反之,表示各观察值多集中在均数周围,均数的代表性较好。若比较度量单位不同或均数相差悬殊的两组(或几组)观察值的变异度时,需计算变异系数进行比较。
由于第一秒、最后一秒的数据很难准确计算,与其它数据相比往往偏差比较大,因此在计算统计特征量时,这两个时间点上的数据不参与运算。
附录A鸣谢
本软件在开发过程中参考了下列代码,在此表示感谢:
AVI、RMVB码率计算部分分别参考了guliverkli开源项目下的AviSplitter和RealMediaSplitter。
Excel文件输出部分采用了AndreiLitvin的SavingExcel2.1Workbook。
曲线绘制部分采用了JuanCarlosSanchez的ScrollChartControl。
AVI文件的视频、音频解码器名称来自AVIcodec。
RMVB文件信息输出参考了AlexeyPavluchenko的rma(RealMediaAnalyzer)的-d命令。
一、软件安装/删除
本软件安装非常简单:创建一个目录,用WinZip将下载下来的ZIP包解压缩到该目录即可。
本软件的删除也很简单:删除从ZIP包中解压缩出来的所有文件即可。
ZIP包中包括下列文件:
BitrateCurve.exe。这是软件的主程序。
BitrateCurve.htm。本帮助文件。
如果您下载到的ZIP包中还包括其它文件,毫无疑问不是我放进去的,有广告之嫌疑,请立即删除。
另外程序允许过程中还会生成下列文件:
BitrateCurve.ini。这个是配置文件,改变输出选项后自动生成。
BitrateCurve_chk.txt。批量检查RM文件时的缺省输出文件。
二、软件使用
软件的使用比较简单,按照软件界面上提示的1、2、3步骤操作即可。
对输出内容的解释参见技术探讨。
Version1.03
错误修正:在显示某些AVI文件的“文件信息”时,只能显示到视频编码。
Version1.02
新增功能:批量检查RM文件,看其中是否存在码率为0的情况。
新增功能:在AVI文件的“文件信息”中,可以按时间显示视频流长度(原先只显示帧),便于合并AVI时计算字幕起始时间点。
Version1.01
新增功能:“文件信息”,可以显示文件头信息、流信息,用于对文件格式进行分析。
新增功能:在输出TXT文件时,在文件头加入版本信息。
新增功能:在码率列表中突出显示码率最大、最小的5个(点数可设置)点,及0码率点。
新增功能:打开RM文件时,如果发行有0码率点,则用红灯突出显示。
功能修正:AVI文件的fps值通常是一个浮点数,因此会出现某一帧横跨两秒的情况(如对于fps=23.976的AVI文件来说,第24帧就从第1秒尾延续到第2秒头),以前版本在计算时这种帧的数据量会全部归于后一秒,从本版本开始改为按照跨越的比例在前、后秒间进行分配。因此计算出的码率数据可能会略有不同,但是码率曲线的整体趋势应该不变,对统计特征量的影响也不大。
功能修正:RMVB文件的数据包可能出现跨秒的情况(如前一包的时间戳是1738,后一包的时间戳是2049,则前一包的数据可以认为从第1秒尾跨越到第2秒头),以前版本在计算时这种跨秒包的数据量会全部归于前一秒,从本版本开始改为按照跨越的比例在前、后秒间进行分配。因此计算出的码率数据可能会略有不同,最明显的例子是音频码率曲线更接近于完美的直线。
功能修正:由于第一秒、最后一秒的数据很难准确计算,与其它数据相比往往偏差比较大,因此在计算统计特征量时,这两个时间点上的数据不再参与运算。
Version1.00
同步发行简体中文、英文版本。
新增功能:显示码率列表、码率曲线。
错误修正:在计算AVI文件的时长时,由于舍入误差,有时会多计1秒,这1秒的码率为0,因此会影响统计特征量的计算。
错误修正:如果同时打开的两个片子播放时间不同,则短少的时间段内的码率为随机数。
错误修正:文件打开对话框重定位后,底部空白太多。
Version0.00beta
实现码率计算、码率分布计算、码率统计特征量计算。
支持AVI、RMVB格式。
支持同时显示两个文件。
支持TXT和Excel输出。
Q:BitrateCurve有什么用?
A:对于普通大众来说,BitrateCurve有以下用处:
1、可以快速检查下载到的RM文件是否有播放不过去的地方:打开RM文件,如果在中间部分连续出现几秒码率为0的情况(软件显示最小码率为0,界面上会出现对应的红灯),通常在播放的时候那里就会播不过去。对于AVI文件来说,由于本软件直接读取索引段,没有逐包读取movi段,因此不能用这种方式判别文件的好坏。
2、可以通过“文件信息”查看一些压缩时的参数,供自己压片时参考。
而对于一小撮喜欢折腾的人士来说,BitrateCurve也可以帮助他们宣泄灵魂深处强烈的自虐欲望:
1、可以很方便地查看到码率最大、最小的地方,实际观看这些地方的画面效果,然后据此调节压缩时的码率参数(包括最大码率、平均码率等),重新压缩,也就是常说的“好片子要压三遍”。
2、可以同时显示AVI片源和RM文件的码率曲线,比较双方在码率分配方面的差异。
3、可以同时显示两个片源相同、参数不同的AVI文件或RM文件,从而比较压缩参数对码率分配的影响。
无论如何,软件不过是个工具而已,它真正的作用,与使用者密切相关,就象同样一支毛笔,在我手里一文不值,到了名画家手里则价值千金。如果您还发现这个软件有什么特别的作用,欢迎与我联系。
Q:为什么要开发BitrateCurve?
A:原因很简单:我见过太多人对RMVB的压缩参数进行争论,每个人都在引经据典,说明不同的参数对码率分配的影响如何如何,但是却没有人能够拿出实际的数字,证明实际的码率究竟是如何分配的。DOOM9上也有人发表过一个计算RMVB码率分布的软件RMVBAnalyser,可惜我每次运行这个软件都会出错,所以才决定开发这个软件,而且连AVI的码率也一起分析,便于比较RMVB及其AVI片源的差异。
Q:BitrateCurve支持哪些格式?
A:目前支持AVI和RMVB。由于计算码率的时候不需要解码,因此不需要在机器上安装相应的codec。
Q:为什么AVI和RMVB的速度会差那么多?
A:原因很简单:在AVI文件的index段中,已经包含计算码率所需的关键信息,因此读取这一小段数据就可以了。RMVB的index段中信息不足,因此只能把整个文件从头读到尾。
Q:BitrateCurve收费吗?
A:BitrateCurve是一个“友情软件”(Friendware),用户在承诺不用于商业目的,也不对文件及其附件进行任何更改的条件下,不需要为使用该软件付任何费用,最多是在某个讨论区看到我发帖子灌水时(我的ID一般是strnghrs),进去捧个人场,作为友情回报;或者在年节时发个email问声好(所以叫“友情软件”)。我承诺绝不在程序中暗藏任何商业广告、木马,但不承诺为使用BitrateCurve的后果承担任何责任。如果您需要将它用于商业目的,或加入您的网站,请与我联系,否则保留追究一切责任的权利。
这是一个码率计算程序,主要用于辅助分析、比较不同压缩参数对码率分配的影响,支持AVI和RMVB
可以计算出每一秒钟的码率,便于分析不同压缩参数对码率分配的影响。
可以计算码率分布频数和分布概率。
可以计算码率的统计特征量,包括最大值、最小值、平均值、标准差、变异系数等。
可以对文件格式进行分析,显示AVI、RMVB的相关文件信息。
可以同时分析两个文件,便于比较。
结果可以存为TXT文件,也可以存为Excel文件。如果是在Windows98/Me下运行本软件,请将TXT文件与某个支持长文件的文本编辑器相关联,缺省的记事本程序只能打开32KB的文本。Windows2000/XP无此限制。
可以批量检查RM文件,看其中是否存在码率为0的情况。
展开内容
8.1/11.0M
小展软件库是一个拥有着丰富资源的工具盒子,里面为大家精选了很多网络上热门的软件资源,让大家不必到处寻找就可以在这里轻松找到,并且提供快速的下载体验哦。小展软件库...
8.4/521.5M
星语达互传是一款手机文件传输工具,利用这款软件,用户能传输各种格式的文件,传输速度非常快捷,而且还能同时连接多台设备,使用起来功能全部免费,高效省时靠谱,有需要...
9.7/1,188.9M
这个是非常好玩的出租车模拟游戏,可以在游戏中模拟各种不同的车辆,通过模拟车辆可以自由挑战各种场景,游戏玩起来是非常简单的,有着爽快的操作体验!出租车模拟2020...
8.1/918.2M
呆瓜游乐场(蛋蛋恐怖滑滑梯)是一款好玩要有趣的休闲竞技类手游,游戏中有多种模式可以选择,操作简单,操作火柴人来进行投球、传球、射门等动作,你需要有耐心和技巧才能...
9.2/899.8M
三国闪无限版鲜花精致的美术画风,新颖的骨骼动画,让战斗更加热血澎湃,华丽炫酷的合体技能,随心搭配,腾空连击超必杀,一气呵成横扫千军。三国闪鲜花介绍游戏拥有非常经...
8.3/1,442.7M
此工具能够将程序生成为nLite和RVMIntegrator用的程序整合包.此工具可以大大减少使用者制作整合包的时间.节省大量时间和精力使用说明:7z.exe和...
8.9/743.2M
这是一款采用了经典沙盒风格的动作游戏,最后四人死亡僵尸射击游戏中玩家生存于末世,在这里要想办法获取各种资源,小心僵尸袭击,收集武器装备,强大起来才能更好的活下去...
9.9/1,318.8M
DD输入法app是一款提供随机抽词发送的软件,在提供基本的相关拼音输入九键和二十六键输入之外还设置有许多有趣的玩法内容。简单好用的手机输入法在线所提供的素材和功...
8.0/723.0M
91好课app是一个互联网教育服务平台,为广大学生朋友带来了优质云教育课程,可以随时挑选自己喜欢的网络课程,在线学习,还可以通过app提交作业!软件介绍91好课...
9.3/504.4M
星源社区是一个集成了多种功能的一站式社区服务平台,旨在为用户提供便捷、高效、贴心的服务。用户可以通过星源社区App获取最新的社区新闻、活动信息、公告等,使居民更...
7.6/1,928.4M
给你的手机上面介绍一款特色的3D插件-TSF相框插件(手机桌面相框插件),有了这款插件的话,你可以让你的相册进人到3d模式中,也是可以改变你的图像!TSF相框插...
7.5/1,541.6M
现在的角色扮演RPG手游没有超Q萌超品质画面的都没人玩,刀剑如梦这款手游能给你更强烈的真实代入感,Q萌精美的画质和丰富多彩的剧情,还有炫酷激情的技能,让你停不下...
8.4/1,999.7M
平行世界的家装软件,至家app是由芝点科技打造的一款精选家装设计购买平台,用户可以在这里体验真实的居住的家,挑选专属你的搭配,很多家居好物随你挑选。功能介绍【生...
9.0/432.4M
学习围棋可以从小学起,少儿围棋教学对弈平台就是专为小朋友打造的一款围棋学习软件,有丰富的围棋学习课程,需要的朋友可以免费下载。少儿围棋教学对弈平台功能介绍·绿色...
8.8/641.6M
开局一支笔,画出你的超强火柴人,开始他的冒险,这里是系列游戏的第三部,小编需要提现大家的是,官方游戏目前不支持中文,所以需要有一定英文基础的小伙伴才可以玩的比较...
8.1/1,738.4M
怒战王城是一款相当不错的手机传奇冒险游戏,复刻了传奇游戏的经典玩法,从画质,到游戏的战斗特点都十分出彩,是一款不可多得手机传奇游戏,传奇世界的精彩一览无余。怒战...
8.9/1,155.3M
锁老大ios版是一款酒店开门解锁软件,该版本仅提供苹果手机用户下载使用,该软件操作简单使用方便。有需要的朋友们在东坡点击下载。锁老大ios版简介:锁老大是ADE...
10.0/1,074.8M
悬案电子机器人杀人事件是一款暗黑风格的恐怖冒险手游,在游戏中玩家身处密室,密室中有一个电子机器人无时无刻都在追杀你,你必须冷静下来找到正确的策略,最后完成自救,...
9.2/1,397.2M
什么样的家庭教育方式才是家庭教育误区呢?不妨让老师和家长们一起坐下来谈一谈吧!本节内容东坡小编为大家整理带来的这份家庭教育的十大误区ppt共由10页组成,适合作...
8.3/385.7M
软件是一款优惠卷领取平台,在上面有着很多的优惠卷信息,随时随地轻松领卷,软件支持超多不同的领卷内容,领取优惠卷更加快速!掌上喵这么样掌上喵——为您精挑“惠”选,...
8.4/111.1M
是一款全新的射击类游戏,游戏采用简单的画面打造,玩家在游戏中需要去射击摧毁掉落的物体并且收集星星,收集的星星可以去解锁跟多的关卡哦。玩法特色简单的点击射击类游戏...
8.5/182.5M
天天格斗2是一款好玩的动作格斗手游,继承前作经典玩法,给玩家带来爽快的动作格斗游戏体验,喜欢的网友快来下载吧!天天格斗2游戏玩法-佣兵组队!单手也可以闯关!&n...
8.8/1,394.0M
指尖四川麻将十二生肖麻将玩法,是最新更新推出的一个版本,本页面下载后即可轻松畅玩哦。首页就有入口可以直接进入,趣味麻将对抗赛,真人匹配对局,现在居然还可以解锁神...
8.2/155.0M
万峰文本处理专家破解版是一款功能强大、操作却十分简单的文本处理工具,支持多任务的处理模式,允许一次处理多个任务,支持各类起始关键字和结束关键字的行的处理操作。软...
9.7/22.4M
菁优网app是一款为广大学生打造的学习辅助app,包括初中到高中的多门课程,软件功能全面,使用方便简单,需要的用户欢迎下载使用。官方介绍:学霸拍照搜题答疑,作业...