Reasons For ModuleTranscoderTimedSnapshot Interval Restrictions
I'm working with the ModuleTranscoderTimedSnapshot and I notice that the parameter for the interval is set to a minimum of 1 second. The source of the module enforces this restriction. I'm guessing this restriction is in place for a reason.
Why can we not generate images any quicker? Did you find that anything more frequently causes handling of the live stream to slow down? Is it a problem with
File.IO and the ability to write out the images any faster? Can the server just not encode the images any faster?
I'm curious the reasoning behind the restrictions and what are the consequences if I remove it?
It does use up CPU cycles so the more times you generate a snapshot the more CPU used. Hence Wowza has limited this to 1 per second. Also it should not be used to generate a real time stream view, ie. a snapshot every 25/50ms as some people have tried, and it doesn't work.
It could take anywhere from say 30ms to several hundred ms. I'm assuming this varies based on the frame data coming in, whether or not it's a keyframe, etc.
Regardless if this is called via a timer like the timedsnapshot example or called from the onbeforescale event it seems this is the potential "bottleneck" in regards to how fast we could process the image. Anything coming in at 15-20fps definitely has the potential to cause the processing to back up and create problems.
Could you offer any more insight into this and is there a way to reduce the time it takes to process or is there another part of the API that would be quicker in retrieving the actual frame data that could be converted to an image?