Quais parâmetros devo observar para reduzir o tamanho de um arquivo .MOV?

12

Minha Canon 60D cria arquivos .MOV ao gravar vídeos e descobri que o contêiner .MOV possui um fluxo de vídeo H264 e um fluxo de áudio PCM.

Eu usei o ffmpeg e o GSpot para ver alguns dos meus vídeos e vejo o que parecem ser taxas de bits bastante altas (22.000 kbps para 640x480, 45.000 para 1920x1080).

Gostaria de reduzir o tamanho dos arquivos, mas manter a qualidade bastante alta. Eu brinquei com a coisa mais simples que consegui pensar, reduzindo a taxa de bits e isso é o que eu esperaria: cortar a taxa de bits pela metade e o tamanho do arquivo é cerca da metade. Mas estou me perguntando se existe uma maneira de determinar uma taxa de bits "boa" de destino ou se há algum ponto em tentar fazer uma taxa de bits variável.

Ala - Restabelecer Monica
fonte

Respostas:

21

Mas estou me perguntando se existe uma maneira de determinar uma taxa de bits "boa" de destino ...

Uma boa taxa de bits alvo é a taxa de bits que:

  • é suportado pela rede da qual você está transmitindo o material (por exemplo, uma rede 3G, Wi-Fi doméstico etc.), o que é bastante fácil de calcular
  • parece bom para você , que é uma medida muito subjetiva

22 Mbit / s ou 45 Mbit / s são realmente bastante altos para o usuário médio e, especialmente, para vídeos já compactados como h.264. Você pode definitivamente ir em frente e reduzir a taxa de bits para um valor "saudável", sempre com relação à quantidade de capacidade de armazenamento que você pode pagar e quanta qualidade deseja perder.

Você também pode redimensionar o vídeo 1080p para 720p se realmente não precisar do tamanho ou não tiver a capacidade de processamento para editá-lo.

... ou se houver algum motivo para tentar fazer a taxa de bits variável

O ponto da taxa de bits constante é adaptar-se a um cenário de mídia de streaming em que há um gargalo que limita a taxa de bits máxima do vídeo transmitido. No mundo multimídia de hoje, isso não faz mais sentido necessariamente.

Quando você espreme um vídeo em uma quantidade constante de bits por segundo, basicamente diz ao codificador para sempre usar a mesma quantidade de bits para codificar o mesmo período de tempo. Essa é a melhor abordagem? Como você já deve ter adivinhado, não é. Citando o Guia CRF do Handbrake (voltarei a isso mais tarde):

O olho percebe mais detalhes em objetos imóveis do que quando estão em movimento. Por esse motivo, um compressor de vídeo pode aplicar mais compactação (diminuir mais detalhes) quando as coisas estão se movendo e aplicar menos compactação (reter mais detalhes) quando as coisas estão paradas. Subjetivamente, o vídeo parecerá ter maior qualidade.

Portanto, faz sentido usar taxa de bits variável sempre que possível. Isso fará com que o vídeo pareça melhor, mesmo com o mesmo tamanho de arquivo de um vídeo com taxa de bits constante.

Ainda mais, a maioria dos codificadores - o mais famoso é o x264 - costuma ter um desempenho muito ruim quando você diz a eles para usar uma taxa de bits constante. É melhor dar a eles um pouco mais de "liberdade" no sentido de quantos bits eles desejam gastar em um quadro. Afinal, esse é o trabalho do codificador, e não você. E isso é chamado de "qualidade constante".


Chega disso - o que isso significa na prática? Se você usa o FFmpeg para codificar vídeos, já está usando uma ferramenta boa o suficiente. Se agora você também possui o x264 instalado e usa a versão mais recente de ambos, então está usando um dos melhores codificadores atualmente disponíveis gratuitamente. Em vez de codificar com uma taxa de bits fixa, deixe o x264 escolher quanto deseja gastar. Faça isso usando a opção Fator de taxa constante .

Em um caso muito simples, isso significa definir um valor entre 17 e 23. Escolho MP4 como contêiner de saída em vez de MOV, porque existem ferramentas melhores para remultiplexar:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

Quanto menor o valor, melhor a qualidade e maior a saída. Vice-versa, quanto maior, menor a qualidade. Ao mesmo tempo, você reduzirá a taxa de bits média necessária. Consulte o guia de codificação x264 para obter mais informações sobre ffmpeg.

Sua tarefa agora é encontrar um valor de CRF que:

  • reduz a taxa de bits geral ao ponto que você pode pagar
  • não reduz muito a qualidade, para que o vídeo ainda pareça bom

Sim, isso envolve muita codificação e tentativa e erro, mas isso é coisa cotidiana quando você está sintonizando e codificando vídeo.

Ah, e se você não gosta da linha de comando, o Handbrake é uma ferramenta gratuita de plataforma cruzada que faz exatamente o mesmo. Ele ainda tem um controle deslizante CRF:

insira a descrição da imagem aqui

slhck
fonte
Em relação aos detalhes do objeto em movimento, ele não é exagerado regularmente na compactação de vídeo ou simplesmente lembro dos maus exemplos? Como um aumento notável em detalhes quando a câmera para de girar, etc.
Daniel Beck
Isso é realmente muito comum, conhecido como problemas "estabilizadores". Por exemplo, quando você vê o bloqueio desaparecendo. Isso é típico para um cenário de baixa taxa de bits em que a alteração da diferença de movimento é muito rápida para o controle de taxa se adaptar. Eu assumiria que uma codificação de duas passagens poderia ajudar aqui, mas provavelmente não muito. Não sei se é possível se livrar completamente desses tipos de artefatos.
slhck
Eu usei o Handbrake no passado, convertendo DV avis de um videocam para DivX e mp4, mas estava achando mais fácil trabalhar com uma linha de comando ao tentar descobrir minhas opções para ir de .mov para h264 mp4s. Existe um equivalente a -crf quando você está criando DivXs? (ou deveria ser outra pergunta?)
Ward - Reinstate Monica
@Ward Você pode usar -qscale. Para mpeg *, a escala é linear, variando de 1 a 31 (31 é a pior qualidade) e dobrar o valor resultará em cerca de metade da taxa de bits. Um valor de 2 pode ser considerado aproximadamente sem perda visual. 3-5 é geralmente um bom equilíbrio, mas é claro que a qualidade é subjetiva e você só precisa tentar.
Llogan
Agradável! Algumas perguntas. (1) o que significa um número seguido de "p" em "vídeo 1080p a 720p"? (2) x264 usa uma taxa de bits variável, mas por que a opção no ffmpeg é chamada de fator de taxa constante? Obrigado!
Tim
2

Experimente o HandBrake CLI

Eu queria diminuir alguns arquivos MOV e não me importei em aprender todos os detalhes sobre as opções de vídeo. O HandBrake CLI é o que eu usei. As predefinições são legais:

O HandBrake oferece predefinições embutidas na fábrica e codificadas exatamente como as predefinições incorporadas no MacGui.

No meu caso, isso funcionou muito bem:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

Sem predefinição, a saída era muito pequena, mas não de boa qualidade. A predefinição "Normal" parecia boa para mim, mas você pode ver outras disponíveis HandBrakeCLI --preset-listou ajustar todas as opções, se preferir.

Nathan Long
fonte