Estou procurando uma maneira de transmitir um vídeo de webcam com a menor latência possível. Qualidade e resolução são muito menos importantes.
Este é o comando que estou usando atualmente:
cvlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=800,acodec=none}:rtp{sdp=rtsp://:8554/}'
Funciona, mas tem um atraso de 2.000 ms em uma LAN que é muito alto. Fico feliz em sacrificar a resolução ou qualidade para reduzir o atraso.
VLC tem uma lista decodecsmas não quero passar horas tentando instalá-los se eles ficarem lentos.
Responder1
A latência é um grande problema principalmente quando se utiliza a sincronização da captura de áudio com o vídeo online. Para mim trabalha com ocodec theo, estou usando este codec para controlar a resolução de transmissão a implementação deste codec é nativa em quase todas as compilações do VLC. No seu caso, você pode definir usando este formulário:
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}"
onde XXX é a resolução e YY é a escala, exemplo:
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}"