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

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

Теперь, когда я запускаю выше команды, тогда stream2 будет на 3 секунды медленнее, чем stream1. Когда я снова запускаю эту команду, эта задержка меняется с 3 до 4 или 5 секунд и меняется при каждом запуске команды.

Так есть ли способ справиться с этой задержкой? так как задержка изменяется при каждом запуске команды, я не могу дать статическое время задержки.

1 ответ1

1

Rtmp - это протокол, основанный на push. при подключении большинство серверов отправляет видео, начиная с последней точки синхронизации (ключевого кадра), поэтому задержка - это период времени от последней точки синхронизации до настоящего момента. Другие серверы могут подождать до следующей точки синхронизации. Это дает вам ближе к реальному времени, но за счет более длительного времени запуска для пользователя. В любом случае, это управляется с сервера, а не с клиента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .