ffmpeg: RTSP-Stream in Echtzeit auf Platte aufnehmen und schwarze Frames setzen, wenn RTSP-Zeitüberschreitung auftritt

1672
Michel Chanton

Ich muss in Echtzeit einen RTSP-Videostream auf die Festplatte aufnehmen. Das funktioniert gut mit so etwas (tcp nicht udp):

ffmpeg -i rtsp://@stream -acodec copy -vcodec copy -movflags frag_keyframe+empty_moov -f mp4 test.mp4 

Der Quellstream wird mit einer Matrox HDX-Karte ausgeführt, die Video und Audio von einem SDi-Kabel empfängt.

Leider ist der Stream nicht 100% zuverlässig (ich vermute die Internetverbindung und nicht die Matrox HDX) und manchmal einfach mal ein bisschen raus. Für mich ist es äußerst wichtig, dass alle "Zeitstempel" intakt sind. Das heißt, wenn ich 20s keine Daten bekomme, möchte ich, dass ffmpeg 20s schwarzes Video mit 0 Audio schreibt. Jetzt wird die Aufnahme mit einem "Verbindungszeitlimit" angehalten.

rtsp://@stream: Connection timed out 

Ist das mit ffmpeg irgendwie möglich? Hat das jemals jemand erreicht? Wenn nicht: Gibt es eine andere Lösung, wo dies möglich ist?

0

0 Antworten auf die Frage