options de conversion de qualité ffmpeg (compression vidéo)

Sep 22 2020

Pouvez-vous fournir un lien ou une explication sur l' -q:v 1argument qui traite de la qualité vidéo / image et de la compression dans ffmpeg.

Laisse-moi expliquer...

for f in *
   do 
     extension="${f##*.}" filename="${f%.*}"
     ffmpeg -i "$f" -q:v 1 "$filename"_lq."$extension" rm -f "$f"
   done

La forboucle ffmpeg ci-dessus compresse toutes les images et vidéos de votre répertoire de travail, elle réduit fondamentalement la qualité, ce qui entraîne une taille de fichier plus petite (le résultat souhaité).

Je suis plus intéressé par l' -q:v 1argument de cette forboucle. Le 1dans l' -q:v 1argument est ce qui contrôle la quantité de compression. Mais je ne trouve aucune documentation décrivant comment modifier cette valeur de 1et décrivant ce qu'elle fait. Est-ce un pourcentage? Multiplicateur? Comment ajuster ce bouton? Puis-je / devrais-je utiliser des valeurs négatives? Entiers uniquement? Valeurs min / max? etc.

J'ai commencé par la documentation officielle mais le mieux que j'ai pu trouver était une section sur la qualité vidéo, et la -qdescription du drapeau est clairsemée.

-frames [: stream_specifier] framecount (sortie, par flux)
Arrête d'écrire dans le flux après le nombre de trames.
.
-q [: spécificateur de flux] q (sortie, par flux)

-qscale [: spécificateur de flux] q (sortie, par flux)
Utilise une échelle de qualité fixe (VBR). La signification de q / qscale dépend du codec. Si qscale est utilisé sans stream_specifier, il s'applique uniquement au flux vidéo, c'est pour maintenir la compatibilité avec le comportement précédent et comme spécifiant la même valeur spécifique de codec à 2 codecs différents qui est audio et vidéo n'est généralement pas ce qui est prévu quand aucun stream_specifier est utilisé.

Réponses

3 llogan Sep 24 2020 at 04:17

-q:v est probablement ignoré

Vous sortez MP4, il est donc fort probable que vous utilisiez l'encodeur libx264 qui produit la vidéo H.264.

-q:v/ -qscale:vest ignoré par libx264.

La sortie de la console fournit même un avertissement à ce sujet: -qscale is ignored, -crf is recommended.

Pour plus d'informations, -crfconsultez le Wiki FFmpeg: H.264 .

Quand puis-je utiliser -q:v?

Les encodeurs MPEG * (mpeg4, mpeg2video, mpeg1video, mjpeg, libxvid, msmpeg4) peuvent utiliser -q:v/ -qscale:v.

Voir Comment puis-je extraire une image JPEG de bonne qualité d'un fichier vidéo avec ffmpeg? pour plus d'informations sur cette option.

2 Jao Sep 22 2020 at 14:28

Cette option est un alias pour -qscale:vlequel vous ne l'avez peut-être pas rencontrée lors de votre recherche (même si mon résultat est arrivé en premier avec "ffmpeg q: v" sur google). Ce lien explique comment l' qscaleoption n'est pas un multiplicateur ou un pourcentage, c'est un mode débit (donc c'est au débit). Pour un encodeur donné, plus ce nombre est bas, plus le débit et la qualité sont élevés. Il s'étend généralement de 1 à 31 mais certains encodeurs peuvent accepter un sous-ensemble de cette plage.