※GIFのみ入っているフォルダを対象としています。
まずはffmpegをダウンロードしましょう。
例えば以下のサイトであればビルド済みのものが手に入ります。(releaseなどの下のリンク)
必要なのはbinフォルダ内にあるffmpeg.exeだけなので任意フォルダに解凍して保存します。
https://www.gyan.dev/ffmpeg/builds/
次に、メモ帳を開いて以下をすべてコピーして
先ほどダウンロードしたffmpegと同じフォルダに "あなたの好みの名前.vbs" で保存してください。
なお、初期設定ではデスクトップにファイルが保存されます。
一番上にあるsaveFolderの部分をC:\Videos\など適宜打ち替えてください。
rem 最終出力するフォルダ名を入力してください(末尾は必ず\で)-----
Dim saveFolder
saveFolder = "%systemdrive%\Users\%username%\Desktop\"
rem ffmpegのコマンドです--------------------------------------------
Dim ffmpegArgments,encoderArgments,destExtension
ffmpegArgments = "-movflags faststart -pix_fmt yuv420p -vf ""scale=trunc(iw/2)*2:trunc(ih/2)*2"""
encoderArgments = "-vcodec libx265 -preset slow -crf 24"
destExtension = "mp4"
rem ここから下は多分変更しなくていいです--------------------------
Dim arg,fso,folder,wshell,thisfolder,file
arg=WScript.Arguments(0)
Set fso= CreateObject("Scripting.FileSystemObject")
Set folder = fso.getFolder(arg)
Set wshell = CreateObject("WScript.Shell")
thisFolder = fso.getParentFolderName(WScript.ScriptFullName)
For Each file in folder.files
str = thisFolder & "\ffmpeg.exe -i " & file.Path & " " & _
ffmpegArgments & " " & _
encoderArgments & " " & _
saveFolder & fso.GetbaseName(file) & destExtension
wshell.run str,true,true
Next
Set folder = Nothing
Set fso = Nothing
Set wshell = Nothing
保存したvbsファイルに、gifが入ったフォルダをドラッグ&ドロップすることで saveFolderにmp4ファイルに変換して保存されます。
また、Sendtoフォルダにショートカットを入れることで、フォルダを右クリックから送るで変換出来ます。
sendtoフォルダはwindowsキーとRを同時押しして、 Shell:sendto と入力してEnterを押下することで開けます。
初期設定では x265のslowプリセットで変換を行っているため、速度を重視する場合は上の方にあるencoderArgmentsを
encoderArgments = "-vcodec libx265 -preset fast -crf 24"
などとしてください。
h264で出力したい場合は
encoderArgments = "-vcodec libx264 -preset fast -crf 24"
などで対応します。