2

我是一名 php 开发人员,正在尝试开发一个网站以将点播音乐流式传输给用户。经过大量谷歌搜索后,我对应该使用哪种服务器或工具感到困惑?我见过像 WOWZA 或 SHOUTCAST 这样的一些,但我不知道哪一个最适合我的需要。

我想提供高质量的音频文件。所以也许我应该使用 320kbps mp3 格式或其他格式,但质量相同。

我不需要直播。我只需要音乐文件的点播流以及用户创建他/她自己的播放列表的能力。

用户不应该能够下载音乐文件。

4

1 回答 1

8

Icecast/SHOUTcast 不适合您使用。它们采用单个流并将其同时发送到多个连接。它们不是每个用户都可以收听单独内容的“按需”服务器。

对于您的用例,您可以在 PHP 中实现一些东西。您真正要做的就是向客户端发送媒体文件。您提到您希望阻止客户端下载这些文件......这是不可能的。如果客户端可以播放,客户端可以保存它,没有办法解决这个问题。但是,您可以做一些事情来阻止它像链接到文件一样简单。

不要将您的音频存储在 Web 服务器的文档根目录中。 所有媒体文件都应仅通过您的 PHP 脚本提供。这使您可以控制传入的请求。查看readfile(). 这也使您可以轻松地摆脱从磁盘加载文件的简单方式(当您开始增长超过 100k 媒体文件时,您将需要这种方式)。

媒体文件的 URL 应该只工作一次,并且对于特定的用户会话 ID。动态生成这些 URL,并有时间限制。如果在您的网站上没有有效会话的人请求媒体文件的 URL,请不要提供它。如果链接已过期,请勿提供。这就是阻止某人获取 URL 并将其发布在某个留言板上的原因。只有具有当前有效会话的站点的有效用户才能访问您的媒体文件。

速率限制请求。 不允许用户一次下载超出需要的文件。如果他们在 1 秒内请求 100 个文件,请不要为他们提供服务。

实现所有这些概念是我留给你的。你如何做到这一点取决于你的需要,而不是通常在 5 行代码片段中完成的事情。

于 2013-03-18T15:21:30.817 回答