web-dev-qa-db-fra.com

ffmpeg génère des images de meilleure qualité pour l'encodage MJPEG

J'ai un tas de fichiers mov/H.264 que j'aimerais encoder en mov/MJPEG. Cependant, je reçois une sortie de très faible qualité. Voici ce que j'ai essayé:

ffmpeg -i a.mov -an -crf 11 -preset slower -pix_fmt yuv420p -vcodec mjpeg -f mov -y b.mov

Pour le codage H.264, le -crf et -preset les drapeaux génèrent une meilleure qualité. Mais cela ne semble pas fonctionner pour MJPEG.

11
Arun

Utilisation -q:v pour contrôler la qualité (M) JPEG

La plage effective est une échelle linéaire de 2 à 31, et une valeur inférieure se traduira par une sortie de meilleure qualité.

Exemples

Faire une vidéo MJPEG dans un conteneur MOV:

ffmpeg -i input.mov -c:v mjpeg -q:v 3 -an output.mov

Sortie d'une série d'images JPG:

ffmpeg -i input.mov -q:v 2 images_%04d.jpg

Les fichiers seront nommés images_0001.jpg, images_0002.jpg, images_0003.jpg, etc.


Options privées

Pour le codage H.264, le -crf et -preset les drapeaux génèrent une meilleure qualité. Mais cela ne semble pas fonctionner pour MJPEG.

L'encodeur MJPEG n'utilise pas -crf et -preset; ce sont options "privées" pour certains encodeurs tels que libx264, libx265 et libvpx. Vous pouvez voir des options privées comme ceci: ffmpeg -h encoder=mjpeg.

28
llogan