0

对于开发像 youtube 这样的视频内容重的网站,从性能和支持视频转换/压缩插件的角度来看,哪种语言/框架可能是更好的选择。一些值得考虑的点可能是。

  • CPU 与 I/O 时间
  • 支持压缩/转换插件(现有的 mods/gems/libs)
  • 尽管欢迎输入,但易于学习并不是很重要

我知道这个问题听起来有点主观,但我的目的是从有开发类似网站经验的人那里了解所涉及的技术细节。

4

2 回答 2

3

不幸的是,没有一两个 API/库/框架可以组合在一起来制作视频服务网站。

这总是需要大量参与堆栈的所有级别:

服务器后端需要解决以下问题:

  • 视频编码
    • FFMPEG 或 MPlayer 经验,可将任意数量的视频格式编码为 FLV 或更新的 h264 以支持 HTML5 格式
    • 在后台进程中对视频进行转码的可靠机制;最初在一台服务器上,但随着您的服务扩展,最终在多台服务器上
    • 视频大小调整
  • 带宽管理来限制连接,以使视频流向用户
  • 存储视频文件和文件分片和命名机制
  • API 服务器 - 像 Rails、Django 或 NodeJS Express 之类的东西,用作 Web 客户端和视频编码/服务服务之间的 JSON 服务层。

前端需要解决以下问题:

  • 跨多个操作系统(Windows、OSX、Linux、平板电脑、移动设备)和平台(IE、Chrome/Safari、Firefox、Opera)可靠地播放视频,并支持旧版浏览器
  • DRM - 您的视频是免费的还是商业的?如果是后者,这是另一个需要解决的问题

我强烈建议您在后端使用事件驱动系统,因为开发支持并发的代码要容易得多。NodeJS 将是一个不错的选择。值得将 NodeJS 的node-fluent-ffmpeg模块作为一个很好的起点。

至于你的前端,我建议使用 Backbone.js 或 AngularJS 等框架来开发你的 web 应用程序。

几年前我尝试过类似的事情时,这是一次有趣且充满挑战的旅程。祝你旅途愉快。

于 2013-01-22T14:58:47.277 回答
0

对于这样的网站,我想需要选择几种工具来完成这项工作。对于网络,您可以使用任何框架,所以 rails 就可以了,要处理视频,您需要 ffmpeg 或 transconding 之类的东西来转换视频。对于流媒体,如果您可以使用 HTML5,请检查此问题,否则您将需要一个具有 Flash 后备功能的播放器。

请记住,存储和 CPU 方面的重要部分是视频压缩/转换。

于 2013-01-22T14:32:05.757 回答