動画圧縮について†Premireなどのソフトで出力した動画の圧縮やプログラムからはき出した連番画像ファイルからの動画生成方法. 編集ソフトから動画を出力 or プログラムから連番画像を出力†出力形式は画質を優先し,動画が短いなら, 無圧縮AVI 動画が長いようなら Cinepak Codec MPEG2 などを用います.最近はHDD容量も大きいので ここはなるべく高画質に出力しておいたほうがよい (できれば可逆圧縮). 自分のプログラムから画像を出力する方法は色々あるが,OpenGLの場合は, OpenGL#m6735e6cを参照.また,連番の付け方にも注意が必要である. 最近のOSだと,file1, file2, ... , file10 のように付けても順番通りに表示してくれるが, ソフトによっては,file01, file02, ... , file10 のように"0"付きで連番を付けないと間違った順番で読まれることがある. 例えば,file1, file10, file2, ... となる. ここでは,"0"付きで連番ファイル名を生成する関数の例を示す. /*! * ファイル名生成 * @param head : 基本ファイル名 * @param ext : 拡張子 * @param n : 連番 * @param d : 連番桁数 * @return 生成したファイル名 */ inline string CreateFileName(const string &head, const string &ext, int n, const int &d) { string file_name = head; int dn = d-1; if(n > 0){ dn = (int)(log10((double)n))+1; } else if(n == 0){ dn = 1; } else{ n = 0; dn = 1; } for(int i = 0; i < d-dn; ++i){ file_name += "0"; } file_name += boost::lexical_cast<std::string>(n); if(!ext.empty() && ext[0] != '.') file_name += "."; file_name += ext; return file_name; } エンコードソフトに動画を入力†動画圧縮には,VirtualDub,AviUtil,TMPGEncなどの フリーソフトを用いる. 個人的にはカット編集などの容易さから, VirtualDubを用いている. 1でMPEG2で出力した場合,以下も必要かもしれない.. VirtualDubを開いたら出力動画をD&Dする.もしくは,連番画像の最初の1枚をD&Dすれば残りの画像は自動的に読み込まれる. きちんと読み込めたかどうかをウィンドウ下部にあるスライダーを動かして確かめる(下図の赤枠). 読み込めない場合は必要なコーデックなどが入っていない可能性があるので, 別の形式に出力するか,コーデックを調べてインストールする. エンコード設定†エンコード設定は,メニューの Video と Audioから主に行う.
Audioも同様に設定するが,必要ない場合は Audio -> No audio にチェックを入れる. エンコード†File -> Save as avi をクリックし,ファイル出力場所を指定する. あとは少し待てば完成. VirtualDubはデフォルトでは終了時にエンコード設定が保存されないので,毎回上記設定を行う必要がある. これが面倒な場合は, File -> Save processing settings で*.vcfファイルに現在の設定を保存して, File -> Load processing settings で読み込ませることで再設定する必要がなくなる. デフォルトの設定を変えたい場合は,
他のソフトとしては,Avidemux, AviUtl, HandBreakなどもお勧め. MOV形式にしたいときはこちらを用いている. 動画編集†コーデック†動画の再生だけでなく圧縮についてもコーデックを必要とする. 上記のVirtualDubなどで圧縮するときには以下で説明するコーデックをインストールしておくことをおすすめする. コーデックをインストールすると,動画圧縮方法を選択するところで, のようにインストールしたコーデックがリストに追加される. WMV9(Windows Media Video 9)†Microsoftが独自に開発したコーデック.Windowsとの親和性は高く,新しめのWindow Media Playerならコーデックのインストールなしで再生できる. 古いMedia Playerや上記のVirtualDubなどからこのコーデックを使用するには以下をインストールする. インストールファイル(wmv9VCMsetup.exe)をダウンロード,実行して後は指示に従ってインストールするだけ. DivX†MPEG4をベースに開発されたコーデック.研究のビデオでも比較的用いられている(最近はh264の方が多い). 有料のDivX Proもあるが,単に圧縮,再生するだけのコーデックは無料で使える.
XviD†元々オープンに開発されてきたDivXの商用化に反発して作成されたオープンソースのコーデック. 名前はDivXの反対になっている. オープンソースプロジェクトなので,上記サイトではソースコードのみ提供されている. 自分でビルドするのでもよいが,WindowsもしくはMac用のバイナリが, で公開されている.XviD-*-*.exeをダウンロードしてインストールする. x264†H.264へ圧縮するためのオープンソースプログラム.H.264はYouTubeやニコニコ動画などの高画質動画用に用いられているもので, これまでのものに比べて同サイズで圧倒的に高品質の動画を作成できる.ただ,現時点ではエンコードに時間がかかるのが欠点. また,より高画質にするためには多くのパラメータを設定する必要がある.面倒な場合はHigh Profileをとりあえず用いれば高画質なものが得られる. XviDと同様にオープンソースなので,上記サイトからはGITリポジトリからソースコード(tar)がダウンロードできる. いくつかの動画エンコードソフトが対応している(上記サイト参照)のでそれらを用いるか, Windowsならば,VFW(Video For Windows)に対応したコーデックソフトが, からダウンロードできるので,最新版をダウンロード・インストールする. Huffyuv†可逆圧縮コーデック.上記の非可逆圧縮コーデックより圧縮率は劣るが,編集中の動画や別の動画に組み込む予定の動画など, 画質が劣化して欲しくない動画を保存するのに用いる.
ダウンロードして,解凍,*.infファイルを右クリックして,インストール.
MOV(QuickTimeビデオ形式)†Apple社が開発したQuickTimeビデオ形式.QuickTimeプレイヤーを使えば,MacでもWindowsでも再生できる. 見る人の環境に依存しないので,研究のビデオを作成する際にも安心してつかえる. |