2016年6月3日金曜日

FFmpegでムービーファイルをH265形式に変換するスクリプト

FFmpegをダウンロードして、コマンドラインで「ffmpeg.exe -i C:\movie\h264.mp4 -vcodec libx265 C:\movie\h265\h264_変換済み.mp4」などと入力すれば、手持ちのムービーファイルをh265形式に変換することができ、画質を維持してファイルサイズを半分以下にすることができます。
しかし1ファイルごとにコマンド入力するのは面倒です。
ドラッグ&ドロップで実行できるようにするスクリプトを作成しました。
<job>
<script>
fs = new ActiveXObject('Scripting.FileSystemObject')
shell = new ActiveXObject('WScript.Shell')
ffmpeg = fs.GetParentFolderName(WScript.ScriptFullName)+'\\ffmpeg.exe'
// WScript.Echo(ffmpeg)
arg = WScript.Arguments
if(!arg.length){
WScript.Echo('変換するファイルをD&Dしてください')
WScript.Quit()
}
fun = function(str){return str.indexOf(' ')>0 ? ('"'+str+'"') : str}
path_h265 = fs.GetParentFolderName(arg(0))+'\\h265'
if(!fs.FolderExists(path_h265)){ fs.createFolder(path_h265) }
for(i=0,L=arg.length;i<L;i++){
path = arg(i)
pathOut = path_h265+'\\'+fs.GetBaseName(path)+'.mp4'
shell.run(ffmpeg+' -i '+fun(path)+' -vcodec libx265 '+fun(pathOut), 1, true)
}
</script>
</job>


※2016/06/14 追記…この記事作成当時は、手持ちの動画ファイルをいくつかh265形式にしてみて「画質の劣化は無いように見える」と感じましたが、その後いくつか変換したら明らかに画質が低下したものが多数ありました。。劣化がないと確認する前に変換前のファイルを削除するのは危険です!……わたしは50GB分くらいやってしまいました orz


FFmpegは以下赤枠の場所からダウンロードしてください。ご自身が使用しているWindowsが32bitか64bitか不明な場合は32bitの方にしておけば大丈夫です。



ダウンロードしたファイルを展開して「bin」フォルダ内に上記スクリプトファイルを作成します。



スクリプトファイルにムービーファイルをドロップすると、こんな感じの画面が表示されます。
※ファイルごとに変換レートはかなりバラつきますが、CPU:i5-4590のPCではこんな感じです。。



こんなにサイズが変わります。



スマホの画面で見ているので画質の違いは分かりません。(拡大して厳密に比較してようやく分かる程度の違いはあるのかもしれませんが、私はそこまで繊細な感覚を持っていません。。)

とりあえず、FFmpegによるh265形式への変換は十分実用レベルにあると思います。

0 件のコメント:

コメントを投稿