2012-11-12 63 views
2

我正在寻找一种方法让我的客户(登录)在我的网站上观看mp4视频。什么是“安全伪流”mp4视频(flash,html5,pc,iOS ...)的最佳方式?

  • 我不希望他们能够下载视频,或者至少使其非常困​​难。
  • 服务器是linux /应用程序是PHP
  • 我希望我的客户能够在计算机Web浏览器或iOS/Safari设备(这意味着无闪存)上观看视频。
  • 我需要它是免费的或非常便宜的(例如,不是每月以数千美元的价格在云基础提供商上托管视频)。

到现在为止我做了以下内容:FLV文件

  • PHP伪流(被称为xmoov)。使用PHP我能够在返回流的内容之前执行安全验证(会话变量,令牌,...)但它不适用于iOS,因为flv视频需要播放Flash。它也不是很安全,因为像Video Download Helper这样简单的Firefox扩展可以下载它们。
  • 所以我用mp4编码了我的视频,它可以很好地处理html5/iOS,但是使得这个过程的“安全”方面变得更加困难:看起来很难让PHP伪流。我还没有找到任何工作解决方案,似乎每个人都离开它,因为它需要太多的资源(在整个文件内容的流式传输过程中,每个视频需要1个PHP进程)。

因此,我找到的最佳解决方案是2个经典的Apache插件:“H264流模块”和“Mod Auth令牌”。 好吧,这样会更好,但它的效果并不好,因为要高效地使用认证令牌的超时时间非常短(少于5秒,以便很难在html源代码中找到混淆的url并复制/粘贴它在下载应用程序或启动脚本或...),但这意味着客户必须在此时间范围内启动视频(iOS上无法自动启动视频)。这也意味着客户无法在视频的“尚未下载”部分寻找,因为播放器(我使用JWplayer)会对该网址发起一个新的http呼叫,这显然不再适用,因为时间到。

我在想一个可以自己生成混淆网址(而不是PHP在html源代码中输出)的视频Flash播放器,但它不适用于iOS,因为它基于Flash。如果我在iOS上使用计算机和html5/auth_token(基于用户代理),很容易欺骗用户代理并下载视频。

另一种解决方案似乎使用像Red5这样的“真正的”视频流服务器,但几乎所有我发现的教程都是关于实况流,电视,网络摄像头,而不是简单的mp4文件,位于硬盘上。这似乎也不是为这种需求所做的申请。

所以我很乐意接受每一个建议!

在此先感谢

+0

这就是数字版权管理(DRM)发明的原因。您在浏览器端有很多选项,但没有一个是免费或便宜的,或者是开箱即用的浏览器和iOS(MS PlayReady/Flash Access)。我肯定会选择像buydrm.com或wowza.com这样的DRM提供商,它似乎很好地与buydrm.com整合 –

回答

0

我使用Amazon的S3整理了这一点,FLV文件:

http://evolt.org/s3secure

我正在做它的MP4,但我的专长是网络的东西,而不是视频东东。

0

我发现自己处于相同的情况。

我正在使用流式播放器,并且使用服务器端(PHP)脚本(类似于xmoov)将FLVs伪流转为罚款,并提供所有验证。

我有1个提示你: 我使用,IF $开始是0,令牌仅适用于3秒(所以没有新的请求可制成),但IF $开始> 0,然后它工作10分钟,或多一点。

这样,人们就可以寻找到视频的其他部分,但不能提出完整的请求。你也可以使这个$开始限制大于X字节,而不是> 0,以确保聪明人不会跳过你的验证。

现在,关于使用相同脚本的MP4伪流式处理,我仍然遇到麻烦。 由于$ start值是以秒为单位发送的(即:?start = 32.125),而不是字节位置,所以我似乎无法制作视频伪流。

如果您找到了解决方案(不超过mod_h264_streaming),我会很高兴听到它。

相关问题