如何使用PHP提供.flv文件?

时间:2009-03-01 08:48:42

标签: php security video streaming http-headers

我正在建立一个流媒体视频网站。这个想法是客户应该支付会员资格,登录系统,并能够查看视频。我将与FlowPlayer一起展示实际视频。

现在的问题是,视频需要公开存储在某个地方,而.flv文件的网址需要传递给流媒体,以便能够显示它们。这会产生问题,因为任何人都可以通过互联网进行观看源,下载视频和分发视频。

我知道有些人通过执行图片header()使用php提供图像,然后他们可以执行以下操作:

<img src="image.php?userId=1828&img=test.gif" />

php脚本验证用户ID并提供.gif文件,并且gif的实际URL永远不会泄露。

无论如何使用.flv或任何其他视频格式吗?例如,传递到PHP脚本的文件和用户ID,验证它们并返回视频?

5 个答案:

答案 0 :(得分:5)

您可以在Web服务器上设置一个只能由PHP访问的FLV文件的目录,然后在PHP脚本中,您可以像往常一样对用户进行身份验证,只需向浏览器发送一个标题,告诉它期待FLV ,然后回显原始FLV数据:

<?php
// here is where
// you want your
// user authentication

if ($isAuthenticated)
{
  header("Content-type: video/flv");
  echo file_get_contents($pathToFLV);
}
?>

正如Chad Birch所讨论的,这只会阻止人们直接链接到视频 - 你不能以这种方式阻止盗版。

答案 1 :(得分:3)

简短的回答是,不,如果他们愿意,你永远无法阻止人们下载你的视频。有各种方法可以让它们更难以实现,但没有万无一失的方法。您正在使用DRM来解决基本上整个问题 - 您无法向某人显示您的内容,而无需在某些时候将其提供给未加密的内容,如果他们可以查看,则可以将其删除。

答案 2 :(得分:0)

由于您的flv播放器是一个Flash应用程序,因此始终可以下载并反编译它。反编译时,可以看到flv的实际URL。因此,如果您使用直接网址到flv电影或类似于您在问题中描述的内容,它就不会有任何区别

<img src="image.php?userId=1828&img=test.gif" />

答案 3 :(得分:0)

请谷歌 Pseudostreaming 这个词你会得到答案 有一些服务器,如 lighttpd ,它对flv流媒体有固有的支持....

我希望你能得到答案.........

答案 4 :(得分:0)

带有mod_flvx模块的Apache也有类似lighttpd的效果。