Full disclosure: I work for Ziggeo.
Ziggeo has a video api recording. We use WebRTC to write to Chrome, Opera, and Firefox, return to Flash on other desktop browsers, and use input capture on mobile devices.
You can also run your own WebRTC solution:
in Chrome and Opera you have to record audio and video separately and encode them yourself in JS; then send them to your servers and transcode them using, for example, ffmpeg to mp4s and other target formats
in Firefox, you can get a webm object for sharing video and audio and send it to your servers.
source share