Le cropping avec MEncoder n'est pas toujours n'est pas facile à comprendre, surtout au début avec la ligne de commande. Voici un exemple pour faire un encodage avec cropping.
La taille de la vidéo d'origine est 720 x 576. L'aspect ratio 16/9. Des bandes noires dans l'image.

Voici comment on fait. Pour détecter les bandes noires, j'utilise simplement avec la ligne de commande l'option "cropdetect" de MPlayer.
Dans le terminal, on obtient les infos :

La nouvelle taille de l'image est 688 x 544. Mais elle n'est pas en 16/9. Je la redimensionne.
688 divisé par 1,77778 = 387
Cela donne 688 x 387.
Mais 387 n'est pas un multiple de 16 (1), je choisit 384.
Résultat : 688 x 384
L'option scale sera scale=688:384
L'option crop + scale sera -vf crop=688:544:16:16,scale=688:384
Surtout ne pas oublier la virgule. Elle sert quand on ajoute un autre option.
Ma ligne de commande complète avec comme codecs Xvid et Mp3 :

Si je veux un cropping personnalisé sans l'utilisation de l'option "cropdetect" de MPlayer. Voici comment on fait.
Taille de la vidéo d'origine : 720 x 576
Bandes noires à enlever : Gauche = 16, Droite = 16, Haut = 16, Bas = 16
Pour trouver la largeur de l'image sans les bandes noires :
Largeur d'origine - (Gauche + Droite) = Largeur rogné = 720 - (16 + 16) = 688
Pour trouver la hauteur de l'image sans les bandes noires :
Hauteur d'origine - (Haut + Bas) = Hauteur rogné = 576 - (16 + 16) = 544
Avec l'option crop : crop=688:544:16:16
Résultat : 688:544:16:16
Pour vérifier si le cropping est parfait, une ligne de commande avec MPlayer :

Sinon, je rectifie en enlevant plus ou moins sur les bandes noires et je vérifie à nouveau.
Autrement j'utilise souvent Avidemux, pour voir les bandes noires à enlever. Ca marchera aussi avec un autre éditeur vidéo.
Pour éviter des messages d'erreur de Mencoder, on vérifie toujours que cela ne dépasse pas la largeur d'origine, c'est à dire 720 :
16 + 688 + 16 = 720.
Pareil pour la hauteur 576 :
16 + 544 + 16 = 576
Bon encodage !
Liens :
(1) les macroblocs du MPEG-4 ont une taille de 16×16. Il faut veiller que la taille de l'image soit un multiple de 16.
La taille de la vidéo d'origine est 720 x 576. L'aspect ratio 16/9. Des bandes noires dans l'image.

Voici comment on fait. Pour détecter les bandes noires, j'utilise simplement avec la ligne de commande l'option "cropdetect" de MPlayer.
$ mplayer ma_video_entree.mpg -vf cropdetect
...
[CROP] Crop area: X: 16..703 Y: 16..559 (-vf crop=688:544:16:16)
[CROP] Crop area: X: 16..703 Y: 16..559 (-vf crop=688:544:16:16)
[CROP] Crop area: X: 16..703 Y: 16..559 (-vf crop=688:544:16:16)
L'option crop sera : [CROP] Crop area: X: 16..703 Y: 16..559 (-vf crop=688:544:16:16)
[CROP] Crop area: X: 16..703 Y: 16..559 (-vf crop=688:544:16:16)
[CROP] Crop area: X: 16..703 Y: 16..559 (-vf crop=688:544:16:16)
-vf crop=688:544:16:16

La nouvelle taille de l'image est 688 x 544. Mais elle n'est pas en 16/9. Je la redimensionne.
688 divisé par 1,77778 = 387
Cela donne 688 x 387.
Mais 387 n'est pas un multiple de 16 (1), je choisit 384.
Résultat : 688 x 384
L'option scale sera scale=688:384
L'option crop + scale sera -vf crop=688:544:16:16,scale=688:384
Surtout ne pas oublier la virgule. Elle sert quand on ajoute un autre option.
Ma ligne de commande complète avec comme codecs Xvid et Mp3 :
$ mencoder 'video entrée.mpg' -vf crop=688:544:16:16,scale=688:384 -ovc xvid -xvidencopts bitrate=1500 -oac mp3lame -lameopts cbr:br=128 -o 'video sortie.avi'

Si je veux un cropping personnalisé sans l'utilisation de l'option "cropdetect" de MPlayer. Voici comment on fait.
Taille de la vidéo d'origine : 720 x 576
Bandes noires à enlever : Gauche = 16, Droite = 16, Haut = 16, Bas = 16
Pour trouver la largeur de l'image sans les bandes noires :
Largeur d'origine - (Gauche + Droite) = Largeur rogné = 720 - (16 + 16) = 688
Pour trouver la hauteur de l'image sans les bandes noires :
Hauteur d'origine - (Haut + Bas) = Hauteur rogné = 576 - (16 + 16) = 544
Avec l'option crop : crop=688:544:16:16
Résultat : 688:544:16:16
Pour vérifier si le cropping est parfait, une ligne de commande avec MPlayer :
$ mplayer ma_video_entree.mpg -vf crop=688:544:16:16

Sinon, je rectifie en enlevant plus ou moins sur les bandes noires et je vérifie à nouveau.
Autrement j'utilise souvent Avidemux, pour voir les bandes noires à enlever. Ca marchera aussi avec un autre éditeur vidéo.
Pour éviter des messages d'erreur de Mencoder, on vérifie toujours que cela ne dépasse pas la largeur d'origine, c'est à dire 720 :
16 + 688 + 16 = 720.
Pareil pour la hauteur 576 :
16 + 544 + 16 = 576
Bon encodage !
Liens :
(1) les macroblocs du MPEG-4 ont une taille de 16×16. Il faut veiller que la taille de l'image soit un multiple de 16.
Commentaires
Enregistrer un commentaire