视频内容繁重的网站

时间:2013-01-22 14:15:10

标签: ruby-on-rails video-streaming

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

前端需要解决以下问题:

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

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

至于你的前端,我建议使用Backbone.js或AngularJS这样的框架来开发你的web-app。

几年前,当我尝试类似的东西时,这是一次充满乐趣和挑战的旅程。祝你旅途愉快。

答案 1 :(得分:0)

对于这样的网站,我想需要选择几种工具来完成这项工作。 对于网络,你可以使用任何框架,所以rails可以,处理你需要的东西,如ffmpeg或转换转换视频。 对于流式传输,如果你可以使用HTML5检查this question,否则你需要一个闪回后退的播放器。

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