【问题标题】:PHP - Protecting WMA Audio StreamPHP - 保护 WMA 音频流
【发布时间】:2012-09-19 12:31:51
【问题描述】:

我目前正在寻找一种方法来保护本地广播电台的音频流,该广播电台向我提供了基于 IP 地址的其无线电广播的实时 WMA 流(不是确切的 IP,但格式为:

http://199.101.51.121:2013
mms://191.101.51.121:2013

由于他们的许可限制,他们无法公开向用户提供流 URL 以供收听。

然而,该电台直播了一场本地 OHL 曲棍球队比赛,这打破了该电台的许可节目,因此我们希望能够提供一个我们可以启用/禁用的链接,以便人们收听此流,不知道 24/7 活跃的流的确切 IP 地址/URL。

这是否可以通过 PHP 读取流文件并将其传递给用户,而无需他们知道流音频的实际 URL?我过去使用静态文件完成了此操作,但无法通过我通常使用的正常文件内容和标头传递方法使其工作。

【问题讨论】:

  • 注意:通过网络提供的所有内容都是公开的并且可以检索。现在您知道您可以尝试通过引入 DRM 来阻止它。
  • 我明白这一点,但我们想对数据库中的设置进行检查,如果当前启用了流,PHP 文件将拉入流源......如果它被禁用,流源不会被拉入,但通过主 PHP 文件对其进行处理将不允许公开查看源地址。

标签: php audio streaming protection wma


【解决方案1】:

您始终可以检查请求的来源。只需使用原生 PHP $_SERVER 并留意 $_SERVER['HTTP_REFERER']

虽然这并不能提供您想要的所有控制权,但这绝对是一个起点。

注意:正如@PeeHaa 已经说过的 - »一切都可用«。你只需要一个有能力达到它的人。

【讨论】:

  • 那不提供任何保护。引用者很容易被欺骗。
  • @PeeHaa "(...) 一个起点"。您可以根据需要添加任意数量的答案。你甚至可以编辑这个:)
【解决方案2】:

一种选择是创建一个指向您的隐藏地址的 dyndns.org dns 条目,以便只提供 dyndns,当您不希望监听器时,只需针对 dyndns.org 运行脚本将其关闭或指向一个未知的ip。没有任何东西被缓存,也没有造成任何伤害。

我们这样做是为了防止机动车检测站将我们的 dns/ip 地址缓存到我们的服务器。当我们想切换到另一台负载平衡的机器时,我们只需运行一个脚本来更新 dyndns 主机,而客户端只需访问相同的域名。 自 2007 年开始工作,至今仍在使用。

【讨论】:

    【解决方案3】:

    是的,您可以使用 php readfile()。你给用户一个 php 文件的链接,php 文件的输出是流音频。您只需要指定正确的标头来告诉浏览器您正在发送什么并且它应该可以工作。

    手册应该给你一些例子:http://php.net/manual/en/function.readfile.php

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多