On 01-09-2022 17:06, Thomas Seilund via ffmpeg-user wrote:
Dear All
I do live streaming and I need to pick up the audio from a microphone.
I test latency like this:
ffplay -f pulse -i
"alsa_input.usb-Remo_Tech_Co.__Ltd._OBSBOT_Tiny-02.analog-mono"
ffplay -f alsa -i default
After running one of the commands I can hear my own voice in my
headphones. I am happy.
But the first command gives a delay of 3 sec. The other command gives
close to no delay.
How can I fix the first command to get close to no delay?
Both command records from the same microphone and output to the same
headphones.
What I see is that the black screen from ffplay takes about 3 sec to
display with the first command but shows up close to instantly with
the second command.
Here is output from the two commands:
ffplay -f pulse -acodec pcm_s16le -i
"alsa_input.usb-Remo_Tech_Co.__Ltd._OBSBOT_Tiny-02.analog-mono"
ffplay version N-104384-g374f2ac370 Copyright (c) 2003-2021 the FFmpeg
developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-libfreetype --enable-libx264 --enable-gpl
--enable-libvorbis --enable-libvpx --enable-libmp3lame --enable-libzmq
--enable-libpulse
libavutil 57. 7.100 / 57. 7.100
libavcodec 59. 12.100 / 59. 12.100
libavformat 59. 6.100 / 59. 6.100
libavdevice 59. 0.101 / 59. 0.101
libavfilter 8. 14.100 / 8. 14.100
libswscale 6. 1.100 / 6. 1.100
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
Input #0, pulse, from
'alsa_input.usb-Remo_Tech_Co.__Ltd._OBSBOT_Tiny-02.analog-mono':
Duration: N/A, start: 1662044141.069410, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
1662044142.91 M-A: -0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
ffplay -f alsa -i default
ffplay version N-104384-g374f2ac370 Copyright (c) 2003-2021 the FFmpeg
developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-libfreetype --enable-libx264 --enable-gpl
--enable-libvorbis --enable-libvpx --enable-libmp3lame --enable-libzmq
--enable-libpulse
libavutil 57. 7.100 / 57. 7.100
libavcodec 59. 12.100 / 59. 12.100
libavformat 59. 6.100 / 59. 6.100
libavdevice 59. 0.101 / 59. 0.101
libavfilter 8. 14.100 / 8. 14.100
libswscale 6. 1.100 / 6. 1.100
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
Input #0, alsa, from 'default': 0KB vq= 0KB sq= 0B f=0/0
Duration: N/A, start: 1662044161.792616, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
1662044163.53 M-A: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
Regards
Thomas S
Simple, the first command uses pulseaudio which is userspace to read
from alsa which is in kernelspace.
The second command bypasses userspace to read directly from alsa
therefor has less latency.
Pulseaudio is not known for its low latency, if you need to use a sound
server in userspace with low latency use jack.
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".