Pergunta

For my web application, I want to allow users to record their own videos via their webcam, and upload it automatically to the site. Ideally, this would happen in browser as part of my web app, maybe by using a flash plugin, such as the one provided by the reasonably popular nimbb.com.

However, a Flash solution is not necessarily ideal, as even the nimbb demo is a pain to get to work on Linux, and I am willing to use a desktop-based solution that users must download first, if that will make my life easier. It needs to be in the form of an open-source library or very complete API, as I need to be able to customize the details quite a lot - for example for allowing streaming of the video directly, automatically stopping recoding after certain time, etc.

My preference is Python, but anything else would do too. Are there any programs or libraries I can look at that handle the following basic tasks?

  • Record video through webcam, sound through microphone, simultaneously (most important)
  • Save video
  • Remove background noise
  • Adjust luminosity

It was easy enough to roll my own simple solution that does all those things using Python, openCV, pygame, ffmpeg and sox, but I'm no expert in this field and I'm not very happy with the overall quality (of video as well as background-noise removal), and this will only work on Linux, without some serious porting being done (mainly due to the use of sox).

Summary: I'm looking for something with the video and audio quality of Skype, preferably open-source (I'll pay too, if that's an option), and as flexible as Python. Any advice, or is that too tall of an order?

Foi útil?

Solução

Okay. I've done a crazy amount of research on this the last day, and here is the current state of affairs as I've found:

WebRTC is a free, open project that provides web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. At the moment, it is supported only by Chrome, and the latest development versions of Firefox and Opera. This is due to change soon, as all three those browser manufacturers are canvasing the W3C to include WebRTC into the HTML5 spec. So if we're lucky, we'll have cross-browser built-in webcam functionality within a year or two.

Until then, Flash is the only other cross-browser option. There are quite a few projects that allow for this, but here are some of the best: OpenTok, Nimbb, and jRecorder and jQuery webcam if you need only sound or only video, respectively. The latter can only save still images, so you can try using it for video, but it's not recommended.

As for cross-platform open-source desktop-apps, I have still not been able to find any. Still hoping someone can help in that regard!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top