3

Я знаю, что этот вопрос задавали бесконечное количество раз, но на него также не давали достойного ответа бесконечное количество раз.

Как заставить ffmpeg продолжать работать, даже если исходный код становится недоступным? VLC ждет, пока соединение не восстановится, почему ffmepg не имеет такой функциональности?

Я пытался с:

-reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 4962 -timeout 2000000000

но никто не работает, как ожидалось. FFmpeg выходит через несколько секунд. Я не хочу перезапускать ffmpeg, если соединение прерывается, потому что мне нужны выходные HLS-фрагменты. Перезапуск ffmpeg приводит к перезаписи фрагментов с самого начала.

3 ответа3

4

Аргументы командной строки FFmpeg чувствительны к позиции, поэтому, возможно, вы не добавляете их в правильную позицию. Попробуйте поставить эти параметры перед вводом. Пример:

ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2 -i input -c:v copy -c:a copy outputfile.m3u8

Диапазон «reconnect_delay_max» составляет [0 - 4294]

Это сработало для меня.

0

У меня есть решение для подключения вниз! Просто добавьте опцию stimeout (в микросекундах)

ffmpeg -stimeout 10000000 \
-i rtsp://input_ip/h264 \
-c copy \
-f flv rtmp://output_ip
0

FFmpeg НЕ переподключается, если прерывание длится более 4 секунд. Когда сетевой сеанс потерян, ffmpeg выходит.

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