[FFmpeg-user] Lag when streaming video+audio from RPi Zero W with Logitech C920
Emanuele
meema at tiscali.it
Sat Jan 9 08:45:56 EET 2021
I've been trying to set up a baby monitor with a Raspberry Pi Zero
and a Logitech C920 webcam. It does work with VLC (cvlc) but it lags too
much and gets worse over time.
So I am playing around with ffmpeg and
I am getting some better results. This is what I've done so far.
First
I set the webcam to output h264 1080p natively (the Pi Zero W can't
afford to do any transcoding).
v4l2-ctl
--set-fmt-video=width=1920,height=1080,pixelformat=1
Now, if I stream
audio only with
ffmpeg
-f alsa
-i hw:1,0
-vn
-flags
+global_header
-acodec aac
-ac 1
-ar 16000
-ab 16k
-f rtp
rtp://192.168.0.10:5002 [1] > audio.sdp
It works great and the lag is
about 1 second (definitely acceptable).
If I stream video only with
ffmpeg
-f v4l2
-vcodec h264
-i /dev/video0
-an
-vcodec copy
-pix_fmt yuv420p
-r 30
-b:v 512k
-flags +global_header
-f rtp
rtp://192.168.0.10:5000 [2] > video.sdp
same result, very little lag
(for some reason the first -vcodec is necessary to force the webcam to
output h264).
However, when I stream both with
ffmpeg
-f v4l2
-vcodec h264
-i /dev/video0
-f alsa
-i hw:1,0
-an
-preset
ultrafast
-tune zerolatency
-vcodec copy
-pix_fmt yuv420p
-r 30
-b:v 512k
-flags +global_header
-f rtp rtp://192.168.0.10:5000 [3]
-vn
-flags +global_header
-acodec aac
-ac 1
-ar 16000
-ab
16k
-f rtp rtp://192.168.0.10:5002 [4] > both.sdp
The lag ramps up
to ~10 seconds and audio and video are out of sync. Does anybody know
why?
I've tried UDP and TCP instead of RTP but then the lag is ALWAYS
high, even with audio/video only.
Any suggestion is much appreciated.
P.S. On the client side (MacOS) I'm receiving with
ffplay
-protocol_whitelist file,rtp,udp -i file.sdp
Con Tiscali Mobile Smart 30 4G hai minuti illimitati, 100 SMS e 30 Giga in 4G a soli 8,99€ al mese. http://tisca.li/smart30
More information about the ffmpeg-user
mailing list