这是个千百年来都没有得到彻底解决的问题.我想归根结底还是因为现在的流媒体播放器本身能够得到流文件的地址的原因,所以单纯的在网页上加密地址的做法已经不太可行了,尽管这种方法可以起到一定的作用.比如让你的老板不能下载.
这里我要介绍的方法是结合了服务器流媒体发布软件的配置,数据库及WEB程序.首先要声明的一点是这篇文章的内容并不全都是我原创的,其中针对rtsp协议的解决思路是由CSDN的朋友wd_6532提供的,而针对mms协议的解决方案则是由我同事和我讨论得出的.现在我们就来看看如何针对不同协议的防盗链防下载的解决方案.
rtsp协议防盗链防下载的解决方案
- 数据库的配置.
- Helix流媒体发布软件的配置.
- WEB程序
思路:通常的情况下,当你打开视频网页时,WEB程序读取数据库得到这个视频的地址,将地址发给你,这时你的流媒体播放器得到这个地址后向流媒体发布软件发出请求,流服务器开始发送数据流,客户端就可以开始播放视频了.现在采取的方法是,当用户打开视频网页时,WEB程序首先读取数据库,得到视频地址,然后用程序随机生成一个用户名和密码,将用户名,密码和发布点存到数据库中,然后将视频地址变成这样的格式:rtsp://UserName@UserPwd:服务器IP/发布点/路径/文件名,将这个地址发给客户端,客户端播放就向流服务器请求这个地址的流媒体,此时就需要Helix从数据库中来验证这个地址是否正确,如果正确,客户端自然就可以观看了,否则不能观看,当用户连接成功后,调用方法将这个用户名和密码从数据库中删除.这样,这个地址就是失效的地址了.
下面来详细说明实现的细节,首先要进行数据库的配置,数据库在这里起到的作用很简单,无非就是判断请求中的用户,密码及发布点是否是存在数据库中的正确的值.所以这里要做的就是在Helix的安装目录中如D:/Program Files/Real/Helix Server/Commerce/database/odbc/mssql中找到ppvdemo.sql,在查询分析器中运行就可以建立了.在运行过程中会提示一些错误.不管它.需要说明的是,这不仅仅有mssql的,还有access,mysql的.成功建立后如图所示:
Hexli流媒体发布软件的配置:这个是整个解决方案中最核心的地方.下面的步骤将说明如何操作:
1.建立ODBC数据源.
打开管理工具中的数据源ODBC,点击系统DSN,点击"添加",如图:
选择SQL Server后,点完成.