Ffmpeg: Comment choisir un modèle spécifique de cadres à partir d'un flux?

Quelqu'un peut-il m'aider à convertir un flux de vidéo de 30 fps en 24 fps?

Le matériel original est un film. Il semble être tiré dans 24 images par seconde, car le flux semble être constitué d'une série de 4 images suivies d'un double, puis de nouveau. 4 images, 1 dupe, 4 images, 1 dupe, 4 images, 1 dupe, etc., faisant 24 images par seconde et 6 doublons par seconde.

Lorsque je demande à ffmpeg de convertir ce matériel en 24 images par seconde, des choses étranges se produisent.

Lorsque je convertis un clip de 20 secondes 3 minutes dans le film, à mpeg2video à 24 fps (en utilisant le drapeau -r 24), j'obtiens un film en douceur, à l'exception de l'une des premières images qui est un duplicata. Cependant, lorsque j'ai d'abord essayé de copier le même clip dans un fichier séparé, puis essayer de le convertir en mpeg2video, je reçois un mouvement staccato de quelques trames, puis une dupe, puis d'autres images, une dupe, etc. ., Avec des numéros apparemment aléatoires de cadres entre les dupes. Alors – le même clip, mais lisse dans le premier cas, et staccato dans le second!

Cependant, lorsque j'utilise ffmpeg pour convertir exactement le même fichier en x264, j'ai le même mouvement staccato pour environ 30 images, puis le mouvement devient totalement lisse!

Que se passe-t-il ici?

Existe-t-il un moyen de dire spécifiquement à ffmpeg d'utiliser uniquement 4 images, puis de sauter une, et de la boucler dans le film?

Je vous remercie.

Il y a le problème spécifique à l'origine, pour lequel vous pouvez utiliser le filtre de sélection, ou le problème général, d'enlever les images en double présentes dans un modèle inconnu introduit lors du processus de téléciné.

Pour le premier,

ffmpeg -i in.mp4 -vf select='mod(n+1,5)',setpts=N/24/TB out.mp4 

Pour ce dernier, le filtre mpdecimate peut être utile

 ffmpeg -i in.mp4 -vf mpdecimate,setpts=N/24/TB out.mp4