FFMPEG Правильное время ожидания для входных потоков - PullRequest
0 голосов
/ 14 октября 2019

Я использую FFMPEG для захвата транспортных потоков из декодеров envma2 dvb-s2. Я заметил, что иногда демультиплексоры на декодерах просто полностью заняты. поэтому при запросе потока от декодера с помощью ffmpeg, ffmpeg просто ждет, пока он не получит некоторые данные потока. Поскольку декодер отвечает с http 200 (я в сети), но не отправляет потоковые данные, пока или никогда ...

Я хочу, чтобы FFMPEG превысил время ожидания, когда он не получает входные данные в течение таймфрейма. Я попытался -timeout, -rwtimeout, изменив размер зонда и анализ-время, но, похоже, ни один из них не справился с задачей

, в настоящее время просто есть

ffmpeg -i http://192.168.1.1:8001/1:0:19:4B4B:812:600:FFFF0000:0:0:0:

Я пробовал:

ffmpeg -timeout 1000000 -i http://192.168.1.1:8001/1:0:19:9Y2B:812:600:FFFF0000:0:0:0:

ffmpeg -rw_timeout 1000000 -i http://192.168.1.1:8001/1:0:19:9Y2B:723:600:FFFF0000:0:0:0:

ffmpeg -analyseduration 500 -i http://192.168.1.1:8001/1:0:19:9Y2B:812:600:FFFF0000:0:0:0:

, тогда он просто ожидает получения входного потока. Это никогда не произойдет, так как декодер полностью занят.

Для этого мне нужен период ожидания. Например, если в течение 10 секунд тестирование или анализирование не будет заполнено, тогда закончите ffmpeg ... Или, в принципе, просто тайм-аут.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...