f:id:daybreakdeath-03:20180225122613p:plain

第伍話 avisynth bat出力編

この記事をシェアする

スポンサーリンク

ほんと更新遅くて申し訳ないです

やっとこさ今回、最後の出力について説明します

ここまでで、出力する前までは既に出来上がっているかと思いますので、もしまだでしたら、前回までの記事を読み返しておくことを推奨します

第陸話 avisynth 複数のavsをまとめてbat処理編
第伍話 avisynth bat出力編
avisynth バンディング低減フィルタ GradFunkMirror
第肆話 avisynth スクリプトとフィルタ2
第参話 avisynth スクリプトとフィルタ1
第弐話 avisynth エンコードの流れ編
第壱話 avisynth 導入編
序章 avisynthを使用したCLIエンコード

お待たせしました、では続きをどうぞ ==== ●batファイル作成
まずは、テキストファイルを作成します
その後、拡張子を.txtから.batに変換し、自分に分かりやすい名前をつけて保存します

●注意事項
ここからは、batファイルの基礎コマンドが多少は分からないと厳しいかもしれません
私も、少しは説明しますが、コマンドについてはご自分で調べていただきたいと思います
また、人によっていろんな記述方法があるので、私の記述が全てではありません



ここがかなり参考になります→コマンドプロンプト基礎説明サイト


■初期設定

●echoのoff
一番初めに @echo off というふうに記載します
echoコマンドはコマンドプロンプトの画面にメッセージ等を出力するコマンドです
デフォルトではonになっているので、まずはこれをoffにするために記述します

●x264パラメータ設定
次は、x264のパラメータ設定をしておきます
このように記述します→set x264=--profile high --level 4.1 --crf 21 --aq-mode 1
(例なので、ここまでしか記述しません)

●出力ファイルの設定
次は、出力するファイルの場所や、ファイル名を決めます
とりあえず、私のバカテスのbatファイルを例に出して説明します

rem ### 出力ファイル ###
set subtitle=bakatesu12             ・・・ファイル名指定
set outfile_264="e:%subtitle%.mp4"   ・・・ファイルの出力場所指定
set subtitle=bakatesu12             ・・・これより下のファイル名指定
set outfile_264a="%subtitle%.mp4"    ・・・画面にタイトルを出力させるために記述
set outfile_aac="e:%subtitle%.aac"   ・・・aacファイルの保存場所指定
set outfile_wav="e:%subtitle%.wav"   ・・・wavファイルの保存場所指定
set outfile_log="e:%subtitle%.log"    ・・・ログ出力指定(別に必須ではない)
set subtitle=bakatesu12Union         ・・・音声と映像合成後のタイトル指定
set outfile_264b="保存したい場所のフルパス%subtitle%.mp4"  ・・・音声と映像を合成したファイルの出力場所指定

remコマンドを使用することで、コメントを記述したり、処理させないようにできます
setコマンドで、変数を定義することが出来ます。定義した変数は変数名を指定して呼び出したり出来ます
%subtitle%の部分で、ファイル名の「bakatesu12」を呼び出しています
つまり、Eドライブにbakatesu12.mp4というものが出来るようになっています
一番最後は、mp4とm4aを合成したファイルの保存場所とファイル名を指定しています
最終的には「bakatesu12Union.mp4」というファイルが出来るようになってます


●各exeファイルの指定
ここでは、x264.exeやneroAacEnc.exeのパスを指定します

rem ### x264 のステータス ###
set x264_status="x264-statuslog"

rem ### コマンドライン版 x264(x264.exe)のパス ###
set x264_path="D:atencfilesetfilex264.exe"

rem ### avs2wav.exe パス ###
set avs2wav_path="D:atencfilesetfileavs2wav.exe"

rem ### FAW.exeパス ###
set FAW.exe_path="C:Program FilesfaketowavFAW.exe"

rem ### MP4Box のパス ###
set mp4box_path="D:atencfilesetfileMP4Box.exe"

ここは、各exeファイルの場所をフルパスで指定してあげればいいので、説明は不要と思います
オプションの指定については申し訳ありませんが、自分でお調べになってください


●コマンドプロンプトにファイル名を表示させる
以下のように上で指定した変数を呼び出せば、コマンドプロンプトの画面に出力させることができます
特に必須ではないですが、私は見た時にすぐ分かるように設定しています
echo %outfile_264a%


●avsファイルを変数定義
avsファイルをINPUTFILEという名前で定義し、それが「現在処理しているファイルだよ」っていうのを表示させています
echo.と指定すると空白表示になります

set INPUTFILE=%~1  ・・・ここの~は半角~になります
echo 入力ファイル: %INPUTFILE%
echo.


●x264エンコード設定
ここで、x264のオプション設定を記述します

rem ###x264エンコード###
%x264_path% %x264% -o %outfile_264% %INPUTFILE%

最初にx264.exeを呼び出さないといけないので、%x264_path%を記述して呼び出します
後は、最初に変数定義したパラメータを呼び出すだけです
次は出力するために-oを指定します。-oは出力を意味します
-oの後には出力場所の指定と入力ファイルの指定をします
出力場所は先ほど変数定義したので、変数を呼び出します。入力ファイルになるavsも変数定義したので呼び出します


●avsファイルからwav出力
ここも同じです
まずはavs2wav.exeを呼び出し、avsファイルからwavを出力しています
exeの場所、avsファイルの場所、wav出力場所は事前に変数定義してあるので、呼び出してあげるだけです
※音声は別に編集して後で映像と合成させる場合は、この処理は必要ありません

rem ###wav出力###
%avs2wav_path% %INPUTFILE% %outfile_wav%


●偽装化していたwavをaacに戻す
ここも同じです
まずはFAW.exeを呼び出し、入力ファイルのwavを最初に指定し、後に出力ファイル指定を行ないます
変数定義しているので、すべて変数名を記述するだけでOKです

rem ###wav偽装→aacに戻す###
%FAW.exe_path% %outfile_wav% %outfile_aac%


●mp4boxで結合
最後に、mp4boxで合体させたい映像と音声を指定して、出力場所を指定します
はじめにmp4box.exeを呼び出します
次に-addの後に合体させたいファイルを指定します。変数定義してるので変数名を指定
次の-addでは1つ目で指定したファイルと合体させたいファイルを指定します。これも変数名指定
この例では、1つ目に映像を指定。2つ目に音声を指定しています

rem ###mp4boxで結合###
%mp4box_path% -add %outfile_264% -add %outfile_aac% -new %outfile_264b%


以上で、batファイルの設定は終了です 後は、処理したいavsファイルを作成したbatファイルにドラッグ&ドロップすれば、コマンドプロンプトが起動して、処理が開始されます
ただ、この方法ではまとめてたくさんのファイルを処理することができませんorz
ですが、もちろん方法はあります。現在私も5つぐらいまとめて処理させて、終了したらシャットダウンするように設定しています
説明が長くなるので、複数同時処理に関しては次回に説明したいと思います
かなり適当な説明だと思いますが、もし気になるところや質問があれば気軽にコメントでもしてください
分かる範囲でお答えします(できないかもしれないorz)
ではでは、