摄像头测试
2022-05-25 本文已影响0人
咖喱鸡蛋
摄像头
--gst-debug-level=X 或 --gst-debug=myelement:X(X的取值为[0,5])
推流
1、摄像头推流
1、gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! 'video/x-raw,format=(string)NV12,width=1280,height=768,framerate=(fraction)30/1' ! queue ! mppenc ! udpsink host=182.168.3.128 port=5000 sync=false
2、注意事项
由于是直接将H264进行推流,数据流是直接通过socket发送出去的,因此H264单包数据量不能超过65507,否则会导致数据溢出。
例如:第一条命令,将数据流编码成H264时,码率默认是2Mbit/s,如果将码率设为10Mbit/s,将会出现数据溢出:
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! 'video/x-raw,format=(string)NV12,width=640,height=480,framerate=(fraction)30/1' ! queue ! x264enc bitrate=10240 ! udpsink host=127.0.0.1 port=5000 sync=false
摄像头拉流
Receiver:
gst-launch-1.0 -v udpsrc port=5000 ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! h264parse ! autodecbin ! videoconvert ! autovideosink
RTP send recv
sender tv_pad
1 send color-test
gst-launch-1.0 videotestsrc is-live=true ! video/x-raw,formaterate=30/1 ! videoconvert ! mpph264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=5000
2 send cam-video0 ---delay (bufx3 once) 160~1000ms
gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! video/x-raw,format=NV12,formaterate=30/1 ! queue ! mpph264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=5000
原始分辨率为4k,延时非常大,连续三帧卡顿一次。
降低分辨率为720p,延时平均150,(直接读约120),编解码+传输延时约30ms(预估)
recv
gst-launch-1.0 -ve udpsrc port=5000 ! application/x-rtp,clock-rate=90000,payload=96 ! rtph264depay ! h264parse ! mppvideodec ! videoconvert ! autovideosink sync=false
recv must start frist and keep alive ,when sender send h264 then the window display
延时计算,测试10次,计算平均值,发现延时平均在166ms(记录别人测试,验证自己测试)
image.png