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