Comment contrôler key-frame génération de ffmpeg?
Je suis en train de faire un segmenter qui interviennent ffmpeg write_frame fonction et écrire des données de sortie des fichiers séparés. Chaque segmenté fichier contient un segment d'environ 3 secondes de la vidéo.
Fait le code suivant:
1 - Get transcoded packet
2 - Check if it contains key frame data, if yes goto 3.
3 - Check the duration of current segment, if it exceed 3 seconds, goto 4
4 - Close file, and create new segment, write packet to segment file, goto-1
D'une manière générale, chaque segment contient au moins 3 secondes données vidéo, et il commence avec une image clé.
Le problème est que la sortie vidéo de la durée sont très différents, certains contiennent de 3 secondes, 5 ou 6.
Je soupçonne que le problème est dû à la façon dont ffmpeg générer des images clés lors du transcodage. Si la "distance" entre deux images clés sont 6s, j'ai eu 6 secondes segment.
Voici mes questions:
- est-ce vrai que ffmpeg générer des images clés à intervalles irréguliers (et l'intervalle de temps peut être de quelques secondes (par exemple. 6)?
- Comment pouvons-nous contrôler le ffmpeg image clé de la génération? (je suppose qu'il doit y avoir un ffmpeg commande de l'argument pour cela, -force_key_frames peut-être, mais je ne suis pas sûr)
Il a été quelques années auparavant, je ne me souviens pas exactement ce que j'avais fait. Mais l'idée est de jouer avec un forçage image clé pour être généré à certain intervalle (merci google pour -force_key_frame) FFmpeg ont peut-être changé depuis, alors vous êtes mieux de se référer à la plus récente du document. Espérons qu'il aidera
Ok je vais vérifier, grâce jAckOdE
OriginalL'auteur jAckOdE | 2013-01-02
Vous devez vous connecter pour publier un commentaire.
Il est possible pour ffmpeg pour générer une image Clé à intervalle irrégulier, basé sur la détection de changement de scène.
intervalle entre les images clés peut être contrôlée par la taille du GOP. les options suivantes peuvent être utilisées
-g (FFmpeg)
Intervalle des images-clés, aussi connu comme le GOP longueur. Ceci détermine la distance maximale entre les I-frames. Très haute GOP longueurs fera un peu de compression plus efficaces, mais faire de la recherche, dans la vidéo un peu plus difficile.
-keyint_min (FFmpeg)
Minimum GOP longueur, la distance minimale entre les I-frames.
OriginalL'auteur rajneesh