HOME
立体動画ファイルの編集 AVI編
元の記事は立体動画ファイルの編集 AVI編です。
不具合の指摘、質問、コメント等はそちらにお願いします(簡単な不具合しか私には直せないと
思いますが)。
2台のカメラで撮影した動画ファイルから平行法/交差法の動画ファイルを作成するプログラムを書いてみた。
今さらながらVideo for Windowsを使う。
Video for Windowsについて
を参考にした。特に動画を圧縮するルーチンと、ストリームをコピーするルーチンはそこにある
サンプルほぼそのまま。
動作条件は元の動画ファイルが8bppまたは16bppまたは24bppであること。
ではあるがFinePix40iのファイル(16bpp)を念頭に置いて書いたので他にもいろいろ
条件があるかも。Caplio GXのファイル(24bpp)を回転してみたら(mrotate)音声が出なくなった。
オーディオストリームがあることは認識しててコピーのルーチンも正常に終了するのだが。。
mstereo
2つの動画を90度回転しつつくっつける。オーディオストリームは左の動画(1番目の引数)のが
コピーされます。
37l.avi、37r.aviがそれぞれ左、右の動画だとすると
mstereo 037l.avi 037r.avi 037.avi
で037.aviというファイルが出来上がる(交差法のファイルを作る場合は左右の動画ファイルを
入れ替えればいい)。回転方向を反時計回りにする場合
mstereo - 037l.avi 037r.avi 037.avi
とする。
mcomp
mstereoで作られたAVIファイルは動画が圧縮されていないので圧縮する。
mcomp 037.avi 037c.avi
で037c.aviという圧縮された動画ができる。エンコーダーを選択するダイアログボックスが表示されるが、
ものによってはうまく変換できないこともある。
サンプルではMicrosoft MPEG-4 Video Codec V2を使っている。
mrotate
mstereoの機能のうち動画を回転する部分だけ取り出したもの。
mrotate test.avi test_.avi
でtest.aviが時計回りに90度回転されたtest_.aviが作られる。反時計回りに回転する場合は
mrotate - test.avi test_.avi
とする。
その他
mmerge
2つの動画ファイルをくっつける。mrotate+mmerge=mstereoである。
mmerge test1.avi test2.avi testm.avi
ファイルたち
サンプルファイル
037l.avi
037r.avi
037c.avi
実行ファイル(Borland C++ Compiler 5.5でコンパイル)
mstereo.exe
mcomp.exe
mrotate.exe
mmerge.exe
ソースファイル
mstereo.c
mcomp.c
mrotate.c
mmerge.c