À quoi sert -crf dans ffmpeg

20

Lors de la conversion d'un tableau de jpegs en un fichier vidéo (format ogg), j'utilisais l'option -crf. Quelles sont les plages valides pour -crf? Actuellement j'utilise 23.

Je ne trouve pas le signet que j'ai lu pour savoir ce que fait ce drapeau et j'ai passé un peu de temps sur Google.

Ce sont les arguments que j'utilise en ce moment:

-f image2 -r 10 -i " + _sourcePath + @"\img%05d.jpg -crf 18  -y -r 10 " + _destPath + "\\" + _filename + ".ogg"
Andrew Simpson
la source
1
Je ne sais rien de cette commande, mais elle est très bien documentée ici: ffmpeg.org/ffmpeg.html .
Ben Plont
1
Utilisez-vous libx264 (pour la vidéo H.264) ou libvpx (pour la vidéo VP8)? Veuillez montrer votre commande ffmpeg et la sortie complète de la console.
llogan
Salut, désolé pour le retard. J'ai dû promener le chien. Je vais modifier ma question. Merci
Andrew Simpson
1
Donc, la question est de savoir si vous voulez garder cette question assez générale pour CRF, ou si vous avez un problème spécifique avec lequel vous avez besoin d'aide. Dans ce dernier cas, nous aurions besoin d'obtenir la sortie complète de la ligne de commande (c'est-à-dire tout, de "ffmpeg version…" au dernier bit) et la commande réelle que vous utilisez, mais cela rendrait malheureusement les réponses existantes inutiles. Vous voudrez peut-être poser une nouvelle question si vous êtes confronté à un problème concret.
slhck
@slhck Salut, vous avez absolument raison. J'ai besoin d'apprendre à être plus précis et plus complet à l'avenir. Comme c'était votre réponse qui correspondait plus à mes besoins qu'à ceux des autres, mais tout le monde était également instructif. Je marcherai plus attentivement à l'avenir :) Merci de votre temps. Très appréciée.
Andrew Simpson

Réponses:

20

Cela fait référence au facteur de taux constant ( crf).

Comme d'autres l'ont souligné (merci à tous), les valeurs dépendent de l'encodeur que vous utilisez.

Pour x264, votre plage valide est 0-51:

La plage de l'échelle du quantificateur est 0-51: où 0 est sans perte, 23 est par défaut et 51 est le pire possible. Une valeur inférieure est une qualité supérieure et une plage subjectivement saine est de 18 à 28. Considérez que 18 est visuellement sans perte ou presque: il devrait être identique ou presque identique à l'entrée, mais il n'est pas techniquement sans perte.

Pour vpx, la plage est 4-63(comme l'a répondu @ sebastian-hoffner ):

Par défaut, la valeur CRF peut être comprise entre 4 et 63, et 10 est un bon point de départ. Des valeurs plus faibles signifient une meilleure qualité.

Dans les deux cas, plus c'est bas , mieux c'est . D'après mon expérience, je vois x264 beaucoup plus souvent.

Le lien sans vergogne de Slhck (un mod SU) semble avoir de bonnes informations.

nerdwaller
la source
La plage pour VPX est de 0 à 63 et non de 4 à 63, le taux recommandé est de 15 à 30
Suhayb
3

Le drapeau crf assure un débit binaire variable pour une qualité constante, si je comprends bien la page liée ci-dessous. La plage par défaut est de 4 à 63, mais elle peut être modifiée davantage.

Jetez un œil à https://trac.ffmpeg.org/wiki/vpxEncodingGuide pour plus d'informations.

Sebastian Höffner
la source
Je suis un peu confus par cela, nous avons tous deux un lien vers le même site et chaque page dit quelque chose de légèrement différent (plages, c'est-à-dire). En tout cas, les deux me semblent légitimes, donc je suis un peu embrouillé par ça.
nerdwaller
salut, merci pour ça. Je cherche à améliorer la qualité du flux vidéo afin qu'un faible crf le fasse?
Andrew Simpson