H.264 Speed Up On Alarm/Event

From what I've read so far, it seems H.264 has no means to dynamically adjust frame rate at the request of VMS unless stream is disconnected and restsablished with required frame parameters. Does this means no VMS can support frame rate speed up on H.264 on alarm/event?


Thanks for the pointer, but article does not mention about coding technique if I have not missed.

Seems the tests have been carried out using MJPEG. My question was spped up on H.264 though.

These were all done with H.264.

Frame rate boost is usually a feature that is available in the VMS regardless of the CODEC used. However, the trigger is usually implemented to ramp up in case of motion, you mentioned alarms- it could be that the VMS has not implemented this ramp up feature for alarms.

Which VMS are you using?

Would you include specifics as to how it is configured?

Milestone - KB 467 : Speed-up on motion does not work with H.264 or MPEG-4
KB Area: Usage

Description:

The speed-up on motion or event feature allows you to use a slow frame rate for normal video and a higher frame rate for interesting events, for example, as a result of motion detection or pressing a panic button. However, when you stream in H.264 or MPEG-4, no option exists to increase the frame rate on motion or event. In most cases, you can only choose to record all frames instead of only the key frames.


H.264 and MPEG-4 streams are structured to make it impossible to simply request more frames per second. These streams are built using groups of pictures (GOPS). The stream is initialized with a key frame, a full image of the scene. Following the key frame are a series of P frames, each of which contain only the changes which have occurred since the last key frame. In XProtect® software, the key frame interval is typically one second, and each GOP is tied together in such a way that the only way to increase the frame rate is to re-initialize the video stream, resulting in a brief loss of video.

Solution:

When speed-up on event is a requirement, you must use the MJPEG codec. With this codec, each frame is an individual, independent picture. You do not lose connection briefly when requesting more frames. Alternatively, if you normally only need about one frame per second, you can choose to record key frames only, and record all frames on motion or event.

"...when you stream in H.264 or MPEG-4, no option exists to increase the frame rate on motion or event. In most cases, you can only choose to record all frames instead of only the key frames."

While it is technically correct that you can't 'increase frame rate' on motion/event using H.264 or MPEG-4, if you record 'key frames only' (~1fps, as you note), then choose 'record all frames' on motion/event, this is - essentially - the same thing as the 'speed-up' function using MJPEG compression.