I’m trying to capture video from a USB webcam (Elgato Cam Link) and stream it over the network via SRT. However I’m getting latency spikes every few frames, causing jerky video when panning etc.
KPI: v4l2: frameNumber= 1066 encoder= 10 ms pts= 17889384592
KPI: v4l2: frameNumber= 1067 encoder= 15 ms pts= 17906066540
KPI: v4l2: frameNumber= 1068 encoder= 20 ms pts= 17922757488
KPI: v4l2: frameNumber= 1069 encoder= 11 ms pts= 17939436748
KPI: v4l2: frameNumber= 1070 encoder= 22 ms pts= 17956121592
KPI: v4l2: frameNumber= 1071 encoder= 17 ms pts= 17972803279
KPI: v4l2: frameNumber= 1072 encoder= 11 ms pts= 17989491488
KPI: v4l2: frameNumber= 1073 encoder= 10 ms pts= 18006168696
KPI: v4l2: frameNumber= 1074 encoder= 11 ms pts= 18022860488
KPI: v4l2: frameNumber= 1075 encoder= 21 ms pts= 18039538008
KPI: v4l2: frameNumber= 1076 encoder= 16 ms pts= 18056222748
KPI: v4l2: frameNumber= 1077 encoder= 11 ms pts= 18072905905
KPI: v4l2: frameNumber= 1078 encoder= 10 ms pts= 18089588165
KPI: v4l2: frameNumber= 1079 encoder= 10 ms pts= 18106269008
KPI: v4l2: frameNumber= 1080 encoder= 20 ms pts= 18122952801
This is my pipeline:
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw, width=1920, height=1080, format=YUY2' ! nvvidconv ! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12' ! nvv4l2h265enc bitrate=4000000 control-rate=1 preset-level=1 insert-sps-pps=1 MeasureEncoderLatency=1 ! 'video/x-h265, stream-format=byte-stream' ! mpegtsmux ! srtsink name=srt uri="srt://10.0.0.2:1935?streamid=input/live/cam" latency=300
The same latency issue happens when outputting to a file or fakesink.
Does anyone know what the reason for this could be?