Saída pal8 rawvideo com avconv

Saída pal8 rawvideo com avconv

Estou tentando reduzir a resolução de alguns vídeos brutos usando avconv. A saída deve manter o mesmo formato de vídeo bruto, pois posteriormente preciso carregá-lo em outro programa que seja extremamente exigente e não aceite nenhum outro tipo de entrada. Agora, eu tentei fazer

avconv -i myvideo.avi -s 88x72 -vcodec rawvideo myvideo-small.avi

E isso produz o vídeo reduzido, mas parece que o formato não é exatamente o mesmo. avconv diz que a entrada de leitura é

Stream #0.0: Video: rawvideo, pal8, 352x288, 30 fps, 30 tbr, 30 tbn

enquanto a produção produzida é

Stream #0.0: Video: rawvideo, yuv420p, 88x72, q=2-31, 200 kb/s, 30 tbn, 30 tbc

Embora ambos sejam vídeos brutos, a entrada é "pal8" e a saída é "yuv420p". Não estou ciente das diferenças entre esses dois formatos, mas preciso que minha saída mantenha exatamente o mesmo formato da entrada. Como isso pode ser feito?

Responder1

Parece-me que avconvneste momento só suporta pal8 para entrada. Para verificar se você pode executar:

$ avconv -pix_fmts |grep pal8

minha saída é:

avconv version v12_dev0-498-g2e09359, Copyright (c) 2000-2014 the Libav developers
  built on Dec  5 2014 09:32:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
I..P. pal8                   1             8

A legenda da primeira parte é:

I.... = Supported Input  format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format

Portanto, pal8 pode ser lido, mas não escrito. Isso significa que não há como codificar ativamente qualquer um dos fluxos nesse formato, o que é algo que você precisa fazer se pretende alterar o tamanho do quadro.

Se você encontrar outro formato de pixel que seu software "exigente" aceitará além de pal8 e que possa ser codificado com avconv, você poderá selecionar esse formato específico com a -pix_fmtopção:

avconv -i in.avi -s 88x72 -pix_fmt FORMAT -c:v rawvideo out.avi

informação relacionada