はい前回に続いてMP4のチャプターの件
大体解決できたので書いておく
今のところMP4を結合できるフリーのツールは
MP4BoxもしくはL-SMASH muxerがある
基本的に両者ともにCLIベースのmuxerなので使うにはコツがいる
MP4BoxはGUIが何種類かあって有名なのがYambなわけだが
Yambに付属するMP4boxは古いのでそのまま使うのは問題あり
まあチャプター入れたり60fpsの動画をmuxしなければ問題ないけど
一応更新したMP4Boxも使えるがトラックの名前や言語を弄ると
スプリッターのプロパティが変な表示になるので弄らないこと
まあ付属の古いMP4Boxもバックアップしておいたほうがいいかも
まあ前述の通りMP4Boxだとチャプターのずれが完全に修正できないので
使わない方向で行く
対してL-SMASH muxerのほうは今のところまともなGUIがない
唯一aviutlのx264guiEXが呼び出して実行できるくらい
んでしょうがないので自分でコマンドを書いてバッチファイルで
バッチ処理できないかいろいろ試したんだがいまいちうまくいかない
ファイルパスかファイル名に日本語を含んでるとエラーが出る
なのでD&Dで処理するバッチを組んでもまず動かない
またL-SMASH muxerにはmuxer.exeとremuxer.exeがあるが
muxer.exeはH.264かAACのソースファイルをMP4コンテナ化する
remuxerはMP4コンテナ化した映像と音声、チャプターなどを結合
muxerの基本コマンドは以下
muxer.exe -i “video.264” -o “output.mp4”
音声の場合は
muxer.exe -i “audio.aac” -o “output.m4a”
映像と音声をmux
remuxer.exe -i “video.mp4” -i “audio.m4a” -o “output.mp4”
チャプターを結合するなら –chapter “chapter.txt” を付加する
結局のところチャプター問題はmuxするときにどのツールを使うかだった
映像の方を最初にMP4Boxを使用してMP4化してしまうと
チャプターがずれる
なので出力時にL-SMASH muxerで結合するようにする
ただしSIMPLE x264 LauncherのようにL-SMASHを扱えないツールは
x264のRAWモード(.264)で出力したものをL-SMASH muxerで結合しよう
*SIMPLE x264はMP4出力するとL-SMASHでmuxされるので
L-SMASH muxerは必要なくなった
一度L-SMASHを通した.mp4ファイルは以降MP4Boxを経由してもずれなくなる
なのでチャプターを結合するのにremuxer.exeを使う必要がなくなる
自分の簡単なチャプター対策をまとめると
①エンコード時にaviutlのL-SMASH muxerで.mp4出力する
・aviutlの場合チャプター作成から結合まで自動でできるので楽
→チャプター編集でチャプターを打ち自動出力にチェックを入れる
→x264guiExで拡張→mp4→拡張オプションをchapter.auf自動出力に設定する
「チャプター位置にキーフレームを設定する」オプションをオンにする
・L-SMASHを扱えないツールは.264出力→muxer.exeで.mp4化
→aviutlでチャプター編集でチャプターを打った場所をキーフレーム設定
その後エクスポート→キーフレームリストを出力
キーフレームリストの各行末尾に「 I -1 」を追加
このキーフレームリストをエンコード時にqpfileとして指定しエンコードする *参考
②YambでMP4Boxを使用して映像(.mp4)と音声およびチャプターを結合
→音声はaacとm4aどちらでも可でチャプターはaviutlのchapter.auf形式
*aviutlの場合はこの作業は不要
③スプリッターはLAV splitterを使用して再生する
→できあがったMP4ファイルはHaaliでは確実にずれが修正できない→LAVで
これでほぼ確実にずれないチャプター付加MP4が完成
ちなみに②の時点でremuxer.exeでチャプターを結合すると
稀にHaaliで総再生時間がおかしくなる
これはL-SMASHの仕様でチャプターを
3gpの字幕ファイルの仕様を流用してるので
3gpファイルが自動的に付加されてしまう
これがHaali側ではうまく認識されずに動画の再生時間がおかしくなるようだ
いずれにせよLAVを使用すればこの問題も起きないので
Haaliを投げ捨てたい・・・(LAVはシークがガガガガw)






コメントを残す