Eu tenho um problema com a captura de fluxo RTSP sobre TCP da câmera IP.
Eu tentei muitas opções como tempo limite, stimeout, outras bandeiras relacionadas ao frame-chave, etc., nada ajudou. O FFmpeg está capturando o fluxo corretamente, mas quando algo está errado com a fonte, o número do quadro (no arquivo de estatísticas) está congelando e o tamanho do vídeo não está aumentando. Descobri que isso ocorre porque provavelmente houve um quadro perdido e, por causa do TCP, o quadro deve ser reenviado e o ffmpeg está aguardando esse quadro. Neste caso, a única opção é abortar o processo atual do ffmpeg e continuar desde o início. - está quase ok, quase - por causa disso eu não estou capturando cerca de 5-7 segundos do vídeo.
Abaixo está o comando que estou usando:
ffmpeg -rtsp_transport tcp -progress /media/stats.txt -i rtsp://192.168.1.107:554/VideoInput/1/h264/1 -r 25 -c:v copy -c:a copy -map 0 -f segment -strftime 1 -segment_time 1800 /media/cam_%d_%m_%Y_%H_%M_%S_ffmpeg.mkv
Alguma possibilidade de informar ffmpeg
para pular o quadro quebrado e continuar gravando?
É melhor ter corrupção no vídeo por 1 a 2 segundos do que perder de 5 a 7 segundos para reconectar.
Como eu sei, isso deve funcionar melhor com o UDP, mas, infelizmente, minha câmera IP não está funcionando corretamente com o protocolo UDP.