するめを食べながら覚え書き
映像データは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で動作を確認しました。
解凍して出来た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 ※あらかじめ、インターレース解除や、フィルタの設定をしてからプロファイルとして、保存しておいた番号を設定します。順番は以下のようになります。
' 出力プラグイン番号(メニューの一番上が0)
Const OUTPUT_PLUGIN = 14 ※順番は以下のようになります。
今回の出力プラグインには有志の方が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:最終更新、追記事項
フィルタもかけられますよ。
あくまで、出力を自動化するだけの単純なコマンドなので
フィルタをかける方法はAviutlと同じです。
ただ、この方法で一括エンコードする際は、プロファイルを設定に書きこむ必要がありますので
フィルタを設定したらプロファイルを保存してください。
(詳しくは、この記事の「' プロファイル番号(メニューの一番上が0)」という説明を御覧ください。)
上記の記事の通りに利用しようとしているのですが,
vbsファイル内の以下の処理では,バッチに登録されるだけでフォルダに出力されません...
Call Auc("plugbatch", CStr(hwnd) & " " & CStr(OUTPUT_PLUGIN) & " """ & output & """")
いろいろと調べて方法をほかの方法を考えていたのですが,初心者のため,わかりません...
うまくすべてのファイルをエンコードし,出力する方法はないのでしょうか?
フォルダに出力されないという事で、こちらの環境下で色々と確認していた所、モンキーさんの仰っている事と同じかは判りませんが、「バッチ処理は行われるもののエンコードが行われず、その後ファイルの移動処理が行われて終了してしまう」という現象が起こりました。
詳しい原因は判りませんがauc_plugout.exeの処理が上手くいかず、エンコードが開始されないものと思われます。
対処法としましては、一度vbsファイルを使わずに適当な動画ファイルをエンコードした後、vbsファイルを実行することで、エンコードが開始されるようになったので、試してみて下さい。
Aviutl Controlの公式掲示板
1178.AviUtl Control について
ttp://www1.ezbbs.net/cgi/reply?id=aji_0&dd=25&re=1178&qu=1
>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に乗り換える予定なので、その際には色々と試してみて、記事を書き換えてみたいと思います。
求められている答えになっているかは分かりませんが、Aviutlで作った個々のプロファイルに『拡張x264 出力(GUI)』の内部プロファイルが別々に含まれるので、Aviutl側のプロファイルを作成して、拡張x264 出力(GUI)の方で設定を変えれば指定できます。
例えば、Aviutlで
・x264低画質(100kbps)
・x264高画質(8000kbps)
という名前のプロファイルを作ります。
x264低画質(100kbps)のプロファイルを選択して、『拡張x264 出力(GUI)』のビットレート設定を100kbpsに変更してOKボタンを押せば、低画質出力用のAviutlプロファイルが出来上がります。
そして、x264高画質(8000kbps)のプロファイルの方には、ビットレートに8000kbpsの設定を適用させて高画質出力用のプロファイルを作ります。
後は、このスクリプトでプロファイル番号を指定してあげれば、その画質設定で出力が出来ます。
一つ目の読み込みが終わった後、ファイル選択ダイアログが出るのですがそこに表示されるはずの動画ファイルが一件もありませんでした。
このような場合何が原因で上手く行っていないのでしょうか。
お知恵を拝借できれば幸いです。
考えられる原因は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つ目の動画ファイルでエンコードがループするという事態が起こります。
チェックが入っていたら外して下さい。
動作に問題が出るとしたら・・・この辺りかなと思われます。
お試しを。
それと、【ファイルを開く】のダイアログで動画ファイルが表示されないならば変です。
原因は・・・分かりません。
尚、その後に出る【保存する場所】のダイアログで動画ファイルが表示されないのは正常です。
まずaucのバージョンですが落としたファイルの名前を確認したところauc_15.zipとなっていましたので最新の物を使っているようです。
フォルダパスの記述は何度も見直してみましたが間違いは見つかりませんでした。
【編集ファイルが閉じられる時に確認ダイアログを表示する】については確認したところチェックは入っていませんでした。
ダイアログの表示については私の勘違いで入力ファイル選択ではなく出力先が表示されているものでした。
これであればファイル名がなにも表示されないのは当然ですよね。
原因が全くわかりませんのでaviutlをもう一度一から環境設定しなおして見ます。
どうもありがとうございました。
お役に立てず無念です。。
一から設定しなおしてもダメな様でしたら・・・
もしかすると、フィルタか出力プラグインが原因になっている可能性があるかもしれないので
(既に試されているかもしれませんが)
フィルタを全て外して一番単純な状態でエンコードしてみる。
別なプラグイン出力に変えてみる。「例:拡張x264出力(GUI)Ex→拡張AVI出力plusなど」
別なエンコード設定に変えてみる。「例:2pass→1passに変える」
などで正常にバッチが動作するか試してみて下さい。
>Aviutl 1.0 の ReadMeに記載されているコマンドラインとの
>違いについて教えていただけないでしょうか。
質問ありがとうございます。
Aviutl内蔵コマンドラインオプションとAviutl controlプラグインの違いについてですが、やれる事についてはどちらを使っても似たような事は出来るので大きな違いはありません。
この記事ではVBスクリプト『.vbs』のサンプルを解説していますが、もちろん、バッチファイル『.bat』を作成してコマンドラインを実行する事も出来ます。
細かな違いとしてはAviutl v1.00から増えたバッチ出力リスト絡みのコマンドラインオプションが違います。
何らかの目的でAviutlにバッチ登録だけしたい場合や、出力プラグインを使わない2pass処理などで使えるかと思います。
また、Aviutl controlプラグインでは出力プラグインの指定、プロファイルの保存が出来る所が違いますが、使わないのであれば内蔵コマンドラインオプションで事足ります。
機能的に違うのはそれ位だと思うのですが、昔からAviutl controlプラグインの方がコマンドラインオプションが充実していた流れで、ネット上に参考となるVBスクリプトやバッチファイルが沢山アップされおり、解説サイトも多いので、皆さんAviutl controlプラグインを使う感じですね。
もし、記事に間違った部分があればコメントでツッコミを入れて下さい。
後、ゲームでは別なHNでプレイしているので、何処かでryuunさんを見かけても別人です。
isai V30+ (2017 au版LGV35)
Fire HD8+(2020 64GB版)
iPad mini5 (2019 Wi-fi 256GB版)
iPad mini6 (2021 セルラー 256GB版)
→ 詳細は別リンク
10 | 2024/11 | 12 |
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 |
▼GreenmanGaming(GMG)
▼GAMERSGATE(GG) (米国)
▼GAMERSGATE(GG) (英国)
▼YUplay(ロシア)
▼GameStop
▼Origin(日本)
▼Amazon(日本)
▼The Humble Bundle(THWS)
▼Indie Royale
▼The Indie gala
▼BUNDLE STARS.COM
▼groupees