するめを食べながら覚え書き

園芸の話題がメインな、雑記系ブログです。くコ:彡
Home > ブログ > 雑記(その他) > Aviutlでフォルダ内の動画を自動的に一括エンコードする方法

[41]  [40]  [39]  [38]  [37]  [36]  [35]  [33]  [30]  [29]  [28
昔、VHSテープからPCに取り込んだ大量の映像データがHDD内のデータの海からみつかりました。
映像データはmpeg2で取り込んであったのですが、これが80GBくらいあります。テラバイトのHDDが当たり前になった今では大した事無い容量に思いますが、当時は凄くかさばるデータでした。
今なら、このデータをAVC/h.264にエンコードする事で、同じくらいの画質にしながら1/2~1/4の容量に減らす事が出来るので、データ整理も兼ねてエンコードする事にしました。

Aviutlで画質補正フィルタをかけながらエンコードしようと思ったのですが、ここで問題が…。
寝ているうちにエンコードするにしても、バッチ処理に登録するのが面倒です。
また、手動だとたまに間違って同じファイルをエンコードしたり、エンコードし忘れたりします。
更に、これらのバッチ登録作業と、ミスが結構ストレスです。

Aviutlで上手く一括エンコードする方法が無いものかとネットで探してみると、1つのプラグインがみつかりました。『Aviutl control プラグイン』です。
このプラグインは、Aviutlをコマンドラインから操作する事で自動処理を実現するもので、これを使えば、面倒なAviutlでの一括エンコードを自動で出来ます。
という訳で、このプラグインを使ってAviutlで一括エンコードをする事にしました。

では、使い方を説明します。

◆使い方


■1、プラグインのダウンロード
AviUtlプラグイン置き場
から、下の方にある
AviUtl Control ver1.4 (auc_14.zip) AviUtlをコマンドラインから操作するコマンド群 をダウンロードして解凍します。

※尚、以下の一連の作業はWindowsXP下で行なっています。WindowsVista・7での動作確認は行なっていません。

※追記:Windows8で動作を確認しました。


2、aucフォルダの設置
解凍して出来たaucフォルダを好きな場所に置きます。
(※私は判りやすいようにAviutlフォルダ内に置きました。)

3、スクリプト使用の為の事前準備
Aviutlで事前準備をします。事前準備は次の項目で必要です。
まずは、Aviutlを立ち上げて動画を読み込み、施したいフィルタをオンにしてプロファイルの保存をします。
保存は『プロファイル』メニュー →『プロファイルの編集』→『新しいプロファイルを作る』で、出来ます。
次に、自分がエンコードしたいコーデックに合わせた『プラグイン出力』を用意して導入します。

4、スクリプトの設定
スクリプトを用意します。
aucフォルダ内のauc.txtにスクリプト作成用のAviUtl Control コマンドが載っていますが、今回は、aucフォルダに入っているサンプルスクリプトを編集して使う例を紹介します。

サンプルスクリプト『sample2.vbs』は、地デジ・BS/CS用TSエンコードのサンプルスクリプトなので、弄るのは 『sample1.vbs』の方です。
とりあえず、元のサンプルスクリプトはコピーしてバックアップをとり、編集するファイルは名前を変えましょう。
ここでは、『test.vbs』とします。

test.vbs』としたファイルをテキストエディタで開き、以下の行の赤字部分を編集します。

~ これより上、編集必要無し ~

' キャプチャしたファイルがあるフォルダ(最後の文字は"\")
Const SOURCE_FOLDER  = "D:\CAPTURE\"

' エンコードが終わったファイルを移すフォルダ(最後の文字は"\")
Const MOVE_FOLDER    = "D:\MOVED\"

' エンコードしたデータを出力するフォルダ(最後の文字は"\")
Const OUTPUT_FOLDER  = "D:\ENCODED\"

' プロファイル番号(メニューの一番上が0)
Const OUTPUT_PROFILE = 0

' 出力プラグイン番号(メニューの一番上が0)
Const OUTPUT_PLUGIN  = 0

' 出力ファイルの拡張子
Const OUTPUT_EXT     = ".wmv"

' AviUtlのフルパス
Const AVIUTL_PATH    = "C:\Program Files\aviutl\aviutl.exe"

' AviUtl Controlを置いてあるフォルダ(最後の文字は"\")
Const AUC_FOLDER     = ".\" ' = スクリプトと同じフォルダ

~ これより下、編集必要無し ~


◆この上記の部分を、例えば以下のように変更します。
以下は、私が一括エンコードを行った時の設定です。
青字は解説となっています。
 

' キャプチャしたファイルがあるフォルダ(最後の文字は"\")
Const SOURCE_FOLDER  = "E:\GigaPocket\" ※一括エンコードしたい映像データの入ったフォルダを指定します。

' エンコードが終わったファイルを移すフォルダ(最後の文字は"\")
Const MOVE_FOLDER    = "E:\GigaPocket\END_FILE\" ※前もってGigaPocketフォルダ内にEND_FILEフォルダをつくっておきます。自動的には作成されません。このフォルダを設定しておかないと、エンコードが終わっても元ファイルが移動しない為、ループに陥ってしまいます。

' エンコードしたデータを出力するフォルダ(最後の文字は"\")
Const OUTPUT_FOLDER  = "R:\AviUtl_File\" ※高速に書き込みが出来るRAMディスクに出力したいので、RAMディスクに設定してあるRドライブのパスを書き込みました。

' プロファイル番号(メニューの一番上が0)
Const OUTPUT_PROFILE = 0 
あらかじめ、インターレース解除や、フィルタの設定をしてからプロファイルとして、保存しておいた番号を設定します。順番は以下のようになります。
e095a1c4.png

' 出力プラグイン番号(メニューの一番上が0)
Const OUTPUT_PLUGIN  = 14 ※順番は以下のようになります。

99dc8bcb.png
今回の出力プラグインには有志の方がx264出力をGUIで設定出来る様にした 拡張x264 出力(GUI) を使用しました。
特徴としては、一度に2pass処理ができる事や、細かい設定が可能な事です。
また、内部にプロファイルを保存できるなど、大変便利なプラグインとなっています。

尚、h.264コーデックから2passエンコードを使うとエラーが出るようなので、h.264への変換にはこの出力プラグインの使用をオススメします。
(※追記:もしかすると、エラーになるのは、
私が使用したh.264コーデックのバージョンで起きる固有バグかもしれません。)

' 出力ファイルの拡張子
Const OUTPUT_EXT     = ".mp4" ※出力されるファイルの拡張子です。mp4に変換するので.mp4にしました。

' AviUtlのフルパス
Const AVIUTL_PATH    = "C:\FreeSoft\Aviutl\aviutl.exe" ※AviUtlのある場所を絶対パス(フルパス)で書き込みます。

' AviUtl Controlを置いてあるフォルダ(最後の文字は"\")
Const AUC_FOLDER     = ".\" ' = スクリプトと同じフォルダ 
※AviUtl Controlを置いてある場所を、スクリプトからの相対パスで記述します。つまり、aucフォルダ内にスクリプトファイル『test.vbs』がある場合は、この設定は変更しなくて良いという事になります


5、設定の保存とテスト
test.vbsに設定を書き込んだら、保存します。
そして、Aviutlを立ち上げた状態で『test.vbs』をダブルクリックして実行すると一括エンコードが始まります。
試しに、短い時間の動画ファイルを数ファイル分用意してテストして下さい。
正しくスクリプトが働いている場合は、エンコードが終わる度に元の動画ファイルがEND_FILEフォルダに送り込まれていきます。

尚、設定に失敗した場合でも、エンコードはされずに動画ファイルが淡々とEND_FILEフォルダに送り込まれていきます。
失敗した場合は、タスクマネージャのプロセスタブからwscript.exeプロセスを強制終了させてやって下さい。
もしくは、フォルダ内にファイルが無くなるとスクリプトが終了するので、待ちましょう。


これで説明は終了です。
このAviutl controlはとても便利で、いろいろな使い方があります。是非マスターしてみて下さい。


■追記、一部挙動に不満を感じたら
ここで説明しているのはサンプルスクリプトそのままの内容ですが

AviUtlで自動エンコード | wizaman's blog

こちらの方が、サンプルスクリプトをサブフォルダ(サブディレクトリ)への対応と、エンコード中断処理に対応した改良版を提供されています。
大規模な一括エンコードに際し、サンプルスクリプトで不満を抱えていた方は、こちらのスクリプトへの移行をオススメします。

また、VBSでは無くPythonに対応したプログラムも提供されているので、Python使いの方はそちらの方が扱いやすいと思います。


▼参考にしたサイト、ブログさん等
AviUtlを使って複数ファイルを自動でH.264エンコードする(失敗):ぷりどうぐ
<http://prius.cc/d/20090615_aviutl_h264.html>
iPhoneでTV録画ファイルを見る: iPhoneで地デジ録画ファイルを見る
<http://iphone-info-48.blogspot.com/2009/09/2tshdiphone-ts-tsmp4-tvrock-cm.html>
AviUtl オリジナルプラグイン公開サイト @ wiki - メモ/バッチファイル
<http://www40.atwiki.jp/aviutl41991/pages/45.html>

※2015/12/07:最終更新、追記事項


◆ この記事にコメントする
お名前
タイトル
文字色
コメント
パスワード ※修正用  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
質問です
これってフィルタもかけれたりするんですか?
さみだれ 2011/06/11(Sat)00:01:32 編集
無題
>>さみだれさん

フィルタもかけられますよ。
あくまで、出力を自動化するだけの単純なコマンドなので
フィルタをかける方法はAviutlと同じです。

ただ、この方法で一括エンコードする際は、プロファイルを設定に書きこむ必要がありますので
フィルタを設定したらプロファイルを保存してください。
(詳しくは、この記事の「' プロファイル番号(メニューの一番上が0)」という説明を御覧ください。)
ryuun@管理人 2011/06/11(Sat)11:08:40 編集
無題
自動化処理を利用させていただいております.ありがとうございます.

上記の記事の通りに利用しようとしているのですが,
vbsファイル内の以下の処理では,バッチに登録されるだけでフォルダに出力されません...

Call Auc("plugbatch", CStr(hwnd) & " " & CStr(OUTPUT_PLUGIN) & " """ & output & """")

いろいろと調べて方法をほかの方法を考えていたのですが,初心者のため,わかりません...
うまくすべてのファイルをエンコードし,出力する方法はないのでしょうか?
モンキー 2012/07/13(Fri)15:44:32 編集
フォルダに出力されない件について
>>モンキーさん

フォルダに出力されないという事で、こちらの環境下で色々と確認していた所、モンキーさんの仰っている事と同じかは判りませんが、「バッチ処理は行われるもののエンコードが行われず、その後ファイルの移動処理が行われて終了してしまう」という現象が起こりました。
詳しい原因は判りませんがauc_plugout.exeの処理が上手くいかず、エンコードが開始されないものと思われます。

対処法としましては、一度vbsファイルを使わずに適当な動画ファイルをエンコードした後、vbsファイルを実行することで、エンコードが開始されるようになったので、試してみて下さい。
ryuun@管理人 2012/07/15(Sun)06:42:54 編集
フォルダに出力されない件について
私も同じ症状に悩まされ、結果解決しませんでしたが、原因と思われる文章を発見しましたので、報告まで。

Aviutl Controlの公式掲示板
1178.AviUtl Control について
ttp://www1.ezbbs.net/cgi/reply?id=aji_0&dd=25&re=1178&qu=1
通りすがり 2012/08/03(Fri)03:56:39 編集
>フォルダに出力されない件について
>>通りすがりさん、情報有り難うございます。

>1178.AviUtl Control について 返信 引用
>名前:aetos 日付:2009/11/16(月) 01:41
>使わせて頂こうと思いましたが、Windows 7 ではファイルダイアログの構造が変わっているためか、auc_saveproj が動きませんでし>た。
>
>ComboBoxEx32 がないようです。
>Win7 のファイル保存ダイアログの構造の抜粋はこんな感じです。
>
>#32770
> DUIViewWndClassName
>  DirectUIHWND
>   FloatNotifySink
>    ComboBox
>     Edit
> ...(以下略)

なるほど。当方は未だにWindowsXPを使っているので気付きませんでしたが、Winows7でのAviUtl Controlの使用には問題があったのですね。
取り敢えず、近日Windows7に乗り換える予定なので、その際には色々と試してみて、記事を書き換えてみたいと思います。
ryuun@管理人 2012/08/06(Mon)21:03:54 編集
無題
拡張x264 出力(GUI)の内部プロファイルの指定はどのようにするのですか?
せせ 2014/03/02(Sun)19:03:48 編集
> せせさんへ
>拡張x264 出力(GUI)の内部プロファイルの指定はどのようにするのですか?

求められている答えになっているかは分かりませんが、Aviutlで作った個々のプロファイルに『拡張x264 出力(GUI)』の内部プロファイルが別々に含まれるので、Aviutl側のプロファイルを作成して、拡張x264 出力(GUI)の方で設定を変えれば指定できます。

例えば、Aviutlで

・x264低画質(100kbps)
・x264高画質(8000kbps)

という名前のプロファイルを作ります。
x264低画質(100kbps)のプロファイルを選択して、『拡張x264 出力(GUI)』のビットレート設定を100kbpsに変更してOKボタンを押せば、低画質出力用のAviutlプロファイルが出来上がります。
そして、x264高画質(8000kbps)のプロファイルの方には、ビットレートに8000kbpsの設定を適用させて高画質出力用のプロファイルを作ります。

後は、このスクリプトでプロファイル番号を指定してあげれば、その画質設定で出力が出来ます。
ryuun@管理人 2014/03/04(Tue)01:27:36 編集
バッチ登録が上手くいかない。
記事を参考にさせていただきバッチ登録を自動化しようと試みたのですがどうしても元となるフォルダから一つのファイルを読み込んでバッチ登録した後他のファイルが読み込まれずにその一つのみでエンコードが始まってしまいます。
一つ目の読み込みが終わった後、ファイル選択ダイアログが出るのですがそこに表示されるはずの動画ファイルが一件もありませんでした。
このような場合何が原因で上手く行っていないのでしょうか。
お知恵を拝借できれば幸いです。
ratman 2015/01/08(Thu)20:08:16 編集
> ratmanさんへ
ratmanさん

考えられる原因は3つあります。

◆可能性1:AviUtl Control ver1.4 (auc_14.zip)を使っている。
ratmanさんがWindowsVista/7/8/8.1の環境下で使っていらっしゃるのならば、Windows7に対応したAviUtl Control ver1.5 (auc_15.zip)を使わないと上手く動かない可能性があります。

◆可能性2:『エンコードが終わったファイルを移すフォルダ』の記述が間違っている、もしくはフォルダが無い。
XP環境下で使っていらっしゃる場合、バッチファイルのパス記述が間違っていたり、フォルダが作られていないと、ループに陥るハズです。
記述が間違っていないか再確認してみて下さい。

◆可能性3:【ファイル】→【環境設定】→【システムの設定】→【編集ファイルが閉じられる時に確認ダイアログを表示する】にチェックが入っている。
この場合、確認ダイアログが出てきて、1つ目の動画ファイルでエンコードがループするという事態が起こります。
チェックが入っていたら外して下さい。

動作に問題が出るとしたら・・・この辺りかなと思われます。
お試しを。


それと、【ファイルを開く】のダイアログで動画ファイルが表示されないならば変です。
原因は・・・分かりません。

尚、その後に出る【保存する場所】のダイアログで動画ファイルが表示されないのは正常です。
ryuun@管理人 2015/01/09(Fri)04:54:33 編集
無題
お返事くださいましてありがとうございます。

まずaucのバージョンですが落としたファイルの名前を確認したところauc_15.zipとなっていましたので最新の物を使っているようです。

フォルダパスの記述は何度も見直してみましたが間違いは見つかりませんでした。

【編集ファイルが閉じられる時に確認ダイアログを表示する】については確認したところチェックは入っていませんでした。

ダイアログの表示については私の勘違いで入力ファイル選択ではなく出力先が表示されているものでした。
これであればファイル名がなにも表示されないのは当然ですよね。

原因が全くわかりませんのでaviutlをもう一度一から環境設定しなおして見ます。
どうもありがとうございました。
ratman 2015/01/09(Fri)07:48:31 編集
> ratmanさんへ2
解決しませんでしたか・・・。
お役に立てず無念です。。

一から設定しなおしてもダメな様でしたら・・・
もしかすると、フィルタか出力プラグインが原因になっている可能性があるかもしれないので
(既に試されているかもしれませんが)
フィルタを全て外して一番単純な状態でエンコードしてみる。
別なプラグイン出力に変えてみる。「例:拡張x264出力(GUI)Ex→拡張AVI出力plusなど」
別なエンコード設定に変えてみる。「例:2pass→1passに変える」
などで正常にバッチが動作するか試してみて下さい。
ryuun@管理人 2015/01/09(Fri)22:11:03 編集
Aviutl 1.0
質問失礼します。
Aviutl 1.0 の ReadMeに記載されているコマンドラインとの
違いについて教えていただけないでしょうか。
質問 2017/02/07(Tue)18:45:18 編集
> Aviutl 1.0
>質問失礼します。
>Aviutl 1.0 の ReadMeに記載されているコマンドラインとの
>違いについて教えていただけないでしょうか。

質問ありがとうございます。

Aviutl内蔵コマンドラインオプションとAviutl controlプラグインの違いについてですが、やれる事についてはどちらを使っても似たような事は出来るので大きな違いはありません。
この記事ではVBスクリプト『.vbs』のサンプルを解説していますが、もちろん、バッチファイル『.bat』を作成してコマンドラインを実行する事も出来ます。

細かな違いとしてはAviutl v1.00から増えたバッチ出力リスト絡みのコマンドラインオプションが違います。
何らかの目的でAviutlにバッチ登録だけしたい場合や、出力プラグインを使わない2pass処理などで使えるかと思います。

また、Aviutl controlプラグインでは出力プラグインの指定、プロファイルの保存が出来る所が違いますが、使わないのであれば内蔵コマンドラインオプションで事足ります。

機能的に違うのはそれ位だと思うのですが、昔からAviutl controlプラグインの方がコマンドラインオプションが充実していた流れで、ネット上に参考となるVBスクリプトやバッチファイルが沢山アップされおり、解説サイトも多いので、皆さんAviutl controlプラグインを使う感じですね。
ryuun@管理人 2017/02/09(Thu)04:51:52 編集
ブログ内検索
プロフィール
HN:
ryuun
趣味:
PC全般、園芸、ゲーム、etc
自己紹介:
栃木在住。興味・趣味の範囲が広いので、ブログ内容はカオス気味です。
もし、記事に間違った部分があればコメントでツッコミを入れて下さい。
後、ゲームでは別なHNでプレイしているので、何処かでryuunさんを見かけても別人です。
カテゴリー
メインPCスペック
Windows10 Pro 64bit,
Intel Corei7-870(2.93GHz)
詳細は別リンク
サブPCスペック
Windows10 Pro 64bit,
Intel Core i7 3770K(3.5 GHz),
詳細は別リンク
所有スマホ・タブレット
AQUOS R3 (2019 au版SHV44)
isai V30+ (2017 au版LGV35)
Fire HD8+(2020 64GB版)
iPad mini5 (2019 Wi-fi 256GB版)
iPad mini6 (2021 セルラー 256GB版)
詳細は別リンク
プレイ中のソシャゲ
・黒猫のウィズ
・DQウォーク
・ロマンシング・サガRS
・プリンセスコネクトR
・ウマ娘
不定期ぼやき枠
ブログは不定期にチェック中、趣味の優先順位は、アクアリウム=園芸=ゲーム>その他
最新コメント
[09/14 藤本 堯]
[07/15 ryuun@管理人]
[07/06 kandomon]
[04/28 ryuun@管理人]
[04/28 ryuun@管理人]
カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
PCゲーム販売サイト(メモ用)
▼Steam (cc=jp)
Steam
▼GreenmanGaming(GMG)
GreenmanGaming(GMG)
▼GAMERSGATE(GG) (米国)
GAMERSGATE(GG)
▼GAMERSGATE(GG) (英国)
GAMERSGATE(GG)
▼YUplay(ロシア)
YUplay
▼GameStop
GameStop
▼Origin(日本)
Origin
▼Amazon(日本)
Amazon(日本)
IndieBundleセール開催サイト
▼The Humble Bundle(THB)
blogimg_gamebundle_thmb2.png
▼The Humble Bundle(THWS)
The Humble Bundle(THWS)
▼Indie Royale
Indie Royale
▼The Indie gala
The Indie gala
▼BUNDLE STARS.COM
BUNDLE STARS.COM
▼groupees
groupees
このブログのQRコード
カウンター
アクセス解析

Template by decoboko.jp