TS半自動エンコードバッチをPowerShellで作り直しました

以前作成したTS半自動エンコードバッチは、ファイル名に「&(半角アンド)」があると動作しなかったり、局名に「 (半角スペース)」があるとCMカットができなかったりと、ファイル名まわりに問題がありました。対処しようかと思いましたが、今さらバッチファイルの仕様に振り回されるのも嫌だったので、勉強を兼ねてPowerShellスクリプトで作り直してみました。

前提条件

スクリプトを使用するには、以下のソフトが動作する環境が整っている必要があります。各ソフトのインストール方法などは、以下の記事を参照してください。

スクリプト

TS半自動エンコードスクリプトです。メモ帳などに貼り付け、拡張子を「ps1」にして適当に名前を付けて保存してください。

機能

スクリプトにTSファイル(複数可)を渡すと、以下の処理を自動で実施します。

  1. TsSplitterを使用して、不要なサービスを削除します。
  2. DGIndexを使用して、映像(d2v)と音声(aac)に分離し、
    AviSynthスクリプトファイル(avs)を作成します。
  3. FakeAacWavを使用して、音声(aac)を疑似wavに変換します。
  4. logoGuilloを使用して、CMカット用フレームリストを作成します。


ここまでをスクリプトが行います。これ以降のカット編集やフィルタの設定、エンコードなどの作業は、AviUtlを使用して手動で行ってください。

環境設定

使用前に環境設定を行う必要があります。以下を環境に合わせて設定してください。

  • 出力先フォルダ
  • 「TsSplitter.exe」のパス
  • 「DGIndex.exe」のパス
  • AVSテンプレートのパス
  • 「fawcl.exe」のパス
  • logoGuillo関連の設定
  • ロゴデータ(.lgd)とロゴ検出パラメータ(.param)の格納フォルダ


オプションはお好みで設定してください。

使い方

PowerShellスクリプトは、バッチのようにダブルクリックしただけでは動作しません。以下の手順でショートカットを作成してください。

  1. スクリプト(xxxxx.ps1)へのショートカットを作成します。
  2. ショートカットのプロパティを開き、リンク先を以下のように設定します。
    「powershell -File “スクリプトのパス”」
  3. ショートカットにTSファイルをドラッグ&ドロップすると、処理が始まります。
  4. スクリプトの実行が無効になっている場合は、PowerShellを管理者権限で起動し、以下のコマンドで実行ポリシーを変更してください。
    「Set-ExecutionPolicy RemoteSigned」
  5. 右クリックの「送る」登録する場合は、エクスプローラで「shell:sendto」を開き、SendToフォルダにショートカットを入れてください。

バッチ版との機能差分

  • ファイル名に半角記号があっても誤動作しないようになったはず。
  • DGIndexの進捗状況が表示されなくなりました。特に不便も感じないのでそのまま。
  • TS分割時に最も大きいTSファイル以外は削除する場合に、削除するファイル名とサイズを表示するようにしました。
  • 最も大きいTSの半分以上のサイズのTSを残すオプションを追加しました。番組途中でPMT情報が変わる場合の対策。

おまけ

TsSplitterで付与されたファイル名(「_HD-2」とか「_CS1(325)」など)を除去するためのスクリプトです。エンコード完了後、できあがったMP4ファイルに対して使用してください。使用方法はTS半自動エンコードスクリプトと同じです。

使用上の注意

  • 基本的に自分で使用するためのものなので、バグがある可能性が多々あります。
  • お約束ですが、これらのファイルの使用により発生したいかなる損害についても、作者は一切の責任を負いません。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA