I wanted to setup my pi zero and pi camera as a rstp streaming cctv camera. I tried motion, but this ran the pi at 100% cpu utilisation and I didn't need motion capture as a I have a seperate (motion) server that will handle all that, so I just want something that simply sends a video stream.
I have tried 2 methods Native
raspivid -o - -t 0 -w 1280 -h 720 -fps 5 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8081/}' :demux=h264
UV4L (after following install instructions and then rstp instructions
cvlc -vvv v4l2c:///dev/video0:width=1280:height=720:chroma=H264 --sout '#rtp{sdp=rtsp://:8081/}' --demux h264
both have lag, but that's fine for this purpose, but I have a lot of corrupted images, that I can't have 
The output from the uv4l driver is the worst looking, also seems to the highest cpu usage.
Console log from the vu4l method
[b3b00510] core input debug: Stream buffering done (4760 ms in 23803 ms)
[b3b00510] core input debug: Decoder wait done in 0 ms
[b3b00510] core input error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 18584 ms ignored)
[b3b14590] core decoder error: Could not convert timestamps 0, 0
[b3b04208] core stream output warning: trying to send non-dated packet to stream output!
[b3b00510] core input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 4908 ms)
[b3b00510] core input error: ES_OUT_RESET_PCR called
Is there anyway I can improve the stability of the stream?