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".

Reply via email to