I need to develop a client-side application that can be embedded in a web page to record short videos with a configurable time limit (i.e. recording is stopped automatically after x seconds) using any accessible camera (e.g. USB webcam). The user must have the option to select their audio and video input devices and then record, review (play back) and upload the recorded video.
Uploaded videos need to be sent to server-side storage, ideally with an upload progress bar, and a server-side PHP script must be notified of the upload or uploaded to directly via HTTP POST. The user must be notified of successful and failed uploads and must have the opportunity to retry a failed upload. Recorded video must be encoded to save upload bandwidth, but the encoding format is not important. The final product must be compatible with the following systems at minimum:
Windows, Mac OS X, Linux
Mozilla Firefox, Google Chrome, Internet Explorer
Currently I am considering either Adobe Flash or Oracle Java for the client application, depending on which better suits the intended purpose. Interface design is non-critical, but should be visually modifiable (sizes, positions, colors) with minimal effort.