搜索 社区服务 统计排行 帮助
  • 1292阅读
  • 6回复

BitrateCurve正式版发布了

楼层直达
级别: 侠客
注册时间:
2001-11-21
在线时间:
0小时
发帖:
461
Version 1.00

1、同步发行简体中文、英文版本。
2、新增功能:显示码率列表、码率曲线。
3、错误修正:在计算AVI文件的时长时,由于舍入误差,有时会多计1秒,这1秒的码率为0,因此会影响统计特征量的计算。
4、错误修正:如果同时打开的两个片子播放时间不同,则短少的时间段内的码率为随机数。
5、错误修正:文件打开对话框重定位后,底部空白太多。

下载:
http://stronghorse.yeah.net

自从发布这个软件后,我再也没有在漫游见人讨论过1P、2P、nP。其实我本人非常想知道,各位使用后的结果和心得体会。

级别: 新手上路
注册时间:
2005-02-19
在线时间:
0小时
发帖:
31
只看该作者 1楼 发表于: 2005-03-01
很不错的统计软件,支持!

请教一下strnghrs:

1.从AVI文件的"idx1"能读到每个包长时间?

2.RMVB中的每个包(package)的一般大小是多少,对应的时间戳所指时间段有多长?如果包长和时间都比较大,所计算的误差是不是大?

级别: 侠客
注册时间:
2001-11-21
在线时间:
0小时
发帖:
461
只看该作者 2楼 发表于: 2005-03-01
引用
最初由 maomao333 发布
很不错的统计软件,支持!

请教一下strnghrs:

1.从AVI文件的"idx1"能读到每个包长时间?

2.RMVB中的每个包(package)的一般大小是多少,对应的时间戳所指时间段有多长?如果包长和时间都比较大,所计算的误差是不是大?

第一个问题比较好回答:idx1只能读到包长,没有时间,时间是按序号算出来的,为了保证精度,必须采用浮点数算。

第二个问题不是三言两语说得清。

对于RM文件来说,由于一开始就是针对网络播放,因此在RM文件结构中没有通常多媒体文件的帧(frame)概念,只有与TCP/IP对应的包(packet)概念,就象在《RealSystem G2 SDK Documentation - Chapter 5: File Format Plug-In》一文开始处的说明:

The first step in integrating your datatype into RealSystem is building a file format plug-in that converts your datatype into a stream of RealSystem packets. RealServer uses your plug-in to stream your datatype directly from its native file format. The RealSystem client then assembles the packets and displays the data through a rendering plug-in.

熟悉TCP/IP的人都知道,在网络传输时,太大的包会使传输变得不可靠,一般公认在Internet上传输的包长不宜超过1024字节,因此在该文中也有这样的说明:

A file format plug-in should generally create packets of 430 to 500 bytes for the opaque data. Staying under 500 bytes decreases the likelihood of packet fragmentation.

不过这个针对的是网络播放的情况,现在很多片子针对的都是LAN或本地观看,这种情况下可以适当增加包的长度——增加包长、减少包数,理论上可以减小最终生成的RM文件长度,但是一旦丢包,损失相对小包要大。因此正常情况下,包长都小于帧数据长度,即一帧(尤其是关键帧)可能需要多个包才能表示,但是一个包中通常不会包含多于两帧的数据。这样可以减少丢包造成的损失,也便于定位(seek)。

从我测试的片子来看,即使压片时选择针对LAN环境,一般包长最长的也就1000字节多一点,通常只有几十、几百个字节,小于一帧的数据量;至于包的时间戳差距,CBR相对稳定一些,一般几十毫秒,VBR变动比较大,最小1毫秒,最大到100多一点,平常几十毫秒。在RM文件的Media Properties Header段中,对每个流的最大包长、平均包长都有描述,用RMVB_Analyse可以看到,在以后版本的BitrateCurve中说不定也可以看到。

在我看来,BitrateCurve这种按照包的时间戳数包、计算码率的方法,对于那些跨秒的包来说,误差肯定是有的,但是影响不大。

想要尽一步减少误差,只能去研究RMVB的解码器,找到将包解码成帧的办法,技术难度要比现在数包的方法难很多,谁愿干谁干,至少我自己是不会干的。

级别: 骑士
注册时间:
2004-09-27
在线时间:
3小时
发帖:
1362
只看该作者 3楼 发表于: 2005-03-01
一如既往地强烈支持马健兄中^^

Version 1.00 太好用了!

级别: 骑士
注册时间:
2004-06-04
在线时间:
0小时
发帖:
1170
只看该作者 4楼 发表于: 2005-03-01
谢谢楼主提供好的统计软件,尝试一下
级别: 新手上路
注册时间:
2005-02-19
在线时间:
0小时
发帖:
31
只看该作者 5楼 发表于: 2005-03-02
引用
最初由 strnghrs 发布

一个包中通常不会包含多于两帧的数据;VBR变动比较大,最大到100多一点


只有跨秒的包才会有误差,不过好像很难跨秒.

BitrateCurve如果再能加上MPEG-1和MPEG-2的码率分析就更好了

级别: 侠客
注册时间:
2001-11-21
在线时间:
0小时
发帖:
461
只看该作者 6楼 发表于: 2005-03-02
引用
最初由 maomao333 发布


只有跨秒的包才会有误差,不过好像很难跨秒.

BitrateCurve如果再能加上MPEG-1和MPEG-2的码率分析就更好了

这个比较麻烦,以前我也曾想过,不过一直没有找到一份好的源代码。

快速回复

限150 字节
上一个 下一个