ffmpeg mantém conexão se a origem da rede estiver inativa

3

Eu sei que esta pergunta foi feita vezes infinitas, mas não foi respondida com uma resposta decente vezes infinitas também.

Como fazer o ffmpeg continuar funcionando mesmo se a fonte se tornar indisponível? O VLC aguarda até a conexão voltar, por que o ffmepg não tem essa funcionalidade?

Eu tentei com:

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

mas nenhum funciona como esperado. O FFmpeg sai depois de apenas alguns segundos. Eu não quero reiniciar o ffmpeg se a conexão for interrompida porque eu preciso que os fragmentos HLS de saída estejam disponíveis. Reiniciar o ffmpeg faz com que os fragmentos sejam sobrescritos desde o começo.

    
por Viktor Joras 09.03.2016 / 09:18

3 respostas

4

Os argumentos da linha de comando do FFmpeg são sensíveis à posição, então talvez você não esteja adicionando-os na posição correta. Tente colocar essas opções antes da entrada. Exemplo:

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

O intervalo 'reconnect_delay_max' é [0 - 4294]

Funcionou para mim.

    
por 09.03.2016 / 10:17
0

O FFmpeg NÃO se reconecta se a interrupção durar mais de 4 segundos. Quando a sessão de rede é perdida, o ffmpeg sai.

    
por 09.03.2016 / 23:15
0

Eu tenho solução para conexão! Basta adicionar a opção stimeout (em microssegundos)

ffmpeg -stimeout 10000000 \
-i rtsp://input_ip/h264 \
-c copy \
-f flv rtmp://output_ip
    
por 11.01.2018 / 09:55

Tags