For this assignment you will create a CGI (common gateway interface) web-based application that processes an uploaded video via an HTML form. Your program should extract metadata from the video to determine the number of frames in the video, the frame rate (frames per second), and the horizontal and vertical resolution of the video. After extracting this metadata, your program should use FFMPEG to extract and store the still images from the video in either a database (as a binary blob) or as a flat-file system in a special read-only directory. Note: the program should only accept uploaded video from authenticated users who have logged into the web-based interface first.
Your program should check that the user has logged into the system. Only valid, currently registered users are allowed to upload videos for processing.
A web-based form should appear which prompts the user to upload a video. You may choose the video format(s) you wish to support. It is a good idea to inform the user what video formats are accepted.
Your program should notify the user if the uploaded file is one of the following:
Your program should extract and store metadata about the video in your database. The metadata that should be stored:
Note: your metadata table should also store a unique video ID (auto incrementing primary key).
Your program will need to convert the video into a series of still images. You can store these images in one of two ways:
If you store the images online in a flat-file directory on a server (i.e. image repository), please use the following filename convention:
You may implement your application in most programming languages such as Perl, Python, PHP, Java, Ruby on Rails, C, or C++, etc. If your programming language doesn't appear here, ask me for approval.
1. Please include the full names of all members of your team as a comment at the top of your application.
2. Please name your assignment programming_project_3 followed by a period and an appropriate extension depending on the programming language used. For example, use .pl for Perl, .php for PHP, .py for Python, .cpp for C++, .c for C, etc.
Assignments submitted after the due date will be worth, at most, 5 points. Additional points will be deducted for programs not meeting the specification as outlined above.
Spring 2017, CS-160-02:
Lectures:
Assignments:
Handouts:
Programs: