1

Я пытаюсь устранить проблему привязки порта в avconv/FFmpeg. У меня есть две тестовые команды; тот, который отправляет аудиопоток по UDP:

avconv -i test.wav "udp://localhost:6613?localport=6614&reuse=1&connect=0"

И тот, кто слушает это:

avconv -loglevel debug -f wav -ac 1 -i "udp://localhost:6613?reuse=1&connect=0" out.wav

Если вторая (слушающая) команда запускается до первой, она работает; он просто висит там, пока первый не начнет отправлять данные через этот порт.

Однако, если первая команда запускается первой и начинает отправку данных до того, как будет настроен прослушиватель, выполнение второй команды приводит к следующему выводу:

Opening an input file: udp://localhost:6613.  
udp://localhost:6613: Operation not permitted

Однако это не ошибка привязки порта !

Если я удаляю reuse=1 из второй команды и запускаю ее дважды - тем самым фактически пытаясь связать сокет дважды - она генерирует следующее сообщение:

Opening an input file: udp://localhost:6613.
[udp @ 0x1a77140] bind failed: Address already in use
udp://localhost:6613: Input/output error

Пока reuse=1 все еще находится в команде, его повторное выполнение не вызовет ошибку привязки, и оно находится в тестовых командах в надежде, что это решит проблему ... а это не так.

Итак, я хотел бы знать, почему возникает проблема с прослушиванием текущего потока и, более того, как это предотвратить.

0