GStreamer 1 fps recording issue: first 3 seconds show frozen frame

Hello,

I’m working on an embedded project on an i.MX8 platform (Yocto Linux).
I want to record video at 1 fps to reduce memory usage. My GStreamer pipeline is similar to this:

rtspsrc location=rtsp://<ip> latency=100 !
rtph264depay ! h264parse !
v4l2h264dec ! imxvideoconvert_g2d !
video/x-raw,format=RGBA,width=512,height=300 !
videorate !
video/x-raw,framerate=1/1 !
appsink name=myappsink

The problem:
When I record at 1 fps, the first 3 seconds of the video show the same frozen frame (the very first frame). After ~3 seconds, the recording continues correctly with 1 fps as expected.

When I test with higher fps (e.g. 3 fps), the problem disappears.

I suspect this may be related to:

  • Missing/incorrect timestamps (PTS/DTS) from decoder,

  • Keyframe (GOP/IDR) interval issues at low fps,

  • mp4mux or encoder waiting for the first IDR frame.

Has anyone experienced this issue?
Is there a recommended way to:

  1. Force every frame to be treated as a keyframe, or

  2. Normalize timestamps after decoder (e.g. identity single-segment=true sync=true), or

  3. Configure videorate/encoder to avoid frozen initial frames at 1 fps?

Any suggestions or working pipeline examples would be greatly appreciated.

Thanks in advance!

Fixed: Player error, problem solved with a different player. VLC plays video incorrectly at 1-2 FPS.