複数のtsファイルを一括エンコードできるバッチを作成してみた

| コメント(19) | トラックバック(0)
以前にtsファイルのエンコードを自動化するバッチファイルを作成しました。
(→過去エントリ
aviutlのバッチ機能を使えば、手間はかかるものの複数ファイルの連続エンコードは一応できていましたが、基本的には一度に1つしかエンコード処理できないものでした。
PT3を用いて快適録画環境を再構築したことで、録画番組数が非常に多くなり、週に20番組以上録画するようになった結果、今までのバッチファイルでは処理効率が非常に悪かったので改めてバッチファイルを作り直しました。

これにより、複数ファイル(最大9つまで)を一度にエンコード準備、エンコード、そして無劣化カット編集ができるようになりました。
せっかく作ったので欲しい方は使ってみて下さい。

ts00-0.png

☆ファイルはこちらからどうぞ。→ DL

使い方の説明です。
詳しい使い方は同梱のreadme.txtにも書いてありますので一度目を通して下さい。

  1. エンコードしたいtsファイルを、同梱の"tsエンコード.bat"にドラッグアンドドロップします。
    もし、複数ファイル(最大9個)を一括処理したい場合には、下図のようにまとめてドラッグアンドドロップしてください。

    ts00.png

  2. ドラッグアンドドロップすると処理対象一覧が表示され、処理を開始するか確認します。
    一覧を確認し、問題なければ"y"と入力して下さい。
    なお、バッチファイルに複数ファイルをまとめてドラッグアンドドロップした場合、取り込まれる順番がファイル名順ではないようなので、強制名前順ソートを行なっています。

    ts01.png

  3. 音ズレを防止するための.d2vファイルと音声のaac→wav変換が行われます。
    リストの上から順に自動で処理されていきますので、しばらくお待ちください。

    ts02.png

  4. .d2vファイルと.wavファイルの準備が終わると、下図のように画面の色が変わります。
    次はCMカット作業になりますが、これは人の手で行います。
    エンターキーを押すとaviutlが起動し、リストの1番目のファイルが自動で読み込まれますので、CMカット作業を行なって下さい。

    ts03.png

    ファイルが1件であればそのままエンコードを行えばいいのですが、複数ある場合にはaviutlのバッチ処理機能を使って一括エンコードすることをおすすめします。
    "保存"ではなく"バッチ登録"をクリックすることにより、バッチリストに追加されます。

    ts03-2.png

    処理が完了したら、そのままaviutlを閉じて下さい。
    複数ファイルある場合には、自動で次のファイルを新たにaviutlで開きます。

  5. 全てのファイルの処理が終わると、再度処理を行うか確認する画面が表示されます。
    もしも間違って処理を行わずにaviutlを閉じてしまったときなどは、ここから再処理が行えます。
    また、バッチリストに登録をしただけでまだエンコードしていない場合には、"y"と入力することでaviutlの単体起動を行います。
    ファイル→バッチ出力 を選び、"開始"をクリックすることでバッチリストに登録されたファイルの連続エンコードが始まりますので、終わるまで気長にお待ちください。

    ts04.png

  6. 5番の処理で問題がなければ"n"と入力することで、次の処理「無劣化tsファイル カット編集」に進みます。
    これは元のtsファイルを残したい場合に、無劣化でカット編集を行える機能です。
    特にtsファイルを残すつもりがなければ"n"と入力し処理をスキップして下さい。
    "y"と入力した場合にはmurdoccutというアプリが起動します。
    左側ウィンドウでGET GOPを実行した後、編集したいファイルをダブルクリックすると右画面に表示されますので、CMカット等を行ってtsファイルを再出力してください。

  7. すべての処理が完了後、作業ファイル(.d2vや.wavの他に、無劣化カット編集時に生成されるlogファイル等)の削除を行います。
    作業ファイルは消さずに残すこともできますが、特に理由がなければ"y"と入力し削除を行なって下さい。

  8. 作業ファイルの削除の次は原本であるtsファイルの削除を行います。
    不要なら"y"と入力し削除して下さい。

---------------

以上が使い方です。
次に、使う上での注意点です。

まず、バッチで処理中には様々な作業ファイルが作成され、最後に前述の7番の処理で削除されます。
初期値では一番最初に読み込むtsファイルと同じ場所に作業ファイルを作成しますが、あとで消すとはいえ一時的に余分なファイルが作成されごちゃごちゃしてしまいます。
また、もしNAS上のtsファイルだった場合には、NAS上のデータを参照しながらNAS上に作業ファイルを作成することになるため、レスポンスの低下が懸念されます。
バッチファイルの15行目を変更することで作業フォルダの場所を自由に変更できるようになっていますので、必要に応じて書き換えてみて下さい。

次に、最低限のエンコードができるよう同梱している、最小セットのaviutlについてです。
同梱しているファイルだけでmp4への変換は可能なはずですが、aviutlは結構環境に依存したりします。
そのため、もし既にaviutlをダウンロードして使っているのであれば、本バッチファイルで使用するaviutlも同じ物を使うことをおすすめします。
バッチファイルの17行目を変更することで使用するaviutl.exeを変更できますので、適宜変えて下さい。
また、aviutlでファイル読み込みエラーが発生した場合の対処方法について、いくつかreadme.txtにご紹介してありますのでそちらもご覧ください。


なぜ最大同時処理数が9ファイルかというのは、Windowsのコマンドプロンプトで取り扱える引数の数が10個(うち1つは予約済み)となっているためです。
フォルダをドラッグアンドドロップすることで、フォルダの中身を全て連続エンコードするというバッチにすることも出来たのですが、私の録画環境ではTVRockで録画したtsファイルを全て同一ファルダに保存するような運用をしていますので、フォルダごと一括処理するというシーンがないためこのような形となりました。

正しく使って、よい録画&エンコードライフを!!

Add Social Services

トラックバック(0)

トラックバックURL: http://www.kitcat.jp/mt/mt-tb.cgi/455

コメント(19)

天才!

自分の環境だけかもしれないのですが、tsファイルをD&Dで処理datファイルに入れたところ"入力ファイルの拡張子は.tsでなければなりません。 処理を中断します。 Press Enter to Exit..."と出て進めません。
しかし、どうにかしてできないかといろいろ試した結果、tsファイルを右クリックをし、"プログラムから開く"で処理datを選択するとうまくできるのですが、これではこのソフトの醍醐味の複数ファイルのエンコードができないため、ちょっと困っています。なにか原因等ありますでしょうか?

>>匿名さん
>自分の環境だけかもしれないのですが、tsファイルをD&Dで処理datファイルに入れたところ"入力ファイルの拡張子は.tsでなければなりません。 処理を中断します。 Press Enter to Exit..."と出て進めません。

私も同じ事象が発生しましたが、拡張子が正常に取得できないことが原因のようです。
ファイル名に「全角スペース」が入っていませんか?
私はファイル名から全角スペースを削除(リネーム)することで本事象が解消しました。

管理人です。最近blogチェックを怠って返信が遅くなってしまい申し訳ありません。

複数ドラッグ&ドロップされた場合でも、1個目の入力ファイルの拡張子だけチェックを行なっており、それが.tsでない場合は匿名さんのおっしゃる通りのエラー画面となります。
マイコンピューター等を開き、ツール→フォルダーオプション→表示タブ から「登録されている拡張子は表示しない」のチェックを外し、拡張子が本当に.tsであるか確認してみてください。
(Windows Vista以降はALTキーを押さないと「ツール」が出てこないかもしれません)

ファイル名やファイルパスに全角・半角スペースが入っていても問題なく動作するように作成してあるつもりですが、それでもダメなようであれば、バッチファイルを右クリック→編集で開き、24行目をまるごと削除してしまってください。
エラーチェックをしなくなるため間違ったファイルを投入してしまってもエラー表示になりませんが、とりあえず使える環境になるかと思います。

2013.04.20 追記 ----------
どうやら原因は「全角スペース」で間違いないようです。
「バッチ 全角スペース」などでググるといろいろと出てきます…。有名な仕様のようです。
ファイルパスに全角スペースを含み、かつ半角スペースを含まない時限定で発生する模様。
根本的な対応のためにはかなり作り変えないといけないので、簡単な対応として
 tsファイルを半角スペースを含むパスに保存する
 (たとえば D:\ts files\hogehoge.ts 等)
で、回避出来ます。
私の環境ではフォルダ名に半角スペースを含んでいたため、気が付きませんでした…。

最近PT3を買ったため、今いろいろと録画環境の構築をしております。
その中で、PT3を買う前からこのファイルを利用させていただこうと考えており、今日ようやくDLし使ってみたのですが、灰色の画面になりその後aviutlを起動する所でファイル形式(おそらく.d2v)に対応していないという旨のエラーが出てしまいます。
過去エントリでも同じエラーの話が出ていたし、ググったりもしていろいろ試してみたのですがうまくいきません。
難しい話だとは思いますが、なにか少しでもアドバイスがあればよろしくお願いします。

すいません、なんとか自己解決することができました(汗)
最大画像サイズを1920x1088にするのと、DGNPGDecの優先順位を1番上に持ってくることでできるようになりました。

こんにちは。
便利なバッチファイルを作成して頂き、ありがとうございます。
さて当方でも「ファイルの読み込みに失敗しました。このファイル形式には対応していないか対応するコーデックやプラグインが登録されてません」とエラーを吐かれて困っていましたが、DGMPGDEC158のファイルをSSE対応版に差し替えることでエラーを吐かなくなりました。
参考になればと思い投稿いたします。
環境:Phenom2_X4_905e,Windows7-64bit

はじめまして。
このbatを便利に使わせていただいております。
当初「プラグインが登録されていません」に悩まされましたが、優先順位の変更でMpeg2を上げたら、動くようになりました。

現在別の問題が発生しております。
tsの冒頭のcmがsdサイズで、途中でHDに切り替わる動画です。
(さく0荘の開始前のCMがsdサイズのようです)

どうも、こちらの問題のようで、
http://bakatoenctopt2.blog58.fc2.com/blog-entry-16.html

解決策としては、dgindexで、手動で動画と音声を設定してやれば良いようなのです。
http://irium.blog5.fc2.com/blog-entry-959.html

こちらの以前のbatに、dgindexのマニュアル操作化の改造方法があったと思い、それと組み合わせて、今回のbatの改造を試みたのですが、どうもファイルをきちんと読めていないようで、空っぽのdgindexが立ち上がります。
もしできましたら、なにかご指南いただけませんでしょうか。
m( )m

このbatファイルでd2v作成を手動操作に変更する場合には、2箇所修正してみてください。

①238行目を
"%CURRENT_DIR%\[d2v生成]dgmpgdec158\DGIndex.exe" -i "%TARGET_TS%" > NUL
に直す。(-oから-exitまでを削除)

②239行目に次のコマンドを新規に追加。
MOVE /Y "%~dpn1.d2v" "%TEMP_DIR%" > NUL & DEL "%~dpn1 PID*DELAY*ms.aac" > NUL

[注:半角スペース部で自動改行されるので、そのままコピペしてください]

説明すると、①の部分で自動出力から手動出力に設定変更しています。
手動にすると、Save Projectでd2vを書き出す際の「名前を付けて保存」の画面で、初期値としてtsファイルと同じ場所が表示されます。
ここでは保存先の変更はせず、ファイル名もそのままで「OK」をクリックして保存してください。
このbatファイルでは、作業用のファイルがバッチ15行目で指定したフォルダ内に作成されることを前提としているので、いくつか対策方法はあるのですが、②で追加した処理で本来あるべき場所にd2vファイルを移動します。
ついでに②では作成される不要なファイルの削除も行います。

手元で試したところ、動作も問題ないようです。
私もさ○ら荘を録画していましたが、こちらでは特にお話の事象は発生せずふつーに処理できてました…。

管理人様、とても早いご指南をありがとうございます。
オプションの-iが抜けていた様です。
移動は考えておりませんでした。
とりあえず、コピーして、書き換えさせていただきました。
現在、別ファイルのエンコード中ですので、
今日中に試してみようと思います。
TmepgENCに比べると、aviutilでのx264圧縮は1.5~2倍自家がかかりますが、こちらのほうがなぜかしっくり来ますので、とても有り難く使わせていただいております。
0くら荘ですが、上記リンクの「ミジンコな日々」さんと全く同じく、MPCで再生できない、dgindexでエラーが起きるという状態で、おそらく症状は同じかと思います。
ドロップが全員起こるわけでは無いのですね。
うちは、PT2、bonーspinel使用、ケーブル受信なのですが…。
操作的には、音声と映像の設定に地雷が潜んでいそうにも思います。
ありがとうございました。

上記コメントの、Dgindexのエラーの件、解決しました。

わゆる「わかさトラップ」で、開始前CMと本編で解像度が変わるのが原因でした。
秋アニメですと
・さくら荘のペットな彼女
・ヨルムンガンド
・ジョジョの奇妙な冒険
・中二病でも恋がしたい
で発生例が報告されていました。

予定していた対策通り、真空波動研で調べたのですが、SD動画のナンバーしか出てきません。
使い方が悪いのか、CM終了後のHDへの切り替えを検知できていない模様?
結果として、せっかく頂いた改造batにドロップして、DGINDEXで手動設定しても、解像度がSDサイズで表示され、序盤で同じエラーで停止してしまいます。

いろいろ試しましたが、成功した対策は、
tssplitterで、「pmt情報で分割」で、hd動画を抜き出す方法
でした。

動画の長さが変わり、CM部分がカットされたtsになります。
このtsで、改造前のbatで問題なく処理出来ました。
後半一部を切り取ってエンコードしてみましたが、音ズレもほぼ無いようです。
管理人様の作成して下さった改良部分は結局無駄になってしまいました。申し訳ございません。
でも、おかげさまで、いろいろ試すことが出来て、解決出来ました。
ありがとうございます。
今後も、使わせて頂きたいと思います。

小技を発見しましたのでご参考まで。(貴スクリプトを部分的に使わさせてもらってます。多謝)
(1)forを使って引数すべてに順次同じ処理をする。in(繰り返し対象)で「%*」が使えます。

for %%t in (%*) do (
REM 引数チェック
IF /i NOT "%%~xt" EQU ".ts" ECHO 入力ファイルの拡張子は.tsでなければなりません。 & GOTO ERR_BATCH
IF NOT EXIST "%%t" ECHO 引数で指定されたファイルが存在しません。 & ECHO 変換したいファイルをバッチにD&Dしてください。 & GOTO ERR_BATCH
rem エンコード処理
bontsdemux -i "%%t" -encode "X264_HQ7" -nd -start -quit
)
(2)上記例で、ファイル名の拡張子を切り出すのに、「%%~x変数名」が使える! ダメ元で試したらOKでした。

一応出来たのですが(最後まで進む)、肝心のCMcutのfileはどこに有るのでしょうか?

頓珍漢な質問申し訳御座いませんでした。aviutlを使って.tsファイルを手動でCMカットする状況作る「バッチ」と云う事ですね。CM箇所も自動で見つけてカットしてくれると勘違いしていましたのでそのfileは何処に有るのかなと思った次第です。フレームではCMカット出来ていませんが現在「TSSniper」を使っています。

このバッチ作成時にAviutilを用いた自動CMカットを調べましたが、当時は見当たらず。
今あらためて調べてみると、いろいろな方が高機能な処理スクリプトを作られて公開されているようです。
当方のバッチは導入は簡単なもののCMカット等は手作業となるため、他の方が作成された自動CMカット付きのものを採用されるとよいかもしれません。

りどみを読んでどう設定しても、音ズレが起こってしまいます。
絵が遅れます。

自分のいままでの環境でDGIndex→aviutlで手作業でやると
音ズレはしません。なにが原因なのでしょうか?
★aviutlの出力設定もやりました。。。
ほかのサイトの自動エンコのもためしたがどれもうまくいかない。

バッチファイルでやっているのはd2vファイルとwavの生成、それをAviutlに渡しているだけなので、バッチファイルが生成したd2vファイル等(初期は%TEMP%内に生成)を使って手動でやってみてズレるようならDGIndex側の設定を、手動なら大丈夫であればaviutlの設定を疑ってみて、設定初期化等をしてみる…くらいでしょうか。
Aviutil以外は特に設定せずとも当方の環境で動作確認していますので、なんとも言えませんが…。

音ズレの件

どうしてもコンテナがmp4でなければイヤだというのでなければ、コーデックはMP4のままで、コンテナをmkvにすれば音ズレは解消されますよ。

mkvtoolnixをダウンロードして展開、その中のmkvtool,exeの場所を拡張x264ダイアログの mkvタブで指定、エンコ時のプラグイン出力で保存かバッチ登録の際の「ファイルの種類」で「mkv」を選べばコンテナがmkvになります。QSVでもやり方は同じです。

自分も音ズレに悩まされましたが、これで解決しました。

ありがとうございます!でも、tsファイルをmp4に変換する方法を探したいのですが、その方法がありますか?

コメントする

このブログ記事について

このページは、kitcatが2012年7月25日 21:16に書いたブログ記事です。

ひとつ前のブログ記事は「PSO2の複合型マグ育成時の注意点」です。

次のブログ記事は「メインPCの電源が突然死...交換完了。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。