Estou tentando converter uma série de imagens PNG24 contendo uma animação de tela em um vídeo sem perdas, para que cada pixel seja reproduzido exatamente como no original. Mas o avconv (e o ffmpeg) produzem os mesmos resultados insatisfatórios, que parecem derivar de uma conversão colostral dando errado.
Esta é a versão do avconv que estou usando:
avconv version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
built on Apr 2 2013 17:02:36 with gcc 4.6.3
Cada uma das imagens tem 1280 × 800 pixels de tamanho. Eles não contêm nenhum motivo fotográfico, mas padrões especialmente pontilhados.
Eu usei o codec qtrle
porque aparentemente esse é um codec sem perdas que funciona muito bem como GIFs animados ou PNGs animados. No entanto, durante a conversão para vídeo, parece haver uma conversão de espaço de cor ("filtro") que está mexendo com os pixels.
Esta é a saída do avconv:
$ avconv -f image2 -r 30 -i frames.png/wth-%08d.png -vcodec qtrle -pix_fmt rgb24 -t 15 qtrle-30fps-rgb.mov
avconv version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
built on Apr 2 2013 17:02:36 with gcc 4.6.3
Input #0, image2, from 'frames.png/wth-%08d.png':
Duration: 00:11:17.96, start: 0.000000, bitrate: N/A
Stream #0.0: Video: png, bgra, 1280x800, 30 fps, 30 tbr, 30 tbn, 30 tbc
File 'qtrle-30fps-rgb.mov' already exists. Overwrite ? [y/N] y
[buffer @ 0x740a00] w:1280 h:800 pixfmt:bgra
[avsink @ 0x742ac0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x743680] w:1280 h:800 fmt:bgra -> w:1280 h:800 fmt:rgb24 flags:0x4
Output #0, mov, to 'qtrle-30fps-rgb.mov':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: qtrle, rgb24, 1280x800, q=2-31, 200 kb/s, 30 tbn, 30 tbc
Stream mapping:
Stream #0:0 -> #0:0 (png -> qtrle)
Press ctrl-c to stop encoding
frame= 450 fps= 22 q=0.0 Lsize= 126056kB time=15.00 bitrate=68843.4kbits/s
video:126052kB audio:0kB global headers:0kB muxing overhead 0.003441%
Este é um arquivo de imagem PNG original:
Estaéumacapturadeteladovídeoqueestásendoreproduzido:
Por favor, note que você precisa ver essas imagens em sua resolução original de 1280 × 800 para notar as diferenças.
Aqui está uma comparação lado-a-lado , com a imagem da esquerda sendo a original e a direita o resultado após a codificação do vídeo:
Existe alguma maneira de produzir um arquivo de vídeo perfeito, perfeito e sem perdas, de uma série de PNGs?