Tool/software:
We are using a custom board based on AM5728 SOC with ov5640 camera integrated in it and are successfully able to stream video between two of our custom boards with sender camera resolution 640 x 480 using gstreamer utility. But, when we switch to camera resolution 1280 x 720, there is a considerable lag in streaming video arriving at receiver end.
The following commands were used to send and receive video.
Sender (640 x 480):-
gst-launch-1.0 -e v4l2src device=/dev/video1 io-mode=4 ! \
'video/x-raw,format=(string)YUY2,width=640,height=480,framerate=(fraction)30/1' ! \
vpe num-input-buffers=8 ! \
queue ! ducatih264enc intra-interval=1 ! \
h264parse ! \
rtph264pay mtu=200 ! \
udpsink host=192.168.8.188 port=5000
Sender (1280 x 720):-
gst-launch-1.0 -e v4l2src device=/dev/video1 io-mode=4 ! \
'video/x-raw,format=(string)YUY2,width=1280,height=720,framerate=(fraction)30/1' ! \
vpe num-input-buffers=8 ! \
'video/x-raw, format=(string)NV12, width=(int)1280, height=(int)1232' ! \
queue ! ducatih264enc intra-interval=1 ! \
h264parse ! \
rtph264pay mtu=200 ! \
udpsink host=192.168.8.188 port=5000
Receiver:-
gst-launch-1.0 -v udpsrc port=5000 ! \
'application/x-rtp,media=(string)video, clock-rate=(int)90000, payload=(int)96' ! \
rtph264depay ! \
h264parse ! \
ducatih264dec ! \
vpe ! \
'video/x-raw,format=(string)NV12, width=640,height=480' ! \
videoscale sharpen=1 ! \
kmssink sync=false
We have used ducatih264 encoder and decoder which runs on IVA-HD (as per TI) as can be verified from the commands above.
1. What could be the reason behind the lag even when IVA-HD is used?
2. How can we confirm that IVA-HD is actually getting used?
3. How can the lag be reduced?