2016年5月23日月曜日

Aviutl + x264guiEx で作成したMP4の音声LRを入れ替えるDOSバッチプログラムを呼び出すVBスクリプト「mp4LRrv.vbs」

 で、目的は達したのですが、使い勝手からいえば全く未完成なわけです。音声の左右を入れ替える旅のDOS窓あけてコマンドポチポチなんてあり得ませんっ!
 と言うわけで、ファイルをドラッグ&ドロップ(複数選択可)するだけで「mp4LRrv.bat」を実行できるようなフロントエンドスクリプトを作ります。
 で、最初は勉強がてらJavaスクリプトでつくってみよーかなーと思いましたが結局思っただけで、過去【Ffmpesync ver.1】 ffmpeg.exeを手っ取り早く簡単手軽に使うためのファイル同期風フロントエンドVBスクリプト 【まとめ】で培ったノウハウ使って手っ取り早く作っちまお~だって42型60fpsで過去アニメ堪能したいんだもんもんって学習意欲なくなってるなー
 でサクッとこんな感じになりました。 青い部分をメモ帳とかに張り付けて「mp4LRrv.vbs」としてC:\GPAC\に保存してください。ショートカットをデスクトップに置いとけば便利かも。 これで音声を左右正しくしてから視聴ができるっ。これにて完了!

'***mp4LRrv.vbs (C)是々録画 http://zezerokuga.blogspot.jp/
'***2016/5/22 Update
'
'処理概要
'・Aviutl + x264guiEx で作成したMP4の音声LRを入れ替える。
'・
'・処理条件
'・C:\GPAC フォルダに以下をセットアップ
'
'・mp4LRrv.vbs
'  本VBスクリプト。ドラッグ&ドロップされたファイル名をmp4LRrv.batに渡す。複数可能。フォルダは未対応
'
'・mp4LRrv.bat
'  mp4box.exe 、sox.exe 、neroAacDec.exe を使用した音声左右入れ替えパッチ
'
'・mp4box.exe
'  MP4box を各サイトからダウンロードする : ニコニコ動画研究所
'  http://looooooooop.blog35.fc2.com/blog-entry-707.html
'
'・sox.exe
'  Wavステレオ音声を左右入れ替える・Wavステレオ音声を片方モノラルにする(Soxを使って) : アキのサイト
'  http://www.xucker.jpn.org/pc/sox_swap.html
'
'・neroAacEnc.exe , neroAacDec.exe
'  ヘッダーつけてみた - 徒然雑記帳++
'  http://d.hatena.ne.jp/EternalDestiny/20080412
'
'・予め作っておくフォルダ
'  C:\!work\ 作業フォルダ
'  C:\!video\ 出力フォルダ
'  ※C:\GPAC\ 、C:\!work\ 、C:\!video\ は mp4LRrv.bat 内に記載箇所あり。変更可能
' 
'・追記 Windows10セットアップ直後の状態発生(x64を入れて解消)
'  『MSVCR100.DLL が見つからなかったため、アプリケーションを開始できませんでした。』解決メモAdd
'  http://d.hatena.ne.jp/yasuhallabo/20111105/1320504409
'
'・IN
'  処理するファイルを選択してドラッグ&ドロップ
'
'・OUT 
'  音声の左右を入替えた映像を完成パスに作成
'
'################################################
Option Explicit

'***'各オブジェクト取得
Dim oWSSHEL , oWSFSO , oWARGU

'実行シェル
Set oWSSHEL = WScript.CreateObject("WScript.Shell")

'フォルダ・ファイル操作
Set oWSFSO = WScript.CreateObject("Scripting.FileSystemObject")

'パラメータ処理ファイル用
Set oWARGU = WScript.Arguments

'***'メイン処理

Dim sVbsPath , sBatPath ,sRunBat
Dim iPos , cDC
cDC = Chr(34) ' ”ダブルコーテーション

'実行vbsファイルのパス取得
sVbsPath = oWSFSO.GetParentFolderName( WScript.Scriptfullname )

'LRrvの実行パスファイル取得
sBatPath = oWSFSO.BuildPath( sVbsPath , "mp4LRrv.bat" )

If oWSFSO.FileExists(sBatPath) = true Then
For iPos = 0 to oWARGU.count  - 1
'メイン実行
sRunBat = sBatPath & " " & cDC  & oWARGU.item( iPos )  & cDC 

Call oWSSHEL.Run( sRunBat , 1 , true )
Next

sRunBat = oWARGU.count & "件 処理が完了しました"
Else
sRunBat = sBatPath & "が無いので処理が行えません。設置してください"
End if


Call WScript.Echo( sRunBat  )


Set oWSSHEL = Nothing
Set oWSFSO = Nothing
Set oWARGU = Nothing

Wscript.Quit


0 件のコメント:

コメントを投稿