コマンドラインから AVI-Mux GUI を操作する(2): バッチ編
「コマンドラインから AVI-Mux GUI を操作する(1): 基本編」では、あらかじめ AVI-Mux GUI 用のスクリプトファイルを用意して、これをコマンドラインから実行する方法を紹介しました。今回は、これらの一連の操作を行うバッチファイルのサンプルを作ってみました。
このサンプルでは、以下の内容の処理を行います:
- 入出力ファイルの設定をキーボードから行う。
- 1 の内容をもとに AVI-Mux GUI 用のスクリプト(amg ファイル)を出力する。
- 2 で出力した amg ファイルを AVI-Mux GUI で実行する。
詳しい使用手順については、下記の「バッチファイルのサンプルの使い方」を参照してください。
バッチファイルのサンプルダウンロード
バッチファイルのサンプルの使い方
実行する前に、メモ帳でバッチファイルを開いて、初期設定を行っておきます。
- バッチファイルをダブルクリックして開始。
- 入力ビデオファイル(AVI)の指定を求めるメッセージが表示されるので、バッチのウィンドウ上にファイルをドラッグ&ドロップして、Enter キーを入力する。
- 入力音声ファイル(MP3)の指定を求めるメッセージが表示されるので、2 と同様の手順で指定する。
- 3 で指定した MP3 ファイルがエンコードされた方式(CBR/VBR)を数字で指定(CBR なら 0、VBR なら 1)して、Enter キーを入力する。
- 出力ファイル名を尋ねられますので、キーボードで直接ファイル名を入力します。パス指定は不要です(初期設定で指定したフォルダに出力されます)。
- Enter キーを入力すると、AVIMux_GUI.exe が起動して、処理が開始されます。
- 最後に何かキーを押すと、ウィンドウが閉じます。
注意
- あくまでも AVI-Mux GUI 用のバッチファイルのサンプルです。実用目的ではなく、バッチファイルの作例として作成したものです。
- 一応、エラーなく Mux が実行できることと、出来上がった AVI ファイルが再生できることは確認しましたが、スクリプトの設定が正しいかどうか、意図した通りのファイルが作成できているかどうかの保証はありません。
補足
入出力ファイルの設定をバッチファイルの中で行う
上のサンプルでは、キーボードから入出力ファイルのパスを指定するようになっています。しかし、実際にエンコード時の一連の処理の中で使用するには、キーボードからではなく、バッチファイルの中で入出力ファイルのパスを指定できたほうが便利でしょう。
これを行うためには、「rem #--- 初期設定 ここから ---#」から「rem #--- 入出力先設定 ここまで ---#」までの部分を変更します。例えば、ドラッグ&ドロップした AVI ファイルを入力ビデオファイルに、同名の MP3 ファイルを入力音声ファイルにしたい場合は、以下のように変更します。出力ファイル名は、入力ビデオファイルの名前+ _output.avi にしています。
rem #--- 初期設定 ここから ---#
rem ### amgファイル ###
set amg_file="C:\bar\myscript.amg"
rem ### 入力 AVI ファイル ###
set video_file=%~1
rem ### 入力 MP3 ファイル ###
set audio_file=%~dpn1.mp3
rem ### 出力 AVI ファイル ###
set output_file=%~dpn1_output.avi
rem #--- 入出力先設定 ここまで ---#
amg ファイルの出力部分の説明
rem ### 空の amg ファイルを出力 ###
type nul> %amg_file%
「>」でリダイレクトして、上で設定した amg_file のパスに空のスクリプトファイルを生成します。
次にAVI-Mux GUIのスクリプトを空の amg ファイルに追記していきます。
echo AVI-Mux GUIのスクリプト>> %amg_file%
基本的には、このように echo 文とリダイレクト(ここでは > ではなく >>)を組み合わせるだけです。ただし、上で設定した入出力ファイル名は % で囲んだ変数にし、0 と 1 は ^ を付けて他の文字列に置き換えられないように(0 や 1 という文字そのものとして扱われるように)します。さもないと、うまく動作しない可能性があります。
パスの二重引用符を取り除く
AVI-Mux GUI のスクリプトで入出力ファイルを指定するときは、パスを二重引用符で囲んではいけません。さもないと、エラーが発生します(前回の記事を参照)。
文字列から二重引用符を取り除く方法については、《コマンドライン活用術 No.2》 auoencを手軽に... - kiraruノートの《切れ端》 - 楽天ブログ(Blog)を参考にしました。コマンドプロンプトの set のヘルプにも記載されています(コマンドプロンプト上で set /? と入力すれば見ることができます)。
関連記事
コマンドラインから 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 で再生できなくなるそうです。
AVI-Mux GUIの使い方
Windows Media Playerで再生するのであれば、add JUNK before MainAVIHeaderのチェックを外しておかなければなりません。これにチェックを付けたままAVI-Mux GUIで出力したAVIファイルは、Windows Media Playerでは再生できなくなってしまいます。
START C:\bar\output.avi
C:\bar\output.avi という出力ファイル名を使って、多重化処理を開始します。
コマンドラインからスクリプトファイルを開く
C:\foo\AVI-Mux_GUI\AVIMux_GUI.exe C:\bar\myscript.amg
このようにコマンドラインオプションとしてスクリプトファイルを渡します。ファイルが半角スペースを含むパスにある場合は、二重引用符で囲みます。AVI-Mux GUI は amg ファイルを開いて、そこに書かれている処理を実行してくれます。
なお、コマンドプロンプトは、スタートメニュー -> すべてのプログラム -> アクセサリ -> コマンド プロンプトから起動することができます(Windows XP の場合)。
注意
- コマンドを実行すると、AVIMux_GUI.exe と同じフォルダにある config.ini.amg (設定ファイル)が書き換えられます。
- v1.17.7 でテストしました。
(コマンドラインから AVI-Mux GUI を操作する(2): バッチ編につづく)
関連記事
AviSynth スクリプト(AVS)複製バッチファイル
概要
- にーやんの動画作成支援バッチファイルの 1 つです。
- AviSynth スクリプト(AVS)ファイルの複製を目的としたバッチファイルです。
- 実際には、AVS ファイル以外の複製にも応用可能です。
- 同一のクリップをソースとする複数の AVS ファイルが必要な場合の使用を想定しています。
ダウンロード
AviSynth スクリプト(AVS)複製バッチファイル(2007-03-02 公開)
使い方
- avs_copy.zip を解凍します。
- コピー元の AVS ファイルを avs_copy.bat(またはそのショートカット)にドラッグ&ドロップします。
- コピーする部数を入力するダイアログが表示されますので、半角英数字で整数値を入力して、Enter キーを押してください。
- デフォルトでは、10 を超える数値を入力しても、それ以上の複製は行われないようになっています。設定を変更したい場合は、メモ帳で avs_copy.bat を開いて、初期設定の copy_limit の値を変更してください。
- コピー元の AVS ファイル名に「アンダースコア(アンダーライン)+連番」を追加したファイル名で、コピー先の AVS ファイルを出力します。
- すでに同名の AVS ファイルが存在する場合は、上書き確認のダイアログが表示されます。Yes(y だけでも可)を入力すると上書きし、No(n だけでも可)を入力すると複製しません。
備考/注意
- Windows XP Home Edition(SP2)で動作確認しています。それ以外の Windows OS では動作しない可能性があります。
更新履歴
- 2007-03-02: 初版。
- 2007-10-01: FTP アップロード時に改行コードが変更されるため、ZIP 形式での配布に変更した(バッチファイルの内容に変更はありません)。
エンコード用バッチファイル
概要
- にーやんの動画作成支援バッチファイルの 1 つです。
- エンコード用のバッチファイルです。
- メインのバッチファイル(enc.bat)からテンプレートを呼び出してエンコードを行います。
- テンプレートの中身もバッチファイルです。
- サンプルとして、出力形式別にいくつかのテンプレートを同梱しています。
- 複数ファイルの一括処理に対応。
ダウンロード
エンコード用バッチファイル(enc_batch_20070126.zip)(2006-01-26 更新。第 3 版)
使い方
- 使用したいテンプレートをメモ帳で開いて、初期設定を行い、上書き保存する。
- フォルダ/右クリックメニューから開くときは、[開く] ではなく [編集] を選択すること。
- テンプレートを元に別のテンプレートを作成してもよい。テンプレートの中身は、バッチファイルです。
- 各テンプレートの内容については、各フォルダの中にある readme を参照。
- enc.bat を開いて、使用したいテンプレートのパスを指定し、保存する。
- フォルダ/右クリックメニューから開くときは、[開く] ではなく [編集] を選択すること。
- いくつかのテンプレートを使い分けたい場合は、テンプレートごとに別の名前で保存してもよい。
- enc.bat に入力ファイルをドラッグ&ドロップする。
- 複数ファイルをまとめてドラッグ&ドロップしてもよい。
- 複数ファイルが入力された場合、1 ファイルずつ順番に同じテンプレートを使用してエンコードされる。
- 対応している入力ファイルの形式は、基本的に AVS ファイルのみ(各テンプレートの readme を参照)。
- すべてのエンコードの終了後、何らかのキー(Enter キーなど)を押すとウィンドウが閉じる。
同梱しているもの
- readme_enc_batch.txt: この説明書。
- enc.bat: メインのエンコード用バッチファイル。このバッチファイルからテンプレートを呼び出してエンコードする。
- template フォルダ:
- avi フォルダ: AVI 出力用テンプレート(バッチファイル)。
- cce フォルダ: CCE Basic 用テンプレート(バッチファイル)。
- mkv フォルダ: MKV 出力用テンプレート(バッチファイル)。
- mp4 フォルダ: MP4 出力用テンプレート(バッチファイル)。
- tool フォルダ:
- save_codec_setting.bat: AVS2AVI で使用するコーデックの設定ファイルを保存するためのバッチファイル。
- readme_save_codec_setting.txt: 上記のバッチファイルの説明書。
備考/注意
- Windows XP Home Edition(SP2)で動作確認しています。それ以外の Windows OS では動作しない可能性があります。
- 同梱されているテンプレートはサンプルです。
- コーデックなどの設定値もすべて例ですので、適宜、変更してください。
- 最終的に出力される動画ファイルが正常に再生できることを保証するわけではありません。
- avs2wav は、バージョンによってうまく動かないケースがあるようです。
- 私の環境においては、v1.1 では正常なファイルが出力されませんでした。
- 標準出力で tooLame に渡すと、うまく動作しないようです。
- enc.bat の addrange_with_vcf オプションと insert_filter_template オプションのどちらか(または両方)を有効にした場合、入力ファイルは AVS ファイルに限定されます。
謝辞
バッチファイルの作成にあたり、以下のサイトを参考にしました。
更新履歴
- 2007-01-14: 初版。
- 2007-01-18: 第 2 版。
- save_codec_setting.bat: 無駄な記述が何行かあったのを削除。tool フォルダに移動。
- readme_save_codec_setting.txt(save_codec_setting.bat の説明書)を追加。
- CCE Basic 用テンプレート(共通): AVS2AVI を使って中間ファイルを作成するオプションを追加。
- AVI 用テンプレート(共通): 初期設定で OpenDML 形式と AVI 1.0 形式のいずれで出力するかを選択できるようにした。
- AVI 用テンプレート(共通): AVI-Mux GUI 用のスクリプトファイルを変更。VitrualDub の初期設定を参考に、インターリーブの設定を 1 フレーム間隔、プリロードを 500 ms にした(AVI-Mux GUI のデフォルトは、それぞれ 100 KB と 200 ms)。同梱されている Profile を参考にその他の項目を変更した。
- 2007-01-26: 第 3 版。
- enc.bat: 入力ファイルと同じフォルダに同名の VCF ファイルがあった場合に、AddRange プラグインを使って読み込むオプションを追加。
- enc.bat: フィルタ連鎖テンプレート挿入オプションを追加。
- MKV 用テンプレート: 映像を AVI に、音声を ogg に変換して、MKV に格納するテンプレートを 2 つ追加。
- AVI 用テンプレート(共通): テンプレート内の初期設定から MP3 が CBR か VBR かを判断して、Mux 時の設定を決定するようにした。この変更に合わせて、CBR 向けのテンプレートと VBR 向けのテンプレートを統合した。
- AVI 用テンプレート: 120fps 化用テンプレートを 2 つ追加。
DVD オーサリング用バッチファイル TYPE 2(再生リスト使用)
概要
にーやんの動画作成支援バッチファイルの 1 つです。
複数のコマンドラインツールを使って、1 つ以上の MPEG-2 ファイルを DVD Video 形式のファイルに変換します。前もって DVD Video 化したい MPEG-2 ファイルのリストを用意することによって、クリップ再生順を指定することができます。設定によっては、さらにイメージファイル(ISO)に変換することも可能です。
同様のバッチファイルにDVD オーサリング用バッチファイル TYPE 1(再生順ランダム)があります。
特徴/制限
- 処理対象となるのは、拡張子が .mpg、.mpeg、.m2p または .mpv、.m2v の MPEG-2 ファイル。
- 1 クリップごとに 1 つのチャプターが割り当てられます。
- 生成される DVD Video には、メニューがありません。
- 事前にクリップのリストを作成することによって、再生順を決定します。
動作に必要なもの
- 絶対に必要なもの
- dvdauthor
- mplex
- 条件によって必要となるもの
- mpgtx(ソースの拡張子が mp(e)g、m2p の場合にストリームを分離するのに必要)
- mkisofs(ISO 化する場合に必要)
上記のコマンドラインツールは、DVDStyler または DVDAuthor GUI に含まれています。いずれかのソフトをインストールすれば、これらのツールも利用可能となります(DVDAuthor GUI には mpgtx が含まれていませんが、mpgtx an mpeg toolbox から入手可能です)。
バッチファイルのダウンロード
DVD オーサリング用バッチファイル TYPE 2(再生リスト使用)(2006-12-24 公開)
内容物
- dvd_authoring_by_list.bat
- DVD オーサリング用バッチファイル(要クリップリスト)
- gen_clip_list.txt
- MPEG-2 クリップのリストを作成するためのバッチファイル。作成したリストは、上記の DVD オーサリング用バッチファイルで使用する。
使用方法
- dvd_authoring_by_list.bat と gen_clip_list.batをそれぞれメモ帳で開いて(コンテキストメニューからなら「開く」ではなく「編集」)、初期設定を行います。初期設定が終わったら、上書き保存してください。
- DVD Video にしたい MPEG-2 クリップを選択して(複数選択可)、gen_clip_list.bat にドラッグ&ドロップします。リストへの追加対象となるのは、拡張子が .mpg、.mpeg、.m2p または .mpv、.m2v の MPEG-2 ファイルです。
- 同名のリストが存在する場合、上書き/追記/リスト名の再指定の中から選択することができます。
- 2 で作成したクリップリストを選択して、dvd_authoring_by_list.bat に D&D します。
- 指定したフォルダに、DVD Video フォルダまたは ISO ファイルが出力されます。
初期設定項目
設定項目に関する説明(コメント)はバッチファイルの中に書いてありますので、そちらを参考に設定してください。
注意
- Windows XP(SP2)で動作確認しています。その他の Windows OS(とくに 98/Me)では動かない可能性があります。
参考
このバッチファイルの作成にあたり、以下のページを参考にしました。
更新履歴
- 2006-12-24: 初版。




