为什么有的视频BT下载时能边下边播有的不行

BT下载这个一般是从几个方面分析的:

很多视频格式对边下边播、拖动等的一些处理是不一样的。比如flv的关键帧信息是放头部的,mp4是放尾部。如果播放mp4,播放器想先拿到这些拖动数据,是需要先从尾部拿一些数据的。此时他就要想办法去尾部获取数据,比如通过http的range,但如果服务器不支持range,从指定位置给他返回数据,那么就没法边下边播。

刚刚说到了flv关键帧是放头部的,但也要看制作视频时的处理,如果制作flv时,用yamdi.exe等进行了处理是这样的,有些视频软件其实默认不生成这个metadata的,这种情况下就得需要先用yamdi.exe进行一些处理才会有这些数据,方便播放器知道每个关键帧对应的文件offset。

刚刚提到了服务器的range,但有些播放器,比如flash的播放器,是没法传递range的,往往这些播放器是通过?start=10240这种参数传递,此时就需要服务器通过一些扩展,将start后面的数字获取到,然后从文件的指定位置返回数据了。

所以,为什么不能边下边播,可能的原因很多,得具体情况具体分析才可以。

大文件那个:

如果您的文件、文件夹里面的数据比较大,可以考虑下p2p的分发方案。
几百台、几千台服务器分发,如果用p2p,速度可以提升不少。因为这些机器如果大都在相同时间点去下载的话,互相拿到的是不同的随机分块,然后他们会互相分享自己拿到的分块,这样的速度就比单点传输好很多了。
如果对bt了解比较少,希望有服务,可以考虑商业版的bt内核(SDK)直接基于sdk开发;如果是愿意自己研发,bt很多开源的资源。

点量BT下载的客户里面就有很多是用于内网、公司内部、全国分公司等类型的文件分发,效果是非常不错的。每个人下载的同时、下载完成后可以继续给别人上传。如果是服务器模式,如果服务器带宽多了,平时不分发时浪费;如果少了,用户又抱怨卡顿。这时候不妨试试bt吧。

评论已关闭