I am trying to setup a low latency 4k encoding -> decoding pipeline.
The system looks like that:
4k camera -> HDMI -> USB -> Jetson Nano -> UDP -> Jetson Nano -> HDMI 4k TFT
On the Encoder side I started with first tests and got local 4k playback running smooth but with a significant latecny of about 500ms.
The used pipeline is:
gst-launch-1.0 -v v4l2src ! video/x-raw,format=NV12 ! nvvidconf ! autovideosink
My questions here are:
- what is the most preferred way to display with minimum latency?
- is there a way to reduce buffers to reduce latency?
- what is the preferred way to measure latency for each and every gstreamer element?
For the final streaming solution via ethernet (WiFi) the below pipelines do work basically but needs further optimization:
gst-launch-1.0 -v v4l2src ! video/x-raw,format=NV12 ! nvvidconv ! nvv4l2h264enc insert-sps-pps=1 maxperf-enable=1 ! h264parse ! rtph264pay pt=96 mtu=1500 ! udpsink host=192.168.2.65 port=5000 sync=false async=false
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! queue ! omxh264dec ! autovideosink
Looking forward to your inputs and suggestions where to start with optimizing and how to setup gst pipeline profiling.
Many thanks for your help,