Supprimer les événements de mouvement du fichier

2

Je travaille actuellement sur un projet de time lapse. J'ai quelques longues vidéos où il ne manque rien et je me demande s'il existe un programme capable de supprimer toutes ces parties ou de supprimer toutes les parties du mouvement et de les regrouper en un seul. fichier plutôt que de passer par des heures de lecture et de les couper manuellement.

J'ai lu que vlc peut détecter un mouvement lors de la lecture, mais je ne sais pas comment l'utiliser. Cela peut être une solution pour Windows ou Linux.

BluGeni
la source

Réponses:

2

J'ai fait des expériences avec ffmpeg et le mpdecimate filtre.

La sortie est une vidéo avec uniquement les parties "actives" et j'ai utilisé quelques astuces avec le FPS.

La sortie jouera à 25 ips pour le joueur, mais sera à 5 ips en réalité (ajustez le nombre 5 dans les deux setpts et d'abord fps filtres pour ajuster la vitesse. Si 25 images par seconde vous convient (ma vidéo de test montre des changements trop rapides pour moi), supprimez le dernier filtre et utilisez-le. -map [c] au lieu.

Si vous devez ajuster le seuil, regardez ici : (f.e .: mpdecimate=hi=64*12:lo=64*8:frac=0.33 )

mpdecimate laisserait tomber les cadres, mais la longueur est conservée. Avec setpts vous le forcez à calculer une durée fixe pour chaque cadre et le premier fps fait correspondre la vitesse "actuelle" définie par setpts. Dernier fps le rend "jouable" (insère des images dupliquées pour remplir la vidéo à 25 images par seconde), (la vidéo à 5 images par seconde sur mon VLC ne fonctionne pas très bien, gelant de temps en temps)

ffmpeg -y -i input.mp4 -filter_complex "[0:v] mpdecimate [a] ; [a] setpts='N/(5*TB)' [b] ; [b] fps=5 [c] ; [c] fps=25 [d]" -map "[d]" -c:v libx264 ouput.mp4
NuTTyX
la source
Je reçois] Aucun filtre de ce type: 'mpdecimate' Erreur lors du fractionnement de la liste des arguments: Option non trouvée, que dois-je faire pour résoudre ce problème?
BluGeni
J'ai raté des citations autour [d] dans -map. En ce qui concerne le filtre, j'ai utilisé et la version actuelle de ffmpeg. Pourriez-vous essayer de mettre à jour le vôtre?
NuTTyX
ok parfait sa course maintenant, il semble qu'il faudra un certain temps pour terminer. Je vais faire rapport après c'est fait.
BluGeni
2
Si tu utilises -vsync 2, vous pouvez créer un fichier de sortie VFR. (ffmpeg par défaut est le mode CFR pour mp4, VFR pour mkv). Dans ce cas, vous ne devriez pas avoir besoin de doubler les images avec le filtre fps. Bonne idée d'utiliser des setpts pour sauter des sections sans mouvement.
Peter Cordes
1
de plus, tous ces filtres ont 1 entrée, 1 sortie. Dans ce cas, vous n'avez pas réellement besoin de filter_complex, ni d'entrées / sorties nommées. Juste ffmpeg in.mkv -vf "mpdecimate, setpts='N/(5*TB)' -preset slow out.mkv devrait marcher. (vous n'avez pas besoin de -map, car ffmpeg mappe la sortie de votre filtre vidéo par défaut.)
Peter Cordes