论文部分内容阅读
富媒体课程直播系统指能同时提供教师影像、声音和其在远程桌面上的动态操作过程的直播系统。目前市面上主流的富媒体在线课程直播系统有二点不足,其一:一些系统对于屏幕子流采用普通视频编码器,无法兼顾低码率和高质量的要求,而另外一些系统尽管采用了更高效的专用屏幕编码器,但要求用户安装额外插件,十分不便;其二,许多系统使用伸缩性较差的C/S架构,而采用可伸缩的P2P架构的,则需要另行安装P2P插件。具有高安装率和垮平台性的Adobe Flash Player是呈现富媒体的合适客户端平台。针对第一点问题,本文利用Adobe FLV视频的Data Tag数据结构来封装屏幕子流,并使用Adobe Flash Player 10.0起引入的Alchemy重编译技术将第三方高级屏幕解码器SJSC嵌入到Flash Player中,最后通过FLV支持的远程调用机制对其中的屏幕子流进行解码。该方法扩展了Flash的解码能力,实现了一种无需下载插件就可以在Flash平台上播放任意第三方数据流的可行方案,并取得了良好的运行效果,码率比较与主观质量评测也表明该方案让Flash有能力播放更低码率和更高质量的屏幕流视频。针对第二点不足,本文使用了Adobe Flash Player 10.1版本引入的P2P传输技术,在Adobe不提供除摄像头以外视频源直播服务的情况下,通过NetStream类的send和appendBytes接口传输自定义数据。我们在Planetlab近500个节点上的测试该机制本身的可行性和性能指标,结果表明在数据码率约220kbps时,系统90%的数据延时约8~11秒内,95%的节点丢包率约3%~10%内,控制开销在2%以内的节点占60%~90%,P2P带宽节省为C/S情况下的82%~98%,平均下载速率高于数据码率的节点占40%~100%不等。根据该机制,我们实现了一个简单的基于FLV富媒体的直播原型,数据码率110kbps时基本取得了流畅收看的效果,及时下载的数据量占总量的99%以上。