some question about use flvdemux

I have some questions when I try to use flvdemux.
I have a rtmp stream, I need to use flvdemux to get the video.
This is my cmd:
gst-launch-1.0 -v rtmpsrc location={rtmpsrc} ! flvdemux name=demux ! queue ! identity name=v_delay signal-handoffs=TRUE ! h264parse ! video/x-h264,stream-format=byte-stream ! fakesink ! queue ! fakesink
but it doesn’t work each time, sometimes It can work, sometimes it can’t.

I find when it succeed, the first frame is I frame five times
Uploading: image.png…

Is it not working in p frame?

when i use the MP4 that each frame is I frame, it can success each time.