CMカットし忘れへの対処法
録画した番組をAVIファイルなどに時間を掛けて変換したあと、うっかりとCMのカットし忘れに気付いたことはありませんか? そのような場合に短時間で素早くCMをカットする方法を紹介します。動画の圧縮には膨大な時間が掛かるため、ちょっとしたミスで最初から圧縮し直しなどというのは悪夢でしかありません。それを回避するために知っておいたほうがよい情報です。
用意するもの
- VirtualDubMod
- 圧縮に使ったCODEC
AVIUTLでも再編集ができる動画データもありますが、音声がVBR-MP3などで作成した場合を考慮してここではVirtualDubModを使用しています。AVIファイル以外に、OGMやMKVも同じ手順で編集することが可能です。
VirtualDubModでの編集
編集したいAVIファイルのアイコンをVirtualDubModにドロップするか、VirtualDubModのFile→Open video file...で読み込みます。このときに音声がVBR-MP3だとヘッダを初期化するか問い合わせが表示されるので、いいえを押して情報を保持します。初期化すると音がずれるので選んではいけません。ファイルを読み込んだら、Video→Direct stream copyを選び、映像の再圧縮を行なわない設定に変更します。これ以外だと再圧縮が必要となるので時間が掛かるので注意してください。
編集はシーン単位で行ないます。動画はシーンを圧縮する元となるキーフレームがあり、それに続くデータはキーフレームの情報を元に圧縮されたり、さらにその圧縮されたフレームを参照して圧縮されています。したがって、カット編集はキーフレームから次のキーフレームの直前までという単位で行なわないと、情報が欠落するためにどうしても再圧縮が必要となってしまいます。
読み込んだ動画ファイルはVirtualDubModの編集機能で不要な部分を選択して削除していきます。スライドバーで大まかにカットしたい位置を選び、前後のキーフレーム移動でカットしたい部分まで動かし、範囲選択ボタンでカットしたい部分、もしくは保存したい部分を選びましょう。選択範囲をカットする場合はDelキーを押します。保存したい部分を選んだ場合は、File→Save as...からファイルを書き出してください。一応、編集で使うのに知っておいたほうが便利なボタンだけを以下に説明しておきます。
- スライドバー
- 説明するまでもありませんが、動画ファイルを編集する位置を指定するためのものです。
- First
- 動画の先頭部分へ移動するボタン。先に選択範囲の末尾のほうを指定した場合に使うことになるかも。
- Backward
- このボタンを押すと1フレーム前へ移動。時間軸と逆順なので、編集するデータによっては処理に時間が掛かるケースがあります。
- Forward
- このボタンを押すと1フレーム後ろへ移動します。
- End
- 動画の終端へ移動するボタンです。範囲選択で最後までを指定したい場合に使います。
- Key previous
- 1つ前のキーフレームへ移動します。通常は範囲選択の先頭部分をこれで選ぶことになるでしょう。
- Key next
- 次のキーフレームへ移動します。これで範囲選択の末尾を選びましょう。
- VirtualDubは、範囲選択の終端を指定すると、その1つ前のフレームが実際の選択範囲となることに注意してください。効率よくシーン単位で編集できるように考えられた仕様だと思われます。通常、キーフレームはシーンの切り替わり直後にあるため、Key nextで次のシーン開始部分を見つけた際に、この仕様だとその直前のフレームまでを選択できるため楽なのです。
- Mark in
- 選択範囲の先頭フレームを指定するためのボタンです。
- Mark out
- 選択範囲の最終フレームを指定するためのボタンです。実際にはこのボタンを押した1つ前のフレームまでが選ばれます。ただし、Mark inと同じフレームに指定すると指定したフレームだけの指定です。
特殊なケース
通常はCMなどはシーンの切り替わりと圧縮時に判断されるため、Key previousとKey nextで不要部分を選択することができるはずです。しかし、CMとの境界部分が似通った映像である場合は、CM前後がキーフレームではないことがあります。このような場合には、再圧縮が必要です。全部を再圧縮すると非常に時間が掛かるため、このような場合は、再圧縮をする部分を最小限にして編集するとよいでしょう。
- 不要部分の前の有効なキーフレームまでを範囲選択し、先頭のフレームから書き出し。
- 書き出したその範囲指定をDelキーを押して削除。
- 不要部分の後ろで有効な先頭のキーフレームから最後までを範囲選択して書き出し。
- 書き出した範囲をDelキーで削除。
- 不要部分と混ざっている部分をBackwardとForwardボタンで1フレームずつ見ながら不要部分を範囲選択して削除。
- Video→Full processing modeにし、Video→Compressionで編集しているデータと同じCODECを選択して再圧縮して書き出し。
- File→Close video fileで編集中のファイルを閉じる。
- File→Open video file...で1で書き出したファイルを読み込む。
- File→Append segmentで6で書き出したファイルを読み込み、同じく3で書き出したファイルを読み込ませる。
- Video→Direct stream copyを選び、File→Save asで3つに分割したファイルを結合する。
このような手順で再圧縮に必要なフレームを最小限に抑えて時間を短縮するとよいでしょう。対応しているCODECならば、再圧縮が必要な部分でFull processing modeの代わりにFast processing modeが使えます。なお、CODECの設定によっては再圧縮部分にB-frameを使うと意図せぬ映像の乱れが発生することが稀にあるかもしれません。その場合は再圧縮部分だけB-frameを使わない設定にしてみると解消できることがあります。