Convertir une image en format YUV avec ffmpeg
Bonjour,
j'ai un programme qui permet de récupérer les images d'une vidéo une par une. On convertit le format natif en format YUV420P. Pour cela, j'utilise la fonction sws_scale qui convertit mon image pFrame de format natif en image pFrameYUV de format YUV420P. J'arrive bien à visualiser mes Y en les enregistrant dans un fichier PPM.
Maintenant, la vidéo que j'utilise pour tester est déjà en format YUV420P. Donc, je me dis que ce n'est pas obligé d'utiliser sws_scale pour gagner du temps, mais je n'y arrive pas. Lorsque j'enregistre directement pFrame, j'obtiens des "bandes de gris" ... Je ne comprend pas pourquoi alors que sws_scale fait uniquement une copie des données dans le cas où l'image source et l'image destination ont le même format et la même taille.
Maintenant, j'ai vu que mon pFrame->linesize[0] était égal à 752 alors que ma width est de 720. Alors je pense que le problème vient de là ? Mais je croyais que linesize représentait le nombre d'octets par ligne ? Pourquoi ai-je une différence de 32 ? Puis-je enregistrer directement ma pFrame ?
Merci pour l'aide que vous pourriez m'apporter !