Ich suche nach einer Möglichkeit, ein Webcam-Video mit möglichst geringer Latenz zu streamen. Qualität und Auflösung sind dabei weit weniger wichtig.
Dies ist der Befehl, den ich derzeit verwende:
cvlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=mp4v,vb=800,acodec=none}:rtp{sdp=rtsp://:8554/}'
Es funktioniert, hat aber eine Verzögerung von 2000 ms über ein LAN, was zu viel ist. Ich bin gerne bereit, Auflösung oder Qualität zu opfern, um die Verzögerung zu reduzieren.
VLC hat eine Liste vonCodecsaber ich möchte nicht Stunden mit der Installation verbringen, wenn sie am Ende langsam sind.
Antwort1
Latenz ist ein großes Problem, vor allem wenn man die Audioaufnahme mit dem Video online synchronisiert. Für mich funktioniert es mit demTheo-CodecIch verwende diesen Codec, um die Übertragungsauflösung zu steuern. Die Implementierung dieses Codecs ist in fast allen VLC-Kompilierungen nativ. In Ihrem Fall können Sie dies mithilfe dieses Formulars einstellen:
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}"
wobei XXX die Auflösung und YY der Maßstab ist, Beispiel:
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}"