2012/02/03

MPEG2を再エンコードせずにCMスキップ用チャプター&字幕付の(m2v+aac).mp4を作成する

logoGuilloで出力したCMスキップ用のチャプターを利用して、MPEG2を再エンコードせずに(m2v+aac).mp4を作成します。
映画やドラマ等、エンコードしても時間の割に圧縮されないソースのCMスキップを可能にします。

必要なもの
mme.exe(MPEG-2 VIDEO VFAPI Plug-Inに同梱)
logoGuillo(+動作環境)
MP4Box
文字コード変換ソフト(CLI,S-JIS -> UTF-8)


1.動画ファイルの前処理
*詳細は関連記事を参照

1-1. 動画ファイル(m2v+aac)を用意します。
1-2. 字幕を残したい場合は動画に対応する字幕データ(*.srt)を用意します。
1-3. mme.exe(MPEG-2 VIDEO VFAPI Plug-Inに同梱)を使用してm2vファイルのGOPリストを生成しておきます。

2.CMスキップ用のチャプターを出力

logoGuilloを使用して、「*.chapters.txt形式(本編開始位置のみ)」でCMカット結果を出力します。
入力ファイルが"video.m2v"の場合、出力先は"video.chapters.txt"とします。
また、確実にシークしたい場合はフレームオフセットを"-33 frame"程度にしてチャプター位置を多少手前にしておきます。(2 GOP+α、1 GOP = 15 frame)

3.(m2v+aac).mp4を作成、チャプターと字幕を埋め込み

MP4Boxを使用してm2vとaac、字幕(srt)をmp4コンテナに入れ、チャプターを埋め込みます。

*MP4Box 0.4.5では4GBを超えるmp4が作成できなかった(完了しない)ので0.4.6以降を使用して下さい。
*srtの埋め込みでエラーが出る場合は、字幕データの文字コードをUTF-8に変換しておきます。
*mp4chaps.exeでは4GBを超えるmp4には正常にチャプターを埋め込めませんでした(再生できないファイルが出来てしまう)。そのためMP4Boxでチャプターを埋め込みます。


例(1440x1080、16:9の29.97fpsソースの場合)

"MP4Box.exe" -fps 29.97002997002997 -add "video.m2v":par=4:3 -add "video DELAY -307ms.aac" -add "video.srt" -chap "video.chapters.txt" -new "output.mp4"

4.完成

チャプターに対応したプレーヤーで再生し、CMに入る度に次のチャプターにジャンプして視聴します。

*一部のプレーヤーやスプリッタでは4GBを超えるmp4が再生できない事があります。


関連記事

logoGuilloの出力結果をAviUtlで確認し修正する方法(半自動CMカット)
*本記事の「1.動画ファイルの前処理」と参照先の「1.仮CMカットファイルの生成(自動)」の手順がほぼ同じです。字幕の抜き出し以外の処理方法を、より詳細に記載しています。

エンコード関連記事一覧