Create smooth/real-time videos without writing a ton of jpg files and using a lot of CPU
Question
This is more of a feature request, really.
It seems like, unless you set the framerate to maximum, the videos, when played, look like they're beeing fast-forwarded. However, when I set the framerate high, motion uses a whole lot of CPU and severely impacts my desktop performance (and outputs a ton of jpg files). It would be nice if motion could use a low framerate to detect motion, but then record the video at a high framerate. Ideally, I'd like to be able to only output a jpeg once in a while, have low cpu usage while not recording a video, yet still have watchable videos. Does that make sense?
Alternatively, instead of raising the framerate while recording the video (which would still use a bunch of CPU), you could insert duplicate frames. That way the video would still play in real time, although it would be a bit more choppy (which is an OK tradeoff for CPU usage, IMHO). You could also probably just encode the video at a lower framerate, which may be the best solution of all.
I'm using ffmpeg, by the way.
Just a suggestion. Thanks much for a great program!
Matthew Trent
term2@localaccess.com
Environment
Motion version: |
3.1.17 |
Libraries: |
xmlrpc, ffmpeg, mysql |
Server OS: |
Debian Linux, 2.6.9 |
--
TWikiGuest - 29 Oct 2004
Answer
The detect a low framerate and record high is there and called 'low_cpu'.
The framerate is something I see reported often and is worse at high framerates where Motion lags behind. Especially when pre_capture is used.
I do not wish to seperate the number of jpegs from the ffmpeg frames. Most that use jpeg wants them all. Otherwise they turn them off.
The framerate issue is being looked at in the new code for ffmpeg-0.4.9. And the pre_capture problem is also being looked at. I expect to look at that in November when I have some evenings by myself.
--
KennethLavrsen - 30 Oct 2004