Eu gravei vários vídeos no meu telefone Android, eles ocupam mais de 128GiB de espaço, então decidi reduzir o tamanho dos arquivos dos vídeos usando o ffmpeg.
Pretendo minimizar o tamanho do arquivo mantendo uma qualidade visual razoável percebida.
Existem quatro características importantes dos vídeos: taxa de bits, taxa de quadros, resolução e duração.
Framerate informa quantos quadros são exibidos por segundo, bitrate informa quantos bits são necessários para armazenar um segundo do vídeo, resolução é a largura e altura do quadro em pixels.
Eu não sei muito sobre vídeos, mas se minha matemática for boa, o tamanho do arquivo deve ser igual à taxa de bits vezes o comprimento.
A qualidade da imagem é difícil de medir, mas em resolução fixa, como regra geral, quanto mais bytes um pixel individual leva, melhor a qualidade da imagem, portanto, tamanho de arquivo maior equivale a melhor qualidade em resolução fixa.
Agora suponha que a resolução seja fixa, o tamanho de cada quadro pode ser calculado pela taxa de bits dividida pela taxa de quadros, então o tamanho do arquivo do quadro é diretamente proporcional à taxa de bits e inversamente proporcional à taxa de quadros, suponha que o tamanho do arquivo seja proporcional à qualidade visual, isso significa que a taxa de quadros é inversamente proporcional à qualidade visual.
Então, com taxa de bits fixa e resolução fixa, aumentar a taxa de quadros realmente diminui a qualidade da imagem? Meu raciocínio está certo? Tentei pesquisar o tópico no Google, mas poucos resultados são relevantes como de costume, e os relevantes fornecem respostas conflitantes.
Está correto.
Para imagens estáticas, sim, assumindo o mesmo algoritmo de compressão. Para um filme, você ainda tem a variável adicional de taxa de quadros que afetará a qualidade percebida.
Isso supondo que todos os quadros sejam iguais, o que não é o caso da compactação de vídeo. Relativamente poucos quadros-chave são armazenados na íntegra. A maioria dos quadros é representada como alterações em relação ao quadro anterior porque é mais eficiente em termos de espaço (porque as alterações entre os quadros geralmente não são drásticas).
Isso é aproximadamente correto, exceto que o relacionamento não será linear porque você não pode colocar quadros-chave muito esparsamente (o link acima explica o porquê). Mas para a maioria dos vídeos, isso deve ser uma aproximação razoavelmente boa. Eu esperaria características um pouco diferentes para casos extremos, como vídeos em câmera ultralenta ou apresentações de slides de vídeo.
Se você está falando de qualidade de fotos, então sim. Mas não é assim que os humanos percebem a qualidade. Para a maioria dos conteúdos, 720p a 30 fps é muito mais tolerável do que 4K a 3 fps, apesar do número de pixels por segundo ser praticamente o mesmo. Isso porque a 30 fps você obtém a ilusão de movimento pretendida. Por outro lado, se você é, por exemplo. gravando apresentações de slides, será uma boa idéia diminuir a taxa de quadros porque não há movimento e faz sentido alocar mais bytes para detalhes em cada quadro.