Ffmぺsync ver.1.0 ffmpeg.exeを手軽に使うためのファイル同期風フロントエンドVBスクリプト 本編
品質と縦横のプロシージャと続いたし、Ffmpeg.exeの実行文を生成する箇所も説明しとこうと思う。
ffmpesync.vbsの一千行を超えるコードは、全てコノ部分の為にあるとも言える。
ffmpesync.vbsではffmpeg.exe実行文を大きく四つに分けて取り扱っている。
①ffmpeg.exeパス ⇒ WScript.Scriptfullnameから取得
②元動画ファイルパス ⇒ 引数po1DogaオブジェクトのPathプロパティから取得
③出力先ファイルパス ⇒ 引数ps2Doga1より取得
④パラメータ(品質・縦横・音声・他) 引数piConvModeより、他は固定パラメータとして補完。
④を修正する事でビデオ系のパラメータを変更できる。 ネットに散在している情報を元に試行錯誤してみるのも面白いかもしれない。以下のコードは掲載コードではなく、コメント削除前のコードとなります。
'################################################
'ffmpeg.exe文 作成
'
'IN
' po1Doga ②元動画ファイル オブジェクト
' ps2Doga1 ③出力先動画ファイルパス
' piConvMode 変換モード
'
'Return
' ffmpeg.exe文 環境が整ってなければcNULL
'
Function sRunffmpeExe(po1Doga , ps2Doga1, piConvMode)
Dim sExePath , sffmpeExe , sffmpePSet , sffmpeRun , sffmpeCrf , sffmpeSiz
Dim sffmpeSet
'実行vbsファイルのパス取得
sExePath = oWSFSO.GetParentFolderName(WScript.Scriptfullname)
'①ffmpeの実行パスファイル取得
sffmpeExe = oWSFSO.BuildPath(sExePath , "ffmpeg.exe")
'品質値取得
sffmpeCrf = sGetConvertCrf(piConvMode)
'縦横値取得
sffmpeSiz = sGetConvertSiz(piConvMode)
'***④他パラメータの修正、追加はここを書き換える
sffmpeSet = " -coder 1 -refs 1 -flags +loop -partitions +parti4x4 -me_method hex -subq 1 -psy 0 -trellis 0 -8x8dct 0 -fast-pskip 1 -bf 3 -b-pyramid 2 -b_strategy 1 -direct-pred 1 -weightp 1 -weightb 1 -g 150 -keyint_min 1 -sc_threshold 40 -mbtree 0 -qcomp 1 "
'音声トラックのコピー処理はMP4のみ許可
If cFFMPEG_MP4 = Lcase(Right(po1Doga.Path , 4)) Then
sffmpeSet = sffmpeSet & " -vsync 2 -acodec copy "
End if
'ffmpe 実行文の生成
'一応、パラメータによる確認を含めておく
If oWSFSO.FileExists(sffmpeExe) and (sffmpeCrf <> cNULL) and (sffmpeSiz <> cNULL) Then
sffmpeRun = cDC & sffmpeExe & cDC & " -i " & cDC & po1Doga.Path & cDC & " -vcodec libx264 -crf " & sffmpeCrf & sGetConvertSizS(sffmpeSiz) & sffmpeSet & " -y " & cDC & ps2Doga1 & cDC
Else
sffmpeRun = cNULL
End if
sRunffmpeExe = sffmpeRun
End Function
'################################################
'サイズパラメータがあったら -s 付加
'
'IN
' psSiz サイズバラメータ
'
'Return
' 設定値があったら-sを前に付ける
'
Function sGetConvertSizS(psSiz)
Dim sSizS
sSizS = psSiz
If Len( Trim( sSizS ) ) > 0 Then
sSizS = " -s " & psSiz
End if
sGetConvertSizS = sSizS
End Function
'コードはここまで。以下は1ファイル投入時の実行ログ。投入動画から得た情報で各パラメータを決定し、Ffmpeg.exe文を生成して変換処理して、結果の判定まで記録している。
####開始#### #2014/04/03 9:24:42#
VBS実行パス:C:\Users\zeze\Desktop\ffmpesync1.vbs
"「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4" は MP4 ビデオ 。mp4 で、動画ファイルです。
0000 名前 「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4
0001 サイズ 75.8 MB
0002 項目の種類 MP4 ビデオ
0003 更新日時 2012/06/24 13:33
0004 作成日時 2012/06/24 13:33
0005 アクセス日時 2013/12/28 22:21
0006 属性 AI
0009 認識された種類 ビデオ
0010 所有者 PSO2\zeze
0011 分類 ビデオ
0019 評価 評価なし
0027 長さ 00:03:45
0028 ビット レート 149kbps
0029 保護 いいえ
0053 コンピューター PSO2 (このコンピューター)
0155 ファイル名 「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4
0173 共有 いいえ
0176 フォルダー名 #アニメいろばら
0177 フォルダーのパス A:\#アニメいろばら
0178 フォルダー #アニメいろばら (A:)
0180 パス A:\#アニメいろばら\「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4
0182 種類 MP4 ビデオ
0188 リンクの状態 未解決
0269 共有状態 非共有
0280 ビデオ圧縮 {34363248-0000-0010-8000-00AA00389B71}
0282 データ速度 2674kbps
0283 フレーム高 1080
0284 フレーム率 29 フレーム/秒
0285 フレーム幅 1920
0286 総ビット レート 2824kbps
処理(元)パス:A:\#アニメいろばら
出力(先)パス:C:\Users\zeze
処理ログパス:C:\Users\zeze\「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4.log
対象ファイル処理数計:1
1(未)処理ファイル数:1(75.83MB)
2(済)損壊ファイル数:※事前カウント対象外
3(済)小大ファイル数:0(0MB)⇒0%(0MB)
4(済)新旧ファイル数:0(0MB)⇒0%(0MB)
5(済)処理ファイル数:0(0MB)⇒0%(0MB)
- - - - - - - - -
処理済(345計)進捗率:0%
対象外ファイル数:0
検索フォルダ数:0
- - - - - - - - -
形式別カウント(計:1)
.mp4 :1
処理(元)ファイル名:A:\#アニメいろばら\「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4
サイズ:75.83MB
長さ(時間):00:03:45
データ速度:2674kbps
フレーム高:1080
フレーム率:29 フレーム/秒
フレーム幅:1920
エンコード品質:31 処理開始 ※中止はffmpegを『×閉じる』
No. 状態 (元)*パス/nファイル名 長さ(時間) 幅x高 ビットレート ファイルサイズ 更新日時 (済)パスファイル名 幅x高 ビットレート ファイルサイズ 更新日時 FFMpeg
0000-* A:\#アニメいろばら C:\Users\zeze
0000-1 未34-1280x720○20.47% 「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4 00:03:45 1920x1080 2674kbps 75.83MB 2012/06/24 13:33:44 C:\Users\zeze\「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4 1280x720 420kbps 15.53MB 2014/04/03 9:25:19
"C:\Users\zeze\Desktop\ffmpeg.exe" -i "A:\#アニメいろばら\「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4" -vcodec libx264 -crf 34 -s 1280x720 -coder 1 -refs 1 -flags +loop -partitions +parti4x4 -me_method hex -subq 1 -psy 0 -trellis 0 -8x8dct 0 -fast-pskip 1 -bf 3 -b-pyramid 2 -b_strategy 1 -direct-pred 1 -weightp 1 -weightb 1 -g 150 -keyint_min 1 -sc_threshold 40 -mbtree 0 -qcomp 1 -vsync 2 -acodec copy -y "C:\Users\zeze\「劇場版 BLOOD-C The Last Dark」PVロングバージョン.mp4"
対象ファイル処理位置:1
1(未)処理ファイル数:0(0MB)
2(済)損壊ファイル数:0(0MB)
3(済)小大ファイル数:0(0MB)⇒0%(0MB)
4(済)新旧ファイル数:0(0MB)⇒0%(0MB)
5(済)処理ファイル数:1(75.83MB)⇒20.47%(15.53MB)
- - - - - - - - -
処理済(345計)進捗率:100%
対象外ファイル数:0
検索フォルダ数:0
- - - - - - - - -
形式別カウント(計:1)
. :0
.mp4 :1
####終了#### #2014/04/03 9:25:19#