yetanotherse
yetanotherse

Reputation: 500

Video content heavy website

For developing a video content heavy website like youtube which language/framework might be a better option from performance and support for video conversion/compression plugins point of view. Some points worth considering may be.

I know the question sounds a bit subjective however my intention is to understand the technicalities involved from someone who has had experience developing similar kind of site(s).

Upvotes: 0

Views: 688

Answers (2)

Nazar
Nazar

Reputation: 1509

Unfortunately there isn't one or two APIs/Libraries/Frameworks you can knit together to produce a video serving website.

Invariably this will require heavy involvement on all levels of the stack:

Server back-end will require the following problems to be solved:

  • Video Encoding
    • FFMPEG or MPlayer experience for encoding any number of video formats to either FLV or more recent h264 for HTML5 supported formats
    • A reliable mechanism to transcode video in a background process; initially on one server but eventually on multiple servers as your services scales
    • Video resizing
  • Bandwidth Management to throttle connection just enough so that the video trickles down to the user
  • Storing video files and a file sharding and naming mechanism
  • API Server - Something like Rails, Django or NodeJS Express to serve as a JSON service layer between web clients and the video encoding/serving service.

Front end will require the following issues to be solved:

  • Playing back the video reliably across multiple OSes (Windows, OSX, Linux, Tablets, Mobile) and Platforms (IE, Chrome/Safari, Firefox, Opera) with fallback support for older browsers
  • DRM - are your videos free or commercial? If the latter, this is another issue that needs to be addressed

I'd strongly recommend an Event Driven system on your back-end as it is much easier to develop code that supports concurrency. NodeJS would be a good pick. It is worth looking at node-fluent-ffmpeg module for NodeJS as a good starting point.

As for your front-end I'd recommend frameworks such as Backbone.js or AngularJS to develop you web-app.

It was a fun and challenging journey when I attempted something similar a few years ago. I wish you good fortune in your journey.

Upvotes: 3

Paulo Fidalgo
Paulo Fidalgo

Reputation: 22331

For a site like that, I guess will need to choose several tools to do the job. For the web, you could use any framework, so rails would be OK, to deal with videos you'll need something like ffmpeg or transconding to convert the videos. For streaming, if you can use HTML5 check this question otherwise you'll need a player whith flash fallback.

Remember that the heavy part in terms of storage and CPU is video compressing/conversion.

Upvotes: 0

Related Questions