Como posso usar o Avidemux para recompactar vídeos H264 com qualidade semelhante?

1

Eu tenho um monte de vídeos tirados com o meu telefone, e eles são muito grandes, dado o seu tamanho (por exemplo, um vídeo de 3 min em 1920 × 1080 é mais de 400MB).

Suponho que isso ocorra porque o telefone favorece a duração e a qualidade da bateria em relação ao espaço de armazenamento, portanto, imaginei que poderia executá-los no Avidemux para reencocá-los e reduzir seu tamanho, sem comprometer muito a qualidade deles. Eu percebo que alguma degradação é inevitável. Mas como há muito espaço para compressão, acho que deveria ser possível evitar uma grande quantidade de degradação perceptível .

Os vídeos são codificados em H264 / AAC em um contêiner MP4. Eu posso apenas copiar o áudio diretamente no Avidemux. Mas como deduzo alguns valores aproximados para o codificador H264 para manter a qualidade do vídeo? Eu não acho que o formato H264 mantém informações sobre seus parâmetros de entrada. É possível escolher um nível de qualidade que encha totalmente o tamanho do arquivo sem ganho, e também é possível escolher um nível de qualidade que torne o vídeo terrível; Existe alguma maneira de analisar a entrada para descobrir um "ponto ideal" onde o tamanho do vídeo é reduzido sem afetar muito a qualidade?

Eu percebo que há algum grau de subjetividade nessa questão; o que eu considero degradação "perceptível"? No entanto, dado que os codificadores de vídeo são tradicionalmente parametrizados por qualidades perceptivas, é possível chegar a um intervalo aproximado para alguns parâmetros básicos?

    
por detly 18.10.2016 / 05:12

1 resposta

2

Existem várias ferramentas de linha de comando ou GUI que mostram alguns dos parâmetros simplificados de codificação de um vídeo H264, por exemplo. ffmpeg ou mediainfo :

$ mediainfo myvideo.mp4
[... look for the "Video" section ...]
Format profile                           : High@L4
Bit rate                                 : 17.0 Mbps

$ ffprobe -show_streams myvideo.mp4
[... look for a [STREAM] header followed by codec_type=video ...]
profile=High
level=40
bit_rate=16996359

Observe os parâmetros profile e level (em ffmpeg ). Não se preocupe com a taxa de bits, ela realmente não diz nada sobre o tamanho do arquivo. Eu acho que a saída level in ffmpeg é 10 × o valor real (ex. 40 significa nível 4, 41 significa 4.1, etc).

O Avidemux permite que você use configurações simplificadas, onde você pode configurá-las e deixar as configurações mais refinadas nos padrões do Avidemux.

Eu percebi que essas são as configurações correspondentes:

  • Usar configuração avançada está desmarcada.
  • Perfil é alto.
  • Nível IDC é 4.

Usar um valor Pré-ajuste mais lento aumentará a qualidade dentro desses parâmetros (até um ponto).

Você também pode usar a codificação de duas passagens para reduzir ainda mais o tamanho do arquivo. Eu não sei de uma boa maneira de prever um tamanho de arquivo razoável, mas uma boa taxa de bits média de duas passagens para 1920 × 1080 é algo de 6-8Mbps. Não segmente o tamanho de arquivo original ou a taxa de bits : você acabará com um arquivo do mesmo tamanho.

No meu caso, simplesmente fazer uma codificação de passagem única no nível de qualidade 20 (padrão do Avidemux) reduziu pela metade o tamanho do arquivo, e comparação usando Bino e Kinovea não mostrou diferença (para mim), mesmo em quadros com alto contraste ou com movimento desfocado. Fazer a codificação de duas passagens a 7 Mbps (que é a codificação de passagem única) reduziu para 40%.

    
por 18.10.2016 / 11:31