lamarant
lamarant

Reputation: 3390

web based intranet video repository in C#, .Net MVC3

I'm looking to create a .Net MVC3 intranet application that serves as a repository for users to upload, search, and play back videos within a browser.

The application should provide the following:

  1. Form that allows user to upload a .avi video along with some meta data (title, description, tags etc.)
  2. Video should be playable directly within a browser
  3. Search mechanism
  4. Each video should have an associated thumbnail (a random frame in the video) to display in search results, etc.

Considerations:

I can handle the standard web-app part of this (the form, the database, the search mechanism, the video playback, etc.) Where I need some guidance is in the best way to process, convert, and store the video so that each video is playable directly within a browser. Also, this application may one day be consumed using mobile devices (tablet, phones, etc.) so a low-res version of each video should also be available and if it's not too difficult the video should also be able to be streamed from the web server rather than downloaded then played.

Questions:

  1. Is there a leading C# library that does the video encoding server-side (after the video is uploaded)? And how slow will converting a 500MB file be?
  2. What is the best approach to storing such large files? As I mentioned, storing them on a network share would be ideal but how does that impact video playback?
  3. What is the best way to go about streaming the video? Is there a standard way in .Net to do that?
  4. Am I biting off too much here? Is there a packaged solution (we have money) that I can purchase and install on my local hardware that would do all of this?

Upvotes: 0

Views: 440

Answers (1)

Chintana Meegamarachchi
Chintana Meegamarachchi

Reputation: 1820

Thoughts on question 1 and 2

  1. Two of the libraries that I know of are AVBlocks and FFlib.NET. FFlib.NET is a wrapper around FFMpeg

  2. Two options you have to files are on database (as blobs) and the file system. If you select the former, you will have the ability to have all meta data and content on the same store. But latter would be less complex and would be faster as you are directly loading data off the disk without having to go through IDataReader type of an interface (of course testing/benchmarking is needed)

Upvotes: 0

Related Questions