web-dev-qa-db-ja.com

pal8 rawvideoをavconvで出力

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つの形式の違いを認識していませんが、入力とまったく同じ形式を保持するには出力が必要です。これはどのように行うことができますか?

2
albarji

現時点では、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は読み取ることができますが、書き込むことはできません。これは、ストリームをこの形式にアクティブにエンコードする方法がないことを意味します。これは、フレームのサイズを変更する場合に必要なことです。

「picky」ソフトウェアがpal8以外に受け入れる別のピクセルフォーマットを見つけ、avconvでエンコードできる場合は、-pix_fmtオプションでその特定のフォーマットを選択できます。

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