我之前的服务器经验一般限于家庭文件共享服务器,低stream量的networking服务器等。 这给我留下了如何build立一个系统的技术知识,但是在扩展系统方面的经验却很less。
然而,我目前的项目让我成为在线audio和videostream媒体学校的技术领导者。 我遇到的困难是我没有足够的经验去猜测他们需要什么,他们也没有经验告诉我 – 所以我试着问一些关于什么的相关问题他们想要做他们的服务器,这是我发现的:
我已经做出的暂定决定:
我不知道的是这样的:
非常感谢您的帮助 – 如果您需要更多的信息,请告诉我,我会尽我所能。
编辑1:
我希望能够以OGG或MP3出去 – 可能是MP3,因为它得到了更广泛的支持(对小学生家长更为熟悉。
内容将包含实时/预先录制的标准清晰度video包(可能在Quicktime中,对于后者)。 只有audio的广播可能由MP3组成,转换成更易于pipe理的质量。 DRM不是一个问题,也不是版权(至less版权不是我的问题)。 内容是在学生感到喜欢广播时产生的,但是这种媒体的存储不应该是一个问题。 他们不是在这里生成原始的电影镜头 – 他们是做小型电视包的孩子 – 我会在工作站上投掷RAID 10的4个Terrabyte硬盘驱动器,并称之为一天。
其余大部分似乎并不适用。 最相关的部分是networking固有的限制。 当我试图询问这些可能是什么时,他们真的不知道 – 因为他们从来没有真正压力testing过。 他们的互联网连接主要用于为学生和教师提供标准的互联网服务,并服务于可能在90年代build成的网站。 我怀疑他们会经历一个昂贵的NAT和前端系统改装 – 孩子们将只需要生活在他们拥有的东西。
我不认为我的服务器将不得不担心大量的caching,或者大量的数据存储 – 他们只会接收从内部工作站/源客户端准备好的stream,并且不得不复制和分发stream给客户。 在我发现自己争吵更多的内存之前,我预计会遇到带宽瓶颈。
关于多播 – 我认为互联网普遍不支持 – 而外部客户构成了我们潜在用户的大部分。 我最大的问题是更简陋 – 这种应用程序的“体面的服务器”/服务器系统是什么? 我很难想象我需要多less台机器,以及他们需要做些什么。 有什么想法吗? 提前致谢。
我build立IPTV系统,你不会喜欢它,但是你面前的任务非常艰巨,特别是考虑到你的预算。
让我们一步一步地去看看(如果你不介意的话,我会把这个答案对准更广泛的观众)。
构build这样一个系统的任何人必须做的第一件事就是根据位置,操作系统,播放器来定义它的客户,理想地理解客户端和服务器之间的networking方面 – 你已经做了很多。 这很重要,因为它定义了服务器代码,编解码器,比特率以及是否可以使用多播。
第二件事是理解你的内容。 它来自何处,以什么格式,多久,版权问题,DRM要求,需要多快以及需要保留多长时间。 我想你已经涵盖了一些这方面的内容,但是你可以根据这些方面提出更多的问题。
这远非一项简单的任务,而是基于以上两个问题的结果,您可以开始devise您的系统,再次从收集的angular度来看 – 您将如何重新编码(如果需要)您的内容,是否需要QA'ing,它在哪里得到DRM标记,你将如何处理临时有未encryption的video的风险,如果重要的话。 这个摄入/分期系统需要被预先考虑,你不需要“手摇”这个过程,因为它会很快得到重复。
一旦你已经想出了这个系统,你需要知道你的内容编目是什么,以及摄取系统如何提供这个系统,还有你要如何发布这个目录,以及如何删除“老化”的内容。 这个发布系统将启动客户端播放,并可能需要某种forms的授权检查系统,这带来了自己的问题,我们可以再次解决。
现在我们介绍一下你直接感兴趣的部分,stream媒体服务器。
到此为止,您将知道您的用户基础数据(谁,什么,什么时间,何时,如何等),这将帮助您计算您的峰值带宽需求(通常类似于“最高用户”x“最高比特率”)。 。
“最好的质量”是一个误导,因为我敢肯定,你不是指“48位8K HD @ 60fps”,而是更像SD质量等等,作为一个指南,我做SD约1.5Mbps和高清约6Mbps,但这将由您的编解码器和要求来定义。 举例来说,1000个用户播放1.5Mbps的单播stream量,显然等于1.5Gbps,这就是硬比特进来的地方。首先,你的networking,实际的中继和交换机本身能否持续地提供这种性质的数据? 你需要坐下来研究你的弱点在哪里。 你能否保证这个数据的质量,以防止有人拉下一个大的下载和杀死整个网段的video? 还有一个事实是,如果你的网卡要超过1Gbps,那么你需要确保他们以正确的方式联合起来,这样第二个和后来的团队成员才能真正获得stream量份额,到10Gb网卡。
然后,我们进入我的专业领域 – 存储 – 现在您已经计算出一开始内容需要多less存储空间,多快才能增长,这是最大规模,而且是“stream失率”很多来自内容商店的时间)。 这会告诉你需要多less存储空间,但是如果你有1000个用户都在查看大容量目录的内容,那么你需要非常注意caching和存储的随机读取function。
如果你非常幸运,你的服务器可以caching100%的内容,那么你很幸运,你只需要一个体面的服务器,大量的内存和一个64位的操作系统。 如果您希望用户能够访问比您可以caching更大的内容存储区,那么您需要确保您的存储系统能够提供您的高峰stream媒体要求,例如上述示例中的1.5Gbps。 如何做到这一点取决于内容存储的大小,如果你需要多个stream媒体服务器(如果你需要弄清楚是否要分片或分享你的video)。
例如,您可以查看固态硬盘,但不要看“标题”数字,例如500MBps,您需要的是SSD或磁盘,可以通过RAID来确保最高传输速度。 有很多固态硬盘和磁盘对于工作站或者低并发服务器来说是非常好的,但是当你需要跟上1,000个用户的时候,他们都会在文件的不同位置抽出大量的大文件,不要跟上,也不要做大多数的cachingalgorithm – 你必须知道你的存储可以自己做,如果必要的话。
如果有任何安慰的话,实时stream媒体比较容易得多,但可能值得自己的机器来处理捕获/encryption/stream媒体,而不是主要的基于内容存储的服务器。 你很幸运,你可能对networking有更好的理解,因为它听起来像一个封闭的系统,如果你想确保你可以多播这个,否则你进入上面描述的相同的带宽pipe理问题,但有一个更好的caching命中的机会。
我希望这会有所帮助,就像我说的,我已经把目标瞄准了更广泛的观众,而不仅仅是这个问题,我可能会回来添加/编辑(一旦我喝了一杯第一杯茶!)。
stream的带宽取决于质量和接收端的计算能力。 您可以瞄准每个客户端0.5 Mbit /秒。 这是在DivX压缩上的DVD相当于DVD。
您应该尝试find一个解决scheme,即服务器不需要进行任何编码或转码,并且该stream已经是正确的格式。 尤其不是每个客户的基础。
高端硬件成本比例更高,如果刹车失灵,最终会遇到麻烦。 如果需要的话,尝试一个低端子服务器和一个备用服务器。 为服务器使用相同的系统磁盘映像是一个好主意。
只有stream数据 – 无编码/转码 – 瓶颈来自networking接口(可能还有networking基础设施)。 您应该计算不超过接口的命名带宽的10%,否则连接速度会变慢。
我不确定您的networking是否能够处理500 Mbit / s的额外stream量(<10%的容量)。 如果没有,你可以尝试为每个位置做服务器或者减less带宽。 您可以使用五台具有千兆位以太网的服务器,但无法通过一条千兆位上行链路连接到一台集线器。
希望这可以帮助。
联系TightwadTech的家伙,这是他们的街道,希望我们得到一个播客:-)