2

If I'd like to create website where users will be able to upload videos what options do I have for storing and streaming the video files?

One is of course storing it on my website. But I don't think that's good option. I will need a lot of storage (to expensive) and streaming will slow down my sever. I think it should be cheaper to store it in some external service. It would also take the load off my server. But I don't know of any.

Do you any services that may help here? If my website is not commercial and if it becomes commercial. This probably shouldn't matter but I'm using ASP.NET or ASP.NET MVC.

Piotr Perak
  • 10,718
  • 9
  • 49
  • 86

1 Answers1

5

I am currently in a processes of designing a similar functionality for a product I develop. The design that I came up with is:

  1. Storage: AWS S3
  2. Processing: zencoder.com or www.pandastream.com
  3. Player: jplayer.org

To sum this up: User uploads the video(via asp.net) to S3. A service sends the unprocessed video from S3 to zencoder/pandastream for encoding and puts it back to S3 in the encoded formats. From there jplayer will play the files on all the platforms.

realPro
  • 1,713
  • 3
  • 22
  • 34
  • I didn't really think about the need to process videos. What exactly does it do? I thought that as long as video is in some format it will be enough. – Piotr Perak Feb 05 '12 at 14:59
  • 1
    To successfully stream video from server to client, it has to be in one(or more) specific formats. The thing is that these formats are for streaming only and the users usually have different formats. So you will need to encode from user format to streaming format. – realPro Feb 05 '12 at 15:30
  • NP, BTW if you need a free option. You can use Google API to pragmatically upload the videos to YouTube and then present them on your site. – realPro Feb 05 '12 at 20:18
  • Few more questions if I can. Do you know how long this encoding takes? Let's say I have 100 minutes of movie. And if I use Youtube do they automatically encode movies? Can those movies be accessible only from my website? – Piotr Perak Feb 06 '12 at 19:15
  • I did not use YT API myself, but: 1) I assume will take the same time as you upload via YT website. 2) The whole idea behind YT is the encoding of the videos. This is why it takes time from the upload and until the video is visible. 3) I assume that when adding new video (thru API) you will have an option “via link only”. This means that the video will not be visible thru search or on your profile and will be accessible only via the direct link, but you will be able to embed it, I assume. Did you ever upload a video to YT? A good idea is to start with that and analyze what is going on. – realPro Feb 06 '12 at 22:05
  • Also, it is safe to assume that when YT encodes the videos it generates multiple files, for low res, for high res, for iPhone and HTML5. All these need different files, but it is transparent for us. – realPro Feb 06 '12 at 22:10
  • I wasn't clear. I was asking how long it takes for Zencoder or Pandastrem to encode 100 minutes movie. If you already tested it. – Piotr Perak Feb 06 '12 at 22:34
  • A simple google search can give you a lot of info. Try to google for [zencoder encoding time] And this is what you find: http://blog.zencoder.com/2011/10/18/zencoder-benchmarked-2x-10x-faster-than-the-competition/ – realPro Feb 06 '12 at 23:09