Estou tentando solucionar um problema de ligação de porta no avconv / FFmpeg. Eu tenho dois comandos de teste; um que envia um fluxo de áudio sobre o UDP:
avconv -i test.wav "udp://localhost:6613?localport=6614&reuse=1&connect=0"
E um que ouve:
avconv -loglevel debug -f wav -ac 1 -i "udp://localhost:6613?reuse=1&connect=0" out.wav
Se o segundo comando (listener) for executado antes do primeiro, ele funcionará; ele simplesmente fica suspenso até que o primeiro comece a enviar dados por essa porta.
No entanto, se o primeiro comando for iniciado primeiro e começar a enviar dados antes que o listener seja configurado, a execução do segundo comando produzirá a seguinte saída:
Opening an input file: udp://localhost:6613.
udp://localhost:6613: Operation not permitted
No entanto, isso não é um erro de ligação de porta !
Se eu remover reuse=1
do segundo comando e executá-lo duas vezes - tentando, na verdade, vincular o soquete duas vezes - ele gerará a seguinte mensagem:
Opening an input file: udp://localhost:6613.
[udp @ 0x1a77140] bind failed: Address already in use
udp://localhost:6613: Input/output error
Contanto que reuse=1
ainda esteja no comando, executá-lo duas vezes não gerará um erro de ligação, e ele estará nos comandos de teste na esperança de resolver o problema ... o que não acontece.
Então, eu gostaria de saber por que tem um problema em ouvir um fluxo contínuo e, além disso, como evitar isso.