Para que é utilizado o -crf no ffmpeg

20

Ao converter uma matriz de jpegs para um arquivo de vídeo (formato ogg), uso a opção -crf. Quais são os intervalos válidos para -crf? Atualmente estou usando 23.

Não consigo encontrar o marcador que li para saber o que essa bandeira faz e passei algum tempo pesquisando no Google.

Estes são os argumentos que estou usando no momento:

-f image2 -r 10 -i " + _sourcePath + @"\img%05d.jpg -crf 18  -y -r 10 " + _destPath + "\\" + _filename + ".ogg"
Andrew Simpson
fonte
1
Não sei nada sobre esse comando, mas está muito bem documentado aqui: ffmpeg.org/ffmpeg.html .
Ben Plont
1
Você está usando libx264 (para vídeo H.264) ou libvpx (para vídeo VP8)? Por favor, mostre seu comando ffmpeg e a saída completa do console.
Llogan
Oi, desculpe pelo atraso. Tinha que passear com o cachorro. Vou alterar minha pergunta. Obrigado
Andrew Simpson
1
Portanto, a questão é se você deseja mantê-la bastante geral para a CRF ou se você tem um problema específico com o qual precisa de ajuda. No último caso, precisaríamos obter a saída completa da linha de comando (ou seja, tudo, desde a "versão ffmpeg ..." até o último bit) e o comando real que você está usando, mas infelizmente isso tornaria as respostas existentes inúteis. Você pode fazer uma nova pergunta se estiver enfrentando um problema concreto.
slhck
@ slhck Oi, você está absolutamente certo. Eu preciso aprender a ser mais específico e abrangente no futuro. Como foi a sua resposta, atendeu às minhas necessidades mais do que as de todos os outros, mas também foram informativas. Vou seguir com mais cuidado no futuro :) Obrigado pelo seu tempo. Muito apreciado.
Andrew Simpson

Respostas:

19

Isso se refere ao fator de taxa constante ( crf).

Como outros já apontaram (Obrigado a todos), os valores dependerão do codificador que você estiver usando.

Para x264, seu intervalo válido é 0-51:

O intervalo da escala do quantizador é de 0 a 51 : onde 0 é sem perdas, 23 é o padrão e 51 é o pior possível. Um valor mais baixo é uma qualidade mais alta e uma faixa subjetivamente sã é de 18 a 28. Considere 18 como sendo visualmente sem perdas ou quase o mesmo: deve ser igual ou quase igual à entrada, mas não é tecnicamente sem perdas.

Para vpx, o intervalo é 4-63(como @ sebastian-hoffner respondeu):

Por padrão, o valor do CRF pode ser de 4 a 63 e 10 é um bom ponto de partida. Valores mais baixos significam melhor qualidade.

Em ambos os casos, menor é melhor . Na minha experiência, vejo x264 com muito mais frequência.

O link descarado do Slhck (um mod SU) parece ter boas informações.

nerdwaller
fonte
O intervalo para VPX é de 0 a 63 e não a 4-63, a taxa recomendada é de 15 a 30
Suhayb
3

O sinalizador crf garante uma taxa de bits variável para qualidade constante, se eu entender a página vinculada abaixo corretamente. O intervalo padrão é de 4 a 63, mas pode ser alterado ainda mais.

Consulte https://trac.ffmpeg.org/wiki/vpxEncodingGuide para obter mais informações.

Sebastian Höffner
fonte
Estou um pouco confuso com isso, nós dois linkamos para o mesmo site e cada página diz algo um pouco diferente (intervalos, ou seja). De qualquer forma, ambos parecem legítimos para mim, então estou um pouco confuso com isso.
Nerdwaller 18/11/2013
oi, obrigado por isso. Eu estou olhando para melhorar a qualidade do fluxo de vídeo, para que um crf baixo o faça?
Andrew Simpson