niiyan's blog

niiyanの個人ブログ。

コマンドラインから AVI-Mux GUI を操作する(1): 基本編

AVI-Mux GUI は、その名前のとおり、AVI ファイルの Mux (合成、多重化)を GUI を使って行うソフトウェアです。しかしながら、Avi-Mux GUIスクリプトファイルにも対応しているため、コマンドラインから操作することも可能です。そこで今回は、AVI-Mux GUI で使える簡単なスクリプトファイルの作成方法を紹介したいと思います。

なお、AVI-Mux GUI で利用できるスクリプトの詳細は、AVI-Mux GUI - scripting language(英語)で説明されています。また、AVI-Mux GUI にもいくつかのサンプルが同梱されています。詳しくは、それらを参照してください。

スクリプトファイルの作り方

まず、スクリプトファイルを用意します。下のサンプルは、エンコード用バッチファイルのサンプルをベースに作成したものです。AVI ファイルと VBR 方式でエンコードされた MP3 ファイルを、Open-DML 形式の AVI ファイルに多重化(Mux)します。

CLEAR
LOAD C:\bar\input.avi
SELECT FILE 1
ADD VIDEOSOURCE
LOAD C:\bar\input.mp3
SET INPUT OPTIONS
WITH SET OPTION
AVI FORCE MP3VBR 1
MP3 VERIFY CBR NEVER
MP3 VERIFY RESDLG OFF
END WITH
SET OUTPUT OPTIONS
WITH SET OPTION
OVERWRITEDLG 0
CLOSEAPP 1
DONEDLG 0
OPENDML 1
LEGACY 0
AUDIO INTERLEAVE 1 FR
PRELOAD 500
RECLISTS 0
AVI ADDJUNKBEFOREHEADERS 0
END WITH
START C:\bar\output.avi

これをメモ帳で保存します。AVI-Mux GUI 用のスクリプトファイルや設定ファイルでは amg という拡張子が使われます。おそらく AVI-Mux GUI の頭文字を取ったものだと思われます。他のファイルと区別するために "C:\bar\myscript.amg" のように amg という拡張子を持つファイル名で保存するといいかもしれません(他の拡張子でも動作すると思います)。

ただし、amg という拡張子は初期状態で Windows に登録されていないため、メモ帳でそのまま保存すると .amg.txt という名前で保存されます。保存するときにファイルの種類を「すべてのファイル」にしてから保存するか、保存後に拡張子を変更してください。

サンプルの解説

以下、簡単にサンプルスクリプトの内容を解説します。

CLEAR

AVI-Mux GUI のリストボックスから読み込まれているすべてのファイルをクリアします。

LOAD C:\bar\input.avi
SELECT FILE 1
ADD VIDEOSOURCE

順に、C:\bar\input.avi を読み込み、1 番目のファイル(C:\bar\input.avi のこと)を選択し、ビデオソースとして追加します。入出力ファイルのパスはすべて例ですので、使用したいファイル名に置き換えてください。その際、ファイル名を二重引用符で囲まないようにしてください。ファイルが正しく検出されず、AVI-Mux GUI がエラーで強制終了します。

LOAD C:\bar\input.mp3

C:\bar\input.mp3 を読み込みます。AVI-Mux GUI - scripting language の「Example 1」ではビデオファイルと一緒に音声ファイルも読み込んでいますが、それだとうまく行かなかったのでこの位置にしています。

SET INPUT OPTIONS

ここから入力設定です。

WITH SET OPTION
 .
 .
 .
END WITH

この間に書かれた行は、「SET OPTION」を省略して記述することができます(その先頭に「SET OPTION」が追加されます)。例えば、次の行の「AVI FORCE MP3VBR 1」は、実際には「SET OPTION AVI FORCE MP3VBR 1」と書かれているのと同じ扱いになります。

AVI FORCE MP3VBR 1

「SET OPTION AVI FORCE MP3VBR 1」にすると、MP3 ファイルがビデオソースに追加される際に常に VBR であるとみなされます。CBR なら「SET OPTION AVI FORCE MP3VBR 0」にします。

MP3 VERIFY CBR NEVER
MP3 VERIFY RESDLG OFF

「SET OPTION MP3 VERIFY CBR」は、CBR とみられる MP3 ファイルを読み込んだときの AVI-Mux GUI の挙動を「常に検証する(ALWAYS)」、「決して検証しない(NEVER)」、「その都度尋ねる(ASK)」のいずれかに設定します。ここでは VBRエンコードされた MP3 をソースとして使用しているため、「NEVER」にしています。CBR なら「ALWAYS」がいいようです。コマンドラインから使用する場合は「ASK」にしないほうがいいようです。というのも、ユーザーの入力を待たずにプロセスが進行してしまい、エラーが出ることがあるからです。

SET OUTPUT OPTIONS

ここから出力設定です。

OVERWRITEDLG 0
CLOSEAPP 1
DONEDLG 0

順に、上書き確認ダイアログを非表示(0)、Mux 後に AVI-Mux GUI を閉じる(1)、完了ダイアログを非表示(0)。

OPENDML 1
LEGACY 0

OpenDML 形式で出力する(1)、AVI1.0 で使われるレガシーインデックスを使用しない(0)。レガシーインデックスについては、AVIファイルフォーマット
AVI-Mux GUI - Definitions を参照。

AUDIO INTERLEAVE 1 FR
PRELOAD 500

インターリーブを 1 フレーム(1 FR)、プリロードを 500 ミリ秒に設定。これは VirtualDub のデフォルト設定と同じにしてあります。AVI-Mux GUI 1.17.7 のデフォルトは、インターリーブが 100 KB、プリロードは 200 です。

RECLISTS 0

AVI-Mux GUI 1.17.7 のデフォルトは、RECLISTS 1 です。rec リストについては、AVIファイルフォーマットAVI-Mux GUI - Definitions を参照。

AVI ADDJUNKBEFOREHEADERS 0

この設定を有効化(つまり 1 に設定)すると、出力される AVI ファイルは最初のヘッダの前に 8 バイトのジャンク(ごみ)が追加されます。ただし、AVI-Mux GUIの使い方によると、これを有効にして多重化すると、Windows Media Player で再生できなくなるそうです。

Windows Media Playerで再生するのであれば、add JUNK before MainAVIHeaderのチェックを外しておかなければなりません。これにチェックを付けたままAVI-Mux GUIで出力したAVIファイルは、Windows Media Playerでは再生できなくなってしまいます。

AVI-Mux GUIの使い方]
START C:\bar\output.avi

C:\bar\output.avi という出力ファイル名を使って、多重化処理を開始します。

コマンドラインからスクリプトファイルを開く

C:\foo\AVI-Mux_GUI\AVIMux_GUI.exe C:\bar\myscript.amg

このようにコマンドラインオプションとしてスクリプトファイルを渡します。ファイルが半角スペースを含むパスにある場合は、二重引用符で囲みます。AVI-Mux GUIamg ファイルを開いて、そこに書かれている処理を実行してくれます。

なお、コマンドプロンプトは、スタートメニュー -> すべてのプログラム -> アクセサリ -> コマンド プロンプトから起動することができます(Windows XP の場合)。

注意

  • コマンドを実行すると、AVIMux_GUI.exe と同じフォルダにある config.ini.amg (設定ファイル)が書き換えられます。
  • v1.17.7 でテストしました。

コマンドラインから AVI-Mux GUI を操作する(2): バッチ編につづく)