我正在寻找一种以尽可能低的延迟传输网络摄像头视频的方法。质量和分辨率远不那么重要。
这是我当前正在使用的命令:
cvlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=800,acodec=none}:rtp{sdp=rtsp://:8554/}'
它可以工作,但在 LAN 上延迟 2000ms,这太高了。我很乐意牺牲分辨率或质量来减少延迟。
VLC 有以下列表编解码器但如果它们最终运行缓慢,我就不想花几个小时尝试安装它们。
答案1
延迟是一个非常大的问题,主要是在使用音频捕获与在线视频同步时。对我来说,Theo 编解码器,我使用这个编解码器来控制传输的分辨率,这个编解码器的实现是几乎所有 VLC 编译版的原生实现。对于您的情况,您可以使用以下形式进行设置:
cvlc v4l2:///dev/video0 :v4l2-standard= :live-caching=1000 :sout="#transcode{vcodec=theo,vb=XXX,fps=30,scale=Y.Y}:rtp{sdp=rtsp://:554/test}"
其中 XXX 是分辨率,YY 是比例,例如:
cvlc v4l2:///dev/video0 :v4l2-standard= :live-caching=1000 :sout="#transcode{vcodec=theo,vb=300,fps=30,scale=0.2}:rtp{sdp=rtsp://:554/test}"