使用Silverlight十分钟构建一个视频分享网站

我记得从TechED 2006年开始,我就讲过关于国内视频分享网站过多的事情。那么今年将会更加多,因为Codeplex上出现了一个Video.Show项目,可以帮助大家在十分钟时间内构建成一个Silverlight视频分享网站。当然,这个消息其实思归同志早就介绍过了,今天我主要给大家一个示例网站,以及介绍其运行机理还有安装注意事项等。

昨天下班后,太太与大学同学聚餐。我想回家也没有什么事情做,于是就在公司里面研究了一下Video.Show。虽然还是RC版,但功能上已经基本完成了,所以想试试自己能不能在十分钟用其构建一个视频分享网站。于是说干就干,立即动手,我们部门在万网有一台服务器,为了不与其它人的工作成果冲突,我在上面利用虚拟化技术部署了一台虚机,这个虚机是Windows Server 2008 RC0 32位版,装上了.NET Framework 3.5正式版,以及SQL Server 2008 CTP。并且把博客堂的一个测试域名指向它,在上面做一些新版博客堂的测试工作。

环境都有了,先从Video.Show网站上下载了相关源代码,编译后部署到远程IIS上面去,然后在本地的IE8 (Internet Explorer 8 Alpha。 您没有看错,我用的是IE8,下次去贵公司拜访的时候,可以注意看一下我的浏览器呀,更加Web 2.0了)上找开测试地址,直接转向到了一个安装帮助的页面,原来需要我在服务器端再安装Expression Encoder,以及在http://silverlight.live.com上申请一个帐号(该帐号为每位申请者免费提供4G空间存放视频,微软员工甚至可以得到100G空间)用以存放视频。

所有都做完,却发现一个问题,在Windows Server 2008上启动不了Expression Encoder,查找了一下资料,才发现需要在Windows Server 2008上Add一个名字为Desktop Experience的Feature。在安装此Feature并且按照要求重启机器后,一切终归正常。按照要求注册帐号,上传视频,但等了不止十分钟后还是不见上传的视频出现。于是远程桌面到服务器上,发现上面有一个Visual Studio调试器信息,显示“Log Directory is not valid”。奇怪呀,默认安装的Expression Encoder按理说应该没有启动日志服务呀,这是怎么回事。回Video.Show的项目网站上查找,终于在Issue Track中找到有人也遇到了此问题,可是没有人有Response,于是我跟贴了一了。但这个大周末的晚上,肯定不会有人回复呀。时不我待,直接给Tim Sneath(他也是总部DPE的)发邮件询问一下。不到一分钟,邮件回来了,但只是告诉我他们正在跟踪此Issue,并且已经转交开发组密切注意。靠人不如靠已,我再次远程桌面到服务器上,查看IIS设置,在Application Pool里面的Advance Setting当中发现有一个选项是Load User Profile,其默认值是False,我选择为True。嘿嘿,一切正常了。

现在大家就可以来访问一下网站做一下测试了:http://beta.joycode.com。在上面您可以上传AVI,WMV,RM,RMVB,FLV,Quick Time以及其它您知道的视频格式,如果有任何问题,欢迎在评论中给出。本网站仅测试使用,将在一个月后下线,建议大家仅上传技术相关的视频,不要上传任何反动、色情、有版权问题的视频,如果发现,我会封掉所有视频上传权限。该网站仅只有1G内存,所以性能可能并不是非常好。

关于运行机理,其实非常简单,用户上传视频后,服务器端将将其上传到一个临时目录中,并且启动一个线程调用Expression Encoder将相关视频文件转换为VC-1编码的WMV文件,再将该文件组打包上传到http://silverlight.live.com上,所以您会发现视频播放有些慢,因为http://silverlight.live.com网站在国内暂时没有部署CDN服务,所以访问速度会有些慢。

访问:http://beta.joycode.com

BTW: Scott Guthrie先生将会携Silverlight,ASP.NET项目负责人在明年一月份访华,访华期间,博客堂将会组织相关社区见面活动,详情请参见本堂日后公告。