Como determinar o atraso do fluxo no ffmpeg

0

Estou usando o seguinte comando para mesclar dois fluxos de áudio ao vivo e também para gerenciar atrasos entre fluxos:

ffmpeg -i rtmp://myIp:1935/live/stream1 -i rtmp:/myIp:1935/live/stream2 -codec:a aac -strict -2 -filter_complex "[1:a]adelay=3000[delay0];[0:a][delay0]amix" -ac 2 -f flv rtmp://myIp:1935/live/myStream

Agora, quando executo o comando acima, o stream2 é de 3 segundos de atraso do que o stream1 . Quando executo este comando novamente, esse atraso muda de 3 segundos para 4 ou 5 segundos e varia em cada execução de comando.

Existe alguma maneira de gerenciar esse atraso? como as mudanças de atraso em todos os comandos são executados, não posso dar tempo de atraso estático.

    
por Yuvrajsinh 17.06.2014 / 07:29

1 resposta

1

O Rtmp é um protocolo baseado em push. a maioria dos servidores, Quando você se conecta, envia o vídeo iniciando no último ponto de sincronização (quadro chave), de modo que o atraso é o período de tempo do último ponto de sincronização até o momento. Outros servidores minha espera até o próximo ponto de sincronização. Isso te aproxima mais do tempo real, mas à custa de tempos de inicialização mais longos para o usuário. De qualquer forma, é controlado pelo servidor, não pelo cliente.

    
por 17.06.2014 / 15:48