Ich habe eine IP-Überwachungskamera (192.168.0.8), die RTSP-Inhalte über das Netzwerk übertragen kann.
Ich kann diesen (RAW-) Inhalt ohne Änderungen mit dem nächsten Befehl ffmpeg von meinem Computer speichern:
ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -acodec copy -vcodec copy test-raw.mp4
Ich kann die Größe auch spontan ändern:
ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -vf "scale=640:-1" test640.mp4
Aber wie kann man nur das Video speichern, das nur Teile der Bewegungserkennung enthält?
Ich habe versucht , es zu bekommen gelöst FFmpegs mit Szenenwechsel Filter , aber kein Glück.
Mein Ziel ist es, eine gemeinsame Videoüberwachungslösung zu haben, die erkennt, wenn sich jemand in der Nähe der Kamera befindet, und diese in der Videodatei speichert. Ich verstehe, dass es unter Umständen nicht möglich ist, große Dateien direkt vom Stream aus zu speichern. Daher ist es in Ordnung, diese zunächst mit einem anderen Befehl ffmpeg zu verarbeiten und eine neue Videodatei zu generieren, die nur bewegungserkannte Teile enthält. Wenn Sie mir einen Rat geben können, was genau ich genauer recherchieren soll, bin ich Ihnen sehr dankbar.
Mein Kamerastream wird ohne Ton übertragen. So kann ich eine Reihe von Bildern aus dem Originalvideo generieren, dann die richtigen Bilder auswählen und dann ein neues Video aus den Bildern speichern.
quelle
Antworten:
Ich mache genau das, was du gesagt hast, und speichere eine große Datei des Streams und verwende dann den
select
FFMPEG-Filter mit demscene
Ausdruck verwenden, der die Ähnlichkeit aufeinanderfolgender Frames vergleicht:select=gt(scene\,0.003)
zum Beispiel. Je höher die Zahl, desto mehr Änderungen zwischen den Bildern werden ignoriert. Je nach Art des Filmmaterials müssen Sie beim Schnelltest möglicherweise auf 0,00001-0,00005 sinken.Wenn Sie das mit dem
setpts
Filter kombinieren, der die "Startzeit" von Videobildern ändert, erhalten Sie am Ende so etwas wie (für ein 25-fps-Video):Allerdings können Sie diese Option nicht verwenden,
-vcodec copy
wenn Sie Videofilter verwenden.quelle