Quais codecs de vídeo podem fornecer "qualidade adaptável"?

7

Fundo:

Estou tentando compactar faixas bluray sem perdas para um tamanho mais amigável para armazenamento, sem uma enorme perda de qualidade.

O que venho fazendo até agora:

Explorando opções de compactação com ffmpeg. Principalmente em torno de h264 com o argumento -crf.

Restrições:

Linux e ferramentas de código aberto. Por favor, não sugira nada específico da Apple / Microsoft.

Questão:

A maioria das opções que vejo em relação à compactação envolveu taxas de bits ou tamanhos de saída fixos. Estou procurando um codec de vídeo que tenha mais de um "limite de qualidade". Não me importo se partes mais complexas da faixa exigirem mais bytes para oferecer o mesmo nível de qualidade visual. Existe algo assim?

Editar:

Estou tendo boa sorte com o argumento -qscale e libxvid. Se não receber outras sugestões, seguirei em frente.

Jacks_Gulch
fonte
11
O que há de errado com o crf em x264?
Gyan
A documentação afirma que o crf sacrifica a velocidade do tempo de execução pela qualidade. Como eu poderia rodar esses vídeos em máquinas menores, não queria sobrecarregá-los.
Jacks_Gulch
2
Você não pode obter qualidade e eficiência computacional. Há uma troca.
Gyan
Você já viu Lagarith ou HuffYUV? Eu geralmente os uso para armazenar imagens. Ambos são sem perdas, no entanto, a compactação pode realmente ser muito boa, desde que eu não tenha certeza de como eles se comparam ao h264. Também não tenho certeza sobre o suporte ao Linux.
glenneroo
É improvável que sua fonte de bluray seja sem perdas. Maneira fácil de verificar: ffplay -vf showinfo. Se tiver quadros B, não será o h.264 sem perdas.
Peter Cordes

Respostas:

6

Você está no caminho certo com o -crfx264 (o melhor codificador H.264) e ele deve fornecer o "limite de qualidade" que você está procurando. O CRF é recomendado se você deseja uma certa qualidade de saída e tamanho do arquivo de saída é menos importante. Por outro lado, -b:vé recomendável executar uma codificação de duas passagens com o objetivo de um tamanho de arquivo de saída específico e a qualidade é menos importante.

A codificação HEVC / H.265 com x265 deve seguir as mesmas diretrizes básicas. Geralmente, você obtém uma melhor compactação em troca de um tempo de codificação mais longo.

1. Escolha uma predefinição

Uma predefinição é uma coleção de opções que fornecerão uma certa velocidade de codificação: taxa de compactação . Uma predefinição mais lenta fornecerá melhor compactação (compactação é a qualidade por tamanho de arquivo). O uso geral é usar a predefinição mais lenta para a qual você tem paciência. Presets atuais, a fim de velocidade decrescente são: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo. Ignore placebo, pois é uma piada e uma perda de tempo (ajuda no máximo ~ 1%). Se estiver codificando muito lentamente, use uma predefinição mais rápida.

2. Escolha um valor de CRF

O intervalo para x264 é 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. Uma faixa subjetivamente sã é de 18 a 28. Considere ~ 18 como visualmente sem perdas: deve ser igual à entrada, mas não é tecnicamente sem perdas. Aumentar o valor de CRF +6 é aproximadamente metade da taxa de bits, enquanto -6 é aproximadamente duas vezes a taxa de bits.

O uso geral é escolher o -crfvalor mais alto que ainda forneça uma qualidade aceitável. Ou seja, se a saída parecer boa, tente um valor mais alto e, se parecer ruim, escolha um valor mais baixo.

3. Codificar

Use essas configurações para o restante dos seus vídeos. Todos devem acabar com a mesma qualidade.

Exemplo

ffmpeg -i input -c:v libx264 -preset slow -crf 22 -c:a copy output.mkv

Veja também

llogan
fonte
3
-ssim 1 -psnrno ffmpeg, o cmdline medirá algumas métricas de qualidade de vídeo (que nem sempre correspondem à qualidade visual da percepção humana). Pode ser útil ter uma idéia de quanto o seu vídeo está sendo confundido.
Peter Cordes
No final de 2 .: “O uso geral é escolher a mais alta qualidade” - provavelmente deve ser mais baixa do que alta .
MarianD
@MarianD Fixed, obrigado. Uau, essa resposta tem 7 anos.
Llogan 19/09/19
Suas respostas sempre foram superiores e úteis (também me lembro do seu nome anterior), obrigado por elas.
MarianD
-3

Talvez isso seja útil K-Lite Codec Pack Quando você instala, há um pacote de codecs para que você possa escolher o que melhor se adequa a você. Esta é a lista de codecs: • Filtros de decodificação de vídeo DirectShow: - ffdshow [versão 1.2.4475] - Vídeo LAV [versão 0.51.3] (- Decodificação de: H264, VC1 (somente progressivo), MPEG2, MPEG4-ASP, MS -MPEG4, MJPEG, VP8, RV40, WMV1 / 2/3) - On2 VP7 [versão 7.0.10.0] - decodificador DScaler5 MPEG-2 [versão 0.0.6.0 IVTC mod]

Mors Violenta
fonte
11
Não vejo como isso responde à pergunta.
Llogan
baixe o K-Lite Codec Pack, encontre opções no codificador / decodificador e pronto. Existe a opção de escolher a qualidade e o tamanho do vídeo compactado. A resposta está aqui, mas diminuo em razão específica. Boa resposta por você, porém
Mors Violenta
11
Sua resposta seria mais útil se você sugerisse qual dos codecs atenderia às necessidades do interlocutor.
STIB