Client controlled video management system for converting, managing and streaming video on client's site

This project was awarded to inavigator for $1500 USD.

Get free quotes for a project like this
Employer working
Awarded to:
Skills Required
Project Budget
$750 - $1500 USD
Total Bids
Project Description

Create a php script and backend management system (CakePHP framework) that will upload a video file onto the server, then convert the video to flash (flv) format using ffmpeg and/or mencoder, and create a thumnail image, then add a record to a mysql database with the information about the new video including its location. Then give user the object code to play and embed the video back in a player based off a mysql query that will select the video info from a database. All video hosting will reside on our servers.

Specifics: This would be a member based system to upload video for playback and embeding on members website:

I would need you to do the following :

1. You need to create user interfaced pages including the upload form and the page to show the video.

1a. Video Page
a. Add a video
b. Videos Overview (lists clip(s) - Title, Date, res. sizes, Delete option)
b1. Properties (of selected clip)
- Title, Tags, Description, Publish Date and time, Duration [save properties]
b2. Thumbnail (of selected clip)
- show current thumbnail and give option to upload new one.
b3. Publish
- thumbnail link [[url removed, login to view]]
- video link [[url removed, login to view]]
a. [show preview and code]
1. Preview (actual video plays in flash player)
2. Javascript code (copy-paste this code into member site)
3. Embed code (Embed code for those that cannot use the javascript code)

2a. Playlist Page
a. Add a manual playlist
- lists to which you manually add and remove individual videos.
b. Add a dynamic playlist
- lists created upon certain rules (i.e. the latest 10 videos, all videos tagged interview, etc.). The entries of these playlists are constantly updated, based upon the criteria you entered.
c. Playlists overview
- This list shows all the playlists (lineups of videos) you have created. Playlists can, like individual videos, be published in a player.

3a. Statistics Page (to be pulled from google analytics)

4a. Account Page
- Name
- Company
- Address
- Country
- Email Address
- Phone
- WebSite content to be placed on
- Users (different user levels so that admin users from each company can add lower level users. You'll definitely want database tables for companies and users, even if that is managed manually in the DB.)

2. Need to create the database where the video file info will be stored. (This will have, also additional field, category, Description , Title )
3. The website and database resides on the main server.
4. The server already has ffmpeg and mencoder with all the component needed installed on it.
5. The php script that will upload the video file will need to support multiple video formats (MPEG4 (DivX, H264), FLV (VP6 and Sorenson Spark), WMV (up to version 9 - no DRM!), MOV (Sorenson Video 3, H263, H264, animation), MPEG1 and MPEG2 video, AVI video (Indeo, Cinepak, Motion JPEG, MPEG)) and convert it to FLV.
6. While the file is uploading there should be status bar on the web page that shows the progress of the upload and the estimated time left.
7. The size of the file should be restricted to 1 gb and system admin should be able to change this somewhere.
8. After uploading the file it should direct the user to the video page where he can view and/or edit the fields.
9. Then the script should convert the uploaded file to the flash format using ffmpeg and/or mencoder. For each uploaded movie, immediately render a movie that has a width of 320 pixels wide. The height depends on the aspect ratio of the uploaded movie. This 320 video should be rendered in FLV and MP4 format. The server should detect if a video is upload at a larger size then 320, if so it should automatically render a 480px wide version.

9a. Technical specifications of all conversions should be:
- a 320px wide, 500kbps VP6/MP3 video.
- a 320px wide, 500kbps H264/AAC video.
- a 480px wide, 750kbps VP6/MP3 video.
- a 480px wide, 750kbps H264/AAC video.

10. Then the script should create a thumbnail image from the video using a frame from the video.
11. Then the script should delete the original video file that was uploaded to the server.
12. Then the script should insert a record on the main database with the video title, date, location of video flash file, location of thumb image in the table 'videos', Description , Title etc... See layout in 1a!
13. Create a webpage that will play the flash video embedded using a flash player. (prefer JW FLV MEDIA PLAYER)
14. If possible, an option to upload a .srt file to accompany any video for closed captioning playback.
15. If the webpage to view the video is accessed while it is being converted a message should appear saying that it is still being encoded and to please check back later.
16. Master company account should be able to view all member accounts and content. This is a requirement do to the need to control inappropriate and copyright issues.

If selected for the project I will provide all server login details.

I will pay via company check after the work is complete or escrow the amount , I need to test that it is functioning.

Please post samples of similar work you may have done.

Deadline: As soon as possible. Please include your expected completion date when bidding so I can take that into account.

If you are good, and have done this job correctly, We will probably have other projects that are comming down the road or even discuss retaining you on a part-time basis.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online