2016年12月25日日曜日

ffmpeg.exe のH.265を手軽に使うDOSバッチの「ffmpeg5sEnc.bat」の作成

 以前、勢いに任せて「ffmpeg.exeを手っ取り早く簡単手軽に使うためのファイル同期風フロントエンドVBスクリプト【Ffmpesync ver.1】 」を作ったのですが、それから二年以上経過しました。
 今年の半ばから保存用のAviutlによるメインエンコーダーをH.264からH.265に切り替え、画質はほぼ同等でファイルサイズと処理時間のどちらも減少させることに成功しています。
 先日久々にFfmpesync を動かす機会がありまして、「そーいやこれもH.265にする必要あるかな~ぃゃもう二年前と動画の運用方法変わってるからぶっちゃけココまでの必要ないんだよな。でも手軽に大きな動画ファイルをH.265で小さくしたいな」 と言う欲求が生まれまして仕事休みにチマチマと作ってみました。
 想定は「おっきな録画ファイルを気軽に手っ取り早くスマホで見れるようにそれなり画質で小さくしたい時に使用」と言ったところでしょうか。 とは言え処理時間はCPU i7-6700kでもx0.5~x2速と結構かかります。
 大量のファイルを連続で変換したい場合は「call ffmpeg5sEnc.bat "エンコード元ファイル名"」 など記述した一覧バッチを実行してやればOK。
 ffmpeg5sEnc.batは程々画質の圧縮率優先で画質28解像度1280x720の固定としてるので、高画質高解像度にするなら中のパラメータを変えてみてください。でわでわ~ノシ

@echo off
rem 2016/12/23 ffmpeg5sEnc.bat
rem   H.265エンコードサポートバッチファイル
rem   エンコード済みファイルは指定パスにファイル名.mkvで出力
rem
rem 実行環境
rem   http://ffmpeg.org/download.html より
rem     ffmpegのwindows-buildを入手して当バッチと同じ場所に展開しておく。
rem
rem IN
rem   ファイル名
rem Ex.
rem   call ffmpeg5sEnc.bat "エンコード元ファイル名"
rem                     ※"で囲うのはファイル名切れ防止"
rem
rem 内部記述
rem  BATFILE 実行パス ※原則変更しないでください
rem  INPFILE 入力ファイル名 ※原則変更しないでください
rem  FFMPEXE FFMPEG.EXE フルパス ※原則変更しないでください
rem
rem  FFMP265 H.265 エンコードパラメータ
rem            ex.動画品質の変更 -crf 28 >>>  -crf 24
rem            ex.縦横サイズ変更 -s 1280x720 >>> -s 1920x1080
rem  OUTFILE 出力ファイル名
rem            ex.出力先の変更  "C:\!work\%~nx1.mkv"  >>> "C:\Users\username\Videos\%~nx1.mkv"
rem
rem 注意
rem  ファイルにANSI以外の文字や画像が入ってる場合は動かない可能性があります。
rem  該当文字や画像を削除または変更して再実行してみてください、。
rem
rem おまけ
rem  -crf 28 画質ちょい落ちるけどファイルサイズ小
rem  -crf 24 画質イイけどファイルサイズ増
rem  -s 1280x720 より 1920x1080 はファイルサイズ増
rem
rem  一括処理実行リストファイル作成時使用のリストファイル取得コマンド例
rem ex. dir d:\@yb\*2560*.mp4 /o-s /b > mp4.bat

rem ****ffmpeg h.265パラメータ****
SET BATFILE=%~dp0
SET INPFILE="%~f1"
SET FFMPEXE=%BATFILE%ffmpeg -i
SET FFMP265=-c:v libx265 -preset medium -crf 28 -s 1280x720 -c:a aac -b:a 128k
SET OUTFILE="C:\!work\%~nx1.mkv"

rem ****ffmpeg h.265エンコード実行****
%FFMPEXE% %INPFILE% %FFMP265% %OUTFILE%

0 件のコメント:

コメントを投稿