下载mms流媒体之痛

前些天去7738找李昭文帮忙录制我拍的仪器视频配音,临走时卢靖问我能不能下载某网站的视频,我当即就跟他说,但凡能上网看到的东西,都是已经下载好了的,不管是文字、图片还是视频。紧接着我问他会不会下载优酷、土豆(不好意思,貌似它们合并了……)之类网站上的视频,他说会,用迅雷就可以。到了这一步,我心里就感到有些不对劲了,于是让他打开视频所在网站。

网站很简陋,但是一目了然地列出了所有视频的清单,卢进一步点开之后竟弹出了Windows Media Player这个古老的系统自带工具进行播放。因为他用的是IE,所以我不得不在链接上右击,查看属性,这才验证了我的猜想,果然是多年未见的使用“mms协议”的流媒体。该地址为“mms://218.25.35.227/1%E7%AB%A0%E7%AC%AC1%E5%AD%A6%E6%97%B6%E6%9D%8E%E5%8F%91%E7%BE%8E”。“mms://”开头,却没有扩展名结尾,这倒是我第一次遇到。我不由想起那些年总结的经验,告诉卢,放进迅雷应该就可以下载了,谁知却得到他“下不动”的回应。事实也验证了,正是这样。

这里插一句,这个流媒体还真就和普通视频网站播放的视频不一样,不会类似它们,播放时在IE浏览器的临时文件夹下生成flv文件,给人的感觉就是放过的马上就删,无迹可寻,无影无踪。

最让人恼火的是,用WMP播放时,经常莫名其妙地缓冲,要想挂载着等它下载完成,恐怕电脑就不要关了,而且一旦退出,就需要重头来过。对了,就算一路坚持着看,可切到刚刚看过的部分居然也是要缓冲的,这感觉可没比用电视机收看节目好到哪去(电视机只是不能回放罢了,目前数字电视已改变了这一传统)。

由于之前答应好友去球场打球,所以我也不好停留过久,留下晚上一定好好分析的承诺之后,我便匆匆离开了。

封闭之家

忙活了一晚上和一个下午,我总算搞清楚了一个大概,很是感到惋惜。

微软这个巨头是出了名的反开源的,以致盖茨大叔在北大演讲的时候遭遇尴尬一幕[1]。这下好了,微软搞出的这么个mms协议[2][3]也是个没公开的玩意儿,被人用来防视频下载(该出处忘记留存了)倒是蛮方便的

关于这个mms协议,读者若感兴趣,也可以看看一个有关流媒体服务器的PPT[4]和一位博主的抓包分析[5],估计看完了都会觉得很坑爹的。

下载有道

一开始我想到了将链接中的“mms”替换成“http”,虽然不能够下载到视频,但是从下载到的文件中说不定可以得到什么信息。几次尝试之后,我终于下载到了一个可以用字节(Byte,简称B,1KB=1024B)来做大小单位描述的无扩展名文件。用记事本打开,我却只看到了它在我所修改好的http地址之后多了一小串段代码这么个“有效”信息,代码的最后似乎是“=.asf”。可是我直接将这个下载下来的地址放进迅雷,却得到“下载失败”的提示,而且屡试屡败。把原有的mms链接及修改好的http补上扩展名“.asf”,一样不能逃脱这个怪圈。

后来我看到了一个很诡异的方法,是一个视频[6],它让我们把链接中的“mms”这3个字母替换成“rtsp”,再放进下载工具(演示者用的是迅雷)即可让下载速度飙起来。

然而,按照这个视频所指示的方法操作后,迅雷下载时奇迹般地显示资源为“1/1”,却始终保持着0KB/s速度。随后我查阅了相关资料(不好意思又没保留出处),说是快车支持rstp协议的下载,可令我失望的是,现在的快车根本不能识别这么个协议。

没有想到,经多方比较,最后我不得不按一个04年的总结得比较全面的帖子[7]所说的那样,通过特定的下载工具去下载那该死的流媒体

总的来说,Net Transport、HiDownload、Streambox VCR这几个软件在网上的讨论比较多。我尝试了Net Transport,实质上就是一个普通的下载工具,简单说是类似快车和迅雷,只是多支持了mms、rtsp等等流媒体协议的下载,界面还特别丑,让人感觉仿佛回到了Windows98的年代。而它们的原理很简单,就是一种变相的边下边录罢了(第三次忘记保留出处)。

我选择了NT,这其中需要特别注意的是,在该软件的界面中,务必在“线程”框中右击,选择“增加线程”,貌似增加一个就能增加10多KB/s的速度。这个原因据上面那个帖子所说,是这样的:

MMS协议流每秒的字节数差不多是固定的,这就决定了MMS流本身不能充分利用用户所有的带宽,所以多线程技术在缩短MMS流下载时间方面效果立竿见影。

我增加到了7个线程,总下载速度有60多KB/s,事后我建议卢可以更狠一点,添加到一二十个线程试试,反正校外电信的2M网速承受200KB/s的总下载速度还是没问题的。

最后,经过漫长的等待,我终于把那个在NT里显示为300多MB的臃肿文件下载下来了,果然还是asf文件,播放一切顺利。

不能忽视的流视频资料

或许有人会说了,网上视频多得是,大可不必吊死在一棵树上,别的地方说不定还有更好的。

对这样的观点,我会说,视频能被正常观看,就绝对有数据交换,那就绝对可以截取下来,真正的本事应该在这儿体现,可我不主修计算机,为了省事,不得不安装额外的软件。

其实,很多事关学业(专业)的视频都是以流媒体的形式发布的,其他地方搜寻不到,即使真有,我们也耗不起那么多的时间成本,所以实在是身不由己。

参考资料

[1]盖茨北大遭遇一IT从业者反垄断抗议(组图)
[2]MMS (协议) – 维基百科,自由的百科全书
[3]MMS (Microsoft Media Server protocol)协议概述 – xujianxin’s CSDN Blog – 博客频道 – CSDN.NET
[4]上海师范大学数理信息学院. Unit 14. 流媒体服务器.
[5][流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[1][修正版,增加了带宽测试包] – 旁观者 – 博客园
[6]MMS文件下载方法_医学视频下载演示.avi
[7][图解]下载完全手册–教你如何下载mms、rtsp、破解在线电影、播放各种格式文件 – 影视频道 – 太傻超级论坛 – Powered by Discuz!



发表评论

电子邮件地址不会被公开。 必填项已用*标注