動画の出力処理を作成していてハマったので備忘録としてメモ。
OpenCVのVideoWriter()を使って動画ファイルを吐き出した時、その動画がプレイヤーで再生できないというトラブルに陥った。
原因としてはコーデックの問題などたくさん考えられたが、今回のケースは結論から言うとVideoWriter()のコンストラクタで指定する[isColor=True]が問題だった。
この[isColor]を省略するとTrueが与えられる様になっているのだが、この変数の意味するところはTrueであれば(正確には偽でなければ)エンコードの際に色情報を期待して色々と吐き出し処理をする。
今回僕がハマったのは、実は元の動画をグレースケール化した動画を作成しようとしていたためにこの事象に陥ってしまった様だ。
ちゃんと[isColor=False]を与えてやると、吐き出した動画ファイルは正常に再生できたとさ。