J'ai une caméra de sécurité IP (192.168.0.8) capable de diffuser du contenu rtsp sur le réseau.
Je peux enregistrer ce contenu (RAW) sans modifications en utilisant la prochaine commande ffmpeg de mon ordinateur:
ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -acodec copy -vcodec copy test-raw.mp4
Je peux également le redimensionner à la volée:
ffmpeg -i "rtsp://192.168.0.8/stream=0.sdp" -vf "scale=640:-1" test640.mp4
Mais comment enregistrer uniquement cette vidéo qui contient uniquement des parties de détection de mouvement?
J'ai essayé de le résoudre en utilisant les filtres de changement de scène de ffmpeg , mais pas de chance.
Mon objectif - avoir une solution de surveillance vidéo commune, qui détecte quand quelqu'un s'approche de la caméra et l'enregistre dans le fichier vidéo. Je comprends qu'il pourrait ne pas être possible de le faire à la volée à partir du flux, il est donc correct pour moi d'enregistrer un gros fichier en premier, puis de le traiter avec une autre commande ffmpeg et de générer un nouveau fichier vidéo qui ne contient que des parties détectées par le mouvement. Si vous pouvez me donner des conseils sur ce que je devrais faire de plus, je serai vraiment reconnaissant.
Mon flux de caméra est transmis sans son. Ainsi, je peux générer un ensemble d'images à partir de la vidéo d'origine, puis choisir des images appropriées et enregistrer une nouvelle vidéo à partir d'images.
la source
Réponses:
Ce que je ferais, c'est faire exactement ce que vous avez dit, et enregistrer un gros fichier du flux, puis utiliser le
select
filtre FFMPEG avec l'scene
expression, qui compare la similitude des images consécutives:select=gt(scene\,0.003)
par exemple. Plus le nombre est élevé, plus le changement entre les images est ignoré, dans un test rapide, vous devrez peut-être descendre aussi bas que 0,00001-0,00005 selon le type de métrage que vous traitez.Combinez cela avec le
setpts
filtre , qui modifie l '"heure de début" des images vidéo, et vous vous retrouveriez avec quelque chose comme (pour une vidéo à 25 ips):Attention, vous ne pourrez pas l'utiliser
-vcodec copy
lorsque vous utiliserez des filtres vidéo.la source