avconvでpal8 rawvideoを出力する

avconvでpal8 rawvideoを出力する

avconvを使って生のビデオの解像度を下げようとしています。出力は同じ生のビデオフォーマットを維持する必要があります。後で、非常にうるさくて他の種類の入力を受け入れない別のプログラムに読み込む必要があるためです。今、私は次のことを試しました。

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

これで縮小されたビデオは正常に生成されますが、フォーマットが正確に同じではないようです。avconvによると、読み込まれた入力は

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

生成された出力は

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

どちらも rawvideo ですが、入力は「pal8」で、出力は「yuv420p」です。この 2 つの形式の違いはわかりませんが、出力を入力とまったく同じ形式にする必要があります。どうすればいいでしょうか?

答え1

avconv現時点では入力に pal8 のみをサポートしているようです。確認するには、次のコマンドを実行します。

$ avconv -pix_fmts |grep pal8

私の出力は次のとおりです:

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

最初の部分の凡例は次のとおりです。

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

つまり、pal8 は読み取りはできますが、書き込みはできません。つまり、ストリームをこの形式に積極的にエンコードする方法はありません。フレームのサイズを変更する場合は、エンコードする必要があります。

pal8 以外に、あなたの「こだわり」のあるソフトウェアが受け入れ、 でエンコードできる別のピクセル形式が見つかった場合はavconv、次のオプションを使用してその特定の形式を選択できます-pix_fmt

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

関連情報