2

Я пытаюсь транслировать аудио с микрофона с помощью FFmpeg по сети на VLC, но мне не удалось получить задержку ниже примерно половины секунды, что неприемлемо для моей цели. Мне удалось передать потоковое видео (с того же устройства с веб-камерой) практически без задержки, поэтому я ожидаю, что можно будет сделать то же самое со звуком, поскольку задействовано меньше данных.

Команда FFmpeg:

ffmpeg -f dshow -i audio="Microphone (2- Microsoft LifeCam VX-5000)" -f wav udp://127.0.0.1:12000

Консольный вывод:

Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, dshow, from 'audio=Microphone (2- Microsoft LifeCam VX-5000)':
    Duration: N/A, start: 1047373.188000, bitrate: N/A
        Stream #0:0: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
[wav @ 04fffba0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, wav, to 'udp://127.0.0.1:12000':
    Metadata:
        ISFT            : Lavf57.36.100
        Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
        Metadata:
            encoder         : Lavc57.40.100 pcm_s16le
Stream mapping:
    Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))

Я получаю это в VLC с кэшированием, установленным на 10 мс, но фактическая задержка между звуком и воспроизведением VLC составляет около половины секунды.

Кроме того, если я не запускаю VLC, пытающийся получить поток, прежде чем я фактически запускаю поток FFmpeg, это не работает. Я легко могу обойти эту проблему, но она кажется немного странной.

Есть ли способ для меня, чтобы еще больше сократить время ожидания?

0