質問と回答

連続キャプチャ方式と逐次キャプチャ方式の違いは

従来のキャプチャの流れは下記の通りです。

  1. ファイルを開く
  2. ファイルに書き込む
  3. ファイルを閉じる

Video for Windowsにはこの123の流れでキャプチャを行う機能があります。この機能は「○○というファイルにキャプチャしろ」というようにVideo for Windowsに命令するだけで簡単にキャプチャを行うことができます。逐次キャプチャ方式(この呼び方は私の命名です)はこれを繰り返します。即ち123123123123...となります。逐次キャプチャ方式のキャプチャプログラムはVideo for Windowsの機能をそのまま利用するので簡単に作ることができます。しかしファイルを切り替えるときに"31"を行うため欠落が生じる可能性があります。

連続キャプチャ方式であるGtkShotは最初にすべてのファイルを開き、キャプチャ終了時にすべてのファイルを閉じます。即ち111...111222....222333...333となります。ファイルを切り替えるときに"31"の処理を行わないため欠落する可能性が少なくなります。

1に時間がかかるとキャプチャをすぐにはじめることができません(レスポンスが悪くなる)。また2に時間がかかると欠落します。理想的なキャプチャプログラムは1と2が最小で3の段階で全体を調節する方法です。GtkShotは1と2を最小にし、時間のかかる処理は3で行うように努力しています。

欠落とは何ですか

欠落とは「コマ落ち」とか「フレーム落ち」のことです。これを欠落と言います。欠落はビデオ(映像)だけではなく場合によってはオーディオの欠落もありえます。

「欠落??」などと表示されたのにもかかわらず、Video maidなどで開くとビデオとオーディオの長さが一致しています。Video for Windowsの機能でキャプチャを行った場合、Video for Windowsは欠落した部分にヌルフレームを挿入します。ヌルフレームの実データサイズは0で、非キーフレームとなり前のフレームの内容をそのまま継承します。そのため見た目には前のフレームと同じになります。即ち123456789となるべきところを123336789となります。

Video for Windowsの機能を利用しないGtkShotは独自に欠落を処理する必要があります。

また欠落の表示はあてにはなりません。従来のキャプチャプログラムや逐次キャプチャ方式ではVideo for Windowsの機能でキャプチャしているので、Video for Windowsの表示を使う場合には欠落はVideo for Windowsの基準に基づいて算出されます(ごまかすことはできません)。しかし逐次キャプチャ方式のキャプチャをした場合にはファイルを切り替えるときに欠落したフレームは表示されません。ですから表示が0であっても欠落がないとは言えません。

なお、オーディオが欠落した場合には音飛びが起こり、音がズレます。

最小分割単位とは

キャプチャ時に欠落しておらず、AVIを連続して再生しても欠落を感じないのにもかかわらず、他の形式に変換すると欠落を感じる場合、これは最小分割単位が原因です。

例えば、0.1秒単位でデータを扱う形式から1秒単位でデータを扱う形式へ変換した場合、3.5秒のデータは最後の0.5秒が切り捨てられ3秒になります。連続するデータを最小分割単位が大きくなる形式に、別々に変換した場合、例えば
capture00.avi 3.5秒 → capture00.ogm 3秒
capture01.avi 3.5秒 → capture01.ogm 3秒
capture02.avi 3.5秒 → capture02.ogm 3秒
capture03.avi 3.5秒 → capture03.ogm 3秒
となり、ファイルの切れ目で欠落します。

これを回避するためには連続するファイルを一括して変換できるプログラムで変換する必要があります。

各々のファイルを別々に変換するときの問題点

GtkShotではファイルサイズが規定の容量に達したところでファイルを切り替えます。そのため全体としてはビデオとオーディオが同期していても、各々のファイルでは長さが異なり、同期しない場合があります。

例えば上記のようなファイルを別々に変換した場合、ビデオまたはオーディオの長い方に合わせられ短い方は時間が長くなるようなAVIの変換プログラムでは下記のようになります。

これを連結すると
VVVVVVVVVVVVVVVVVVVVVVVVvv
AAAAAAAaAAAAAAAaAAAAAAAAAA
となってしまいます。複数のAVIファイルを読み込み一括して変換できるプログラムならば問題はありません。

ビデオまたはオーディオの短い方に合わせられ長い方は時間が短くなるようなAVIの変換プログラムではファイルの間のデータが消失します。


戻る