A cosa serve -crf in ffmpeg


20

Quando ho convertito un array di jpeg in un file video (formato ogg) ho usato l'opzione -crf. Quali sono gli intervalli validi per -crf? Attualmente sto usando 23.

Non riesco a trovare il segnalibro che ho letto per sapere cosa fa questa bandiera e ho passato un po 'di tempo a cercare su Google.

Questi sono gli argomenti che sto usando al momento:

-f image2 -r 10 -i " + _sourcePath + @"\img%05d.jpg -crf 18  -y -r 10 " + _destPath + "\\" + _filename + ".ogg"

1
Non so nulla di questo comando, ma è molto ben documentato qui: ffmpeg.org/ffmpeg.html .
Ben Plont,

1
Stai usando libx264 (per video H.264) o libvpx (per video VP8)? Mostra il comando ffmpeg e l'output della console completo.
Llogan,

Ciao, scusa per il ritardo. Ho dovuto portare a spasso il cane. Modificherò la mia domanda. Grazie
Andrew Simpson,

1
Quindi, la domanda è se vuoi mantenere questa domanda piuttosto generale per CRF, o se hai un problema specifico con cui hai bisogno di aiuto. In quest'ultimo caso avremmo bisogno di ottenere l' output completo della riga di comando (cioè tutto, dalla "versione ffmpeg ..." all'ultimo bit) e il comando effettivo che stai usando, ma sfortunatamente renderebbe inutili le risposte esistenti. Potresti voler fare una nuova domanda se stai affrontando un problema concreto.
slhck,

@slhck Ciao, hai assolutamente ragione. Devo imparare ad essere più specifico e completo in futuro. Dato che la tua risposta corrispondeva ai miei bisogni più di tutti gli altri, ma anche quelli di tutti gli altri erano istruttivi. Camminerò più attentamente in futuro :) Grazie per il tuo tempo. Molto apprezzato.
Andrew Simpson,

Risposte:


19

Ciò si riferisce al fattore di tasso costante ( crf).

Come altri hanno sottolineato (grazie a tutti), i valori dipenderanno dall'encoder in uso.

Per x264 l'intervallo valido è 0-51:

L'intervallo della scala del quantizzatore è 0-51: dove 0 è senza perdita di dati, 23 è l'impostazione predefinita e 51 è la peggiore possibile. Un valore inferiore è una qualità superiore e un intervallo soggettivamente sano è 18-28. Considera 18 visivamente senza perdita o quasi: dovrebbe apparire uguale o quasi uguale all'input ma non è tecnicamente senza perdita.

Per vpx l'intervallo è 4-63(come ha risposto @ sebastian-hoffner ):

Per impostazione predefinita, il valore CRF può essere compreso tra 4 e 63 e 10 è un buon punto di partenza. Valori più bassi significano una migliore qualità.

In entrambi i casi, inferiore è meglio . Nella mia esperienza, vedo x264 molto più spesso.

Il link spudorato di Slhck (un mod SU) sembra avere qualche buona informazione.


L'intervallo per VPX è
compreso tra 0

3

Il flag crf garantisce un bitrate variabile per una qualità costante, se capisco correttamente la pagina collegata di seguito. L'intervallo predefinito va da 4 a 63, ma può essere ulteriormente modificato.

Dai un'occhiata a https://trac.ffmpeg.org/wiki/vpxEncodingGuide per ulteriori informazioni.


Sono un po 'confuso da questo, entrambi ci colleghiamo allo stesso sito e ogni pagina dice qualcosa di leggermente diverso (intervalli, cioè). In ogni caso, entrambi mi sembrano legittimi, quindi sono un po 'sbalordito da questo.
nerdwaller,

ciao, grazie per quello. Sto cercando di migliorare la qualità del flusso video, quindi un crf basso lo farà?
Andrew Simpson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.