Reduced-latency can be achieved by restricting the GOP structure, for example to I-only, IPPP, low-delay-P. This avoids reordering of the frames thus reducing latency at the decoder. This is a frame-level mode of operation.
The command line argument --no-reordering
tells the decoder not to expect any reordering (for encoder there is no such
parameter):
ctrlsw_decoder -avc -in in.h264 -out out.yuv --no-reordering
The property low-latency specifies to
the decoder that no re-ordering takes place.
gst-launch-1.0 filesrc location=in.mp4 ! qtdemux name=demux demux.video_0 ! h264parse ! video/x-h264, alignment=au ! omxh264dec low-latency=1 ! queue max-size-bytes=0 ! fakevideosink
Set gop-mode to a basic or low delay
mode and limit the numbers of B-frames.
gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 ! video/x-raw, width=1920, height=1080, framerate=60/1, format=NV12 ! omxh264enc gop-mode=basic, b-frames=0 control-rate=low-latency ! fakesink