这是一个码率计算程序,主要用于辅助分析、比较不同压缩参数对码率分配的影响,支持AVI和RMVBAYX官方网站
一、所谓码率
对于流媒体,码率(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命令。
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的后果承担任何责任。如果您需要将它用于商业目的,或加入您的网站,请与我联系,否则保留追究一切责任的权利。
一、软件安装/删除
本软件安装非常简单:创建一个目录,用WinZip将下载下来的ZIP包解压缩到该目录即可。
本软件的删除也很简单:删除从ZIP包中解压缩出来的所有文件即可。
ZIP包中包括下列文件:
BitrateCurve.exe。这是软件的主程序。
BitrateCurve.htm。本帮助文件。
如果您下载到的ZIP包中还包括其它文件,毫无疑问不是我放进去的,有广告之嫌疑,请立即删除。
另外程序允许过程中还会生成下列文件:
BitrateCurve.ini。这个是配置文件,改变输出选项后自动生成。
BitrateCurve_chk.txt。批量检查RM文件时的缺省输出文件。
二、软件使用
软件的使用比较简单,按照软件界面上提示的1、2、3步骤操作即可。
对输出内容的解释参见技术探讨。
可以计算出每一秒钟的码率,便于分析不同压缩参数对码率分配的影响。
可以计算码率分布频数和分布概率。
可以计算码率的统计特征量,包括最大值、最小值、平均值、标准差、变异系数等。
可以对文件格式进行分析,显示AVI、RMVB的相关文件信息。
可以同时分析两个文件,便于比较。
结果可以存为TXT文件,也可以存为Excel文件。如果是在Windows98/Me下运行本软件,请将TXT文件与某个支持长文件的文本编辑器相关联,缺省的记事本程序只能打开32KB的文本。Windows2000/XP无此限制。
可以批量检查RM文件,看其中是否存在码率为0的情况。
展开内容
7.5/691.5M
封神召唤师小米版是一款国风二次元RPG卡牌手游。游戏画面精美,玩法丰富,玩家可以进行自由匹配也可以叫上好友一起对战。感兴趣的朋友们可下载试玩。封神召唤师新手必看...
8.2/369.8M
关于迷失岛的一切是一款根据迷失岛打造的休闲解谜游戏,主要讲了一些游戏中所开发创作的灵感,对于喜欢玩迷失岛的朋友还是挺有意思的,后面还有很多彩蛋,可以来解谜一下。...
8.9/1,940.2M
跑马圈地GM版是一款Q萌像素风格的休闲向的放置塔防手游。游戏画面精致,像素绘画细腻。游戏融合了像素分割画风、放置合成和塔防元素,融合策略、经营、养成和回合制战斗...
查看
8.9/1,426.6M
手机上玩一些卡牌游戏的朋友,有没有玩过这款进击的魔王的,这时一款刚刚出来的3d卡牌游戏,现在东坡更是可以让你们在电脑上玩起进击的魔王!进击的魔王电脑版介绍进击的...
9.4/93.7M
奥特曼系列OL是一款以经典全民科幻片“奥特曼”系列为题材的手游。小时候你曾经幻想过你是奥特曼拯救世界吗?那么今天这款游戏会帮你圆你的梦。喜欢的朋友就来东坡下载吧...
8.4/290.4M
WW2美军突击队生存战场(WW2USArmyCommandoSurvivalBattlegrounds)是一款好玩的动作射击手游,游戏以二战时期为背景,游戏场景...
9.0/1,792.5M
B站UP猪自制的FPS游戏,可以联机PVP、离线PVE,集合了泰坦陨落、使命召唤地点特色的独立射击游戏,目前来说相对而言还是有一些操作上的问题的,例如干男爵子弹...
8.9/1,271.5M
Vampix的目的是使颜色好看/黑色+白色的影响你的照片。主要功能漂亮的彩色和黑白效果。自定义颜色的选择。自定义效果的阈值。简单易用的预置效果。使用说明第一步,...
8.5/691.9M
故宫授权,网易游戏打造的一款古风唯美的游戏,绘真·妙笔千山探秘千里江山,一幅画,代表着一篇故事、一份固执、一种情结,开启佛系青绿山水之旅。游戏介绍《绘真?妙笔千...
8.5/659.8M
给所有准备从事服务业的朋友,现在小编就给你介绍下面的这款专业的为你们打造的手机上的找工作软件,让你可以更快更放心的找到你需要的工作!小美工作app介绍“小美工作...
8.2/1,794.4M
淘金大满贯真的能提现成功吗,当然是真的啦,免费领取大额红包,真金白银轻松获取。本质上就是答题领红包的趣味游戏,丰富的题目,多样的关卡,随时随地上号答题,玩游戏赚...
7.9/981.0M
龙族幻想是一款角色冒险手游,可以组建联盟,超真实的物理引擎,角色动作非常的流畅,自由度非常的高,造型非常的绚丽,真实的战力的体验。龙族幻想手游介绍龙族幻想游戏获...
9.7/1,356.1M
智能手表+手机APP配合你的手臂手上动作,不再只是空气偷懒,这个APP可以帮助你精准的计算自己的偷懒是否命中,你的运动数据成绩引路人,就算没有场地也可以随时随地...
9.5/178.7M
缘遇app是一款非常优质的手机线上真实交友软件,用户下载这款软件能够在上面进行非常优质的交友服务,app上涵盖的功能非常全面,上面的所有用户都是进过实名认证,所...
9.5/1,661.8M
不用说很多的朋友都是担心自己的体重问题,都是想减肥的,或者是想知道自己的体重问题的,那么现在小编就给你介绍下面的这款体重指数PK语音器~!体重指数PK语音器介绍...
9.9/1,777.3M
该免费版精品课件之小英雄雨来ppt课件共由20页组成,该ppt课件图文并茂,内容包括课文导读、重难点讲解以及重点词汇学习等,是一份堪称完美的小英雄雨来ppt,下...
7.7/1,225.0M
程序员是要天天面对电脑的一群人,每天看着电脑上相同的东西,眼睛会累,小编给各位推荐程序员专用字体合辑,里面包含了各种适合程序员的字体,希望对大家有帮助。程序员专...
8.4/985.6M
BuckshotRoulette(与恶魔的赌局)是最近一款很火的俄罗斯转盘游戏,但是官方版本只有电脑版,手机版本玩的话是需要在云游戏平台排队的,如果你不想排队的...
8.2/473.3M
斑马鱼爱眼医生版app是一款专为斑马鱼爱眼平台上的医生打造的办公软件,方便医生随时在线问诊,随时与病患沟通病情,管理病患的信息资讯,提高医生的办公效率。软件介绍...
9.3/531.6M
未上锁的房间2是一款密室逃脱手游,充满传奇的创意旅程,非常经典的故事情节,可以获得属于自己的专属线索,光影的迷幻,质感十足,唯美的场景,可以顺利逃脱。未上锁的房...
9.9/615.9M
雪国崇礼客户端app是崇礼县委宣传部主办的官方发布平台,以树立政府形象、传递权威声音、促进政务公开、了解群众需求、化解社会矛盾、提升服务质量为目标,积极发挥互联...
9.0/220.0M
心理咨询师题库2021app针对心理咨询师的考试题库,非常齐全的相关考试内容,丰富的题库教学轻松的考过心理咨询师证。心理咨询师题库2022app功能*章节练习—...
9.9/694.6M
比较简单好用的一款手机动态视频设置成壁纸的软件,Live视频桌面app的操作很简单,界面很清爽,没有广告,可以将你手机上任意的本地视频设置成壁纸,还可以开启声音...
7.9/106.0M
便捷的取快递服务平台,蜜罐管家app让你更方便的拿取快递,支持空箱查询,包裹查询,租用方便,快递充值等操作,服务广大快递小哥更方便的投递包裹快递。蜜罐管家app...