Por que o Handbrake compactar um vídeo de um DVD pode se tornar 300 MB, 1 GB ou 2 GB quando o original deve ter apenas 600 MB?

3

O Handbrake pode converter um clipe de DVD que dura cerca de 30 minutos em um .mkvarquivo de 300 MB . Para o experimento, tentei também o tamanho de um arquivo de 1 GB e 2 GB, e ambos saíram como 1 GB ou 2 GB.

Mas eu estimo que o vídeo original no DVD deve ter apenas 600 MB, então como ele pode tornar o arquivo "maior do que era antes"? (o formato mkv, mp4 deve permitir uma melhor compactação do que o mpeg2 do DVD).

Também me lembro de ter tentado experimentar divx ou xvid antes e havia um limite para o tamanho do arquivo: por exemplo, posso especificar um vídeo de 1,5 horas para ter 3 GB ou 8 Mbits / s, mas o conteúdo simplesmente não muitos "bits" para armazenar (porque ele pode compactar muito o vídeo), de modo que o arquivo final não pode exceder 1,8 GB ou algo assim, não importa o quão alta a taxa de bits ou o tamanho de arquivo desejado eu o forneça. Mas com o Handbrake, parece que posso criar um arquivo de 1 GB ou 2 GB com um clipe tão curto. Por que é que?

太極 者 無極 而
fonte

Respostas:

3

Tem a ver com upsampling / downsampling.

Imagine ter que escrever este software: Você precisa ler um arquivo compactado que possa ter sido compactado em vários formatos e, em seguida, recompactá-lo em um dos outros formatos.

Esperar!! Por que você não pode ir diretamente para outro formato?

Bem, como você faria? A compactação está com perdas e, para entender como compactá-lo, primeiro é necessário descompactá- lo, para ver o que está dizendo!

Além disso, você não quer que seus algoritmos explodam; ou seja, se você estiver convertendo entre 10 formatos, não deseja ter 10 * 9 = 90 algoritmos para compactação e 90 para descompactação para converter de todos os formatos para outros formatos, mas prefere ter 10 algoritmos para acessar um formato descompactado e mais 10 para descer para outro formato compactado.

Então você precisa descompactá-lo primeiro. E depois disso, é sua escolha como recomprimir - e não importa o que você escolher, você perderá muito mais do que se não tivesse feito nada.

Isto é um cálculo um pouco ingênuo, mas se algo preservar 50% do original, e você o descomprimir e recomprimir, terá 50% disso - ou seja, 25%. Isso não captura alguns dos outros aspectos, mas explica por que a recompressão (aka transcodificação) raramente é recomendada ; se você precisar, tente recomprimir o original, se possível.

Espero que isso faça sentido.

Mehrdad
fonte
Se você deseja algoritmos de conversão especializados com 10 formatos (descompactados), são necessários 100 algoritmos de conversão. Não há compressão e descompressão separadas, apenas algoritmos de conversão combinados. Mas você fazer precisa por exemplo, a conversão de MPEG2 de alta taxa de bits para MPEG2 baixo bitrate. +1, no entanto, para o argumento N * M, em vez de N + M.
Steve314
Existem algumas ferramentas para esse caso especial, algumas conversões (razoavelmente triviais) - por exemplo, conversões MPEG para VOB que não descomprimem e recomprimem os dados do vídeo, mas simplesmente reembalam os dados compactados existentes no novo formato de arquivo do contêiner . É um bom truque para economizar tempo e evitar mais perdas.
Steve314
1
Há também a possibilidade distinta de que pode ser (e provavelmente é) matematicamente impossível fazer uma transcodificação sem perdas de codec para outro (por exemplo, MPEG-2 a H.264), e qualquer pessoa interessada em fazê-lo teria que ter um nível de especialista compreensão dos dois codecs. Essa é uma característica extremamente rara, e seria um trabalho de amor. A maioria das pessoas dedica seus esforços a um único codec, não a dois (ou mais).
afrazier 27/07
Mesmo fazer uma transcodificação de domínio compactado com o mesmo codec (por exemplo, MPEG-2 a MPEG-2) geralmente resulta em pior qualidade do que uma recodificação completa. Veja aqui .
afrazier 27/07
2

A compactação de mídia não é como o zip e algoritmos de compactação semelhantes, que exploram oportunamente a repetição exata. No mais simples, é mais como encontrar uma representação do sinal que possa ter os detalhes removidos (ou adicionados) com o mínimo de alteração visível no sinal decodificado. Sendo esse o caso, é muito fácil "compactar" um arquivo pequeno em um arquivo maior. Você obtém essa representação transformada e depois a extrai com dados neutros extras.

É isso que você obtém quando exige uma conversão de um arquivo de vídeo com baixa taxa de bits para um arquivo de vídeo com alta taxa de bits.

A rigor, você provavelmente está ganhando algo com 2 GB em vez de 1 GB, mesmo para um vídeo que começou com 600 MB - embora provavelmente não seja algo que você queira a qualquer preço.

O vídeo original foi compactado com MPEG2 (para DVD) em vez de usar MKV. Sistemas de compactação diferentes têm "artefatos" diferentes. Cada conversão do arquivo pode, na melhor das hipóteses, preservar os detalhes disponíveis. Com a mudança no esquema de compactação, é inevitável que pelo menos algo se perca. Com um arquivo maior, há menos perdas - mesmo com arquivos muito maiores que o original. Isso significa que é menos provável que você perca todos os artefatos indesejados do esquema de compactação anterior.

Outra maneira de ver isso ...

O conjunto de vídeos que podem ser perfeitamente representados usando qualquer esquema de compactação é muito limitado, em comparação com o vídeo não compactado. Reduza o tamanho do arquivo em um byte e, em princípio, você dividiu o número de possíveis vídeos que podem ser representados por 256.

O conjunto de vídeos que podem ser perfeitamente representados no MPEG2 é muito diferente do conjunto de vídeos que podem ser perfeitamente representados no MKV. Mesmo se você tivesse codecs perfeitos, é improvável que você preserve perfeitamente o vídeo convertendo de um método de compactação para outro - mesmo convertendo para uma taxa de bits muito mais alta.

Steve314
fonte
-2

É porque o Handbrake é gratuito e os algoritmos de compactação só vão tão longe. Os que os profissionais usam é, bem, mais caro .

A resposta de Mehrdad prega na cabeça. Para passar do MPEG2 (DVD) para o H.264 (suponho que você esteja usando isso) diretamente, você deve escrever o programa especificamente para convertê-lo. O que traz o que Mehrdad estava dizendo. Basicamente, é necessário escrever o algoritmo de compressão de todos os comércios ou escrever vários pequenos. Nenhum dos dois me parece uma solução vencedora.

surfasb
fonte
2
-1: O codificador x264 de código aberto e gratuito é um codificador líder da classe, mesmo quando comparado aos codificadores comerciais.
afrazier 27/07
No entanto, diferentes produtos H264 produzem diferentes níveis de qualidade. É como dizer que o Fedora é o mesmo que o Slacker. . .
27411 surfasb