Streaming de áudio de baixa latência

2

Estou tentando transmitir áudio de um microfone usando o FFmpeg em uma rede para o VLC, mas não consegui obter a latência abaixo de meio segundo, o que é inaceitável para o meu propósito. Eu consegui transmitir vídeo bruto (do mesmo dispositivo de webcam) quase sem latência, então espero que seja possível fazer o mesmo com o áudio, já que há menos dados envolvidos.

Comando FFmpeg:

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

Saída do console:

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))

Estou recebendo isso em VLC com o caching definido para 10ms, mas o atraso real entre um som e o VLC é de meio segundo.

Além disso, se eu não iniciar o VLC tentando receber o fluxo antes de iniciar o fluxo do FFmpeg, ele não funcionará. Eu posso facilmente contornar este problema, mas parece um pouco estranho.

Existe alguma maneira de reduzir ainda mais a latência?

    
por SilentSin 11.05.2016 / 04:10

0 respostas