2017年1月1日日曜日

「ffmpeg5sEnc.bat」 を本保存用に、一手間かけて時間範囲指定追加。 ffmpeg5st.bat(修正) と ffmpeg5call.bat

 新年あけましておめでとうございます。今年もだらだらと録画ネタを中心に忘却録代わりに更新していこうと思います。

 去年の末に作った「ffmpeg5sEnc.bat」。自分的には結構な頻度で使ってまして、そうなると普段メインとしているAviutl+x265guiExと比べてしまうわけです。

 Aviutl+x265guiEx 利点)リサイズ・クリッピングなど細かい設定が可能で綺麗。 欠点)手間がかかる。
 ffmpeg5s.bat  利点)ドラッグ&ドロップで気軽に実行 欠点)細かい設定は手間。 音量の最大化手順どーしよ
 Aviutl+x265guiEx・ffmpeg5s.bat 画質は品質を揃えたらほぼ同じ

 上下左右のクリッピングと音量の最大化さえ割り切れば、あとは品質と連続実行で自分の中では割り切りOKな感じなんですよね。

 現状、アニメのエンコード環境はAviutl+x265guiEx 固定ですが、エンコードまでのバッチ処理の準備に結構時間かかるため、マシンが停止してる時間が結構あるんです。 対してドキュメンタリーなどはイチイチAviutl+x265guiEx を使うの手間だなーな感じになってまして結構大量なファイルがテラ単位でHDDの肥しになってましてイイ加減に掃除したいなと。
 仕事が正月休みに入ったため、「ffmpeg5sEnc.bat」をもう少し改良して手軽に保存用エンコードに使えないかと考えてみました。

 「ffmpeg5sEnc.bat」は圧縮優先品質28となってるため、何度か実行と確認を繰り返して品質24に。 それと前後のCM部分をカットできるように開始時間と終了時間でエンコード範囲を指定できるようにしました。 これによりドラッグ&ドロップで即実行とはいかなくなってます。


 実行環境は①ffmpeg.exe、②ffmpeg5call.bat、③ffmpeg5st.bat を全て同じフォルダに置きます。 

 それと動画ファイルのエンコード範囲(開始時刻・終了時刻)を調べるプレイヤーが必要ですね。 自分はVLCなど使ってます。 「ツール-メディア情報」のロケーションから再生ファイルのフルパスがコピペできるので、バッチファイルの更新にも便利です。

ffmpeg.exe http://ffmpeg.org/download.html よりffmpegのwindows-buildを入手してバッチと同じ場所に展開しておく。


ffmpeg5call.bat。。"ffmpeg5call.bat"で保存しておく。メインエンコードバッチの"ffmpeg5st.bat"を呼びます。バッチ実行中でも編集可能なので、実行しながらどんどん追加します。

 SET BP=%~dp0
 rem call %BP%ffmpeg5st.bat "エンコード元ファイル名" , 開始時刻 , 終了時刻

 ex.


ffmpeg5st.bat。"ffmpeg5st.bat"で保存しておく。

@echo off
rem 2016/12/31 ffmpeg5st.bat
rem 2016/1/1 2,3引数の存在チェックを追加
rem 
rem   H.265エンコードサポートバッチファイル
rem   エンコード済みファイルは指定パスにファイル名.mkvで出力
rem   開始~終了時刻の範囲エンコード 自分なりに実写モノ保存品質
rem 
rem 実行環境
rem   http://ffmpeg.org/download.html より
rem     ffmpegのwindows-buildを入手して当バッチと同じ場所に展開しておく。
rem 
rem IN
rem   ファイル名
rem Ex.
rem Ex.
rem   call ffmpeg5st.bat "エンコード元ファイル名" , 開始時刻 , 終了時刻
rem                     ※"で囲うのはファイル名切れ防止"
rem                     ※開始・終了時刻フォーマット 00:00:00 (省略だと全指定)
rem                     ※終了時刻のみ指定したい場合は、開始時刻に 0 を入れてください
rem 
rem 内部記述
rem  BATFILE 実行パス ※原則変更しないでください
rem  INPFILE 入力ファイル名 ※原則変更しないでください
rem  FFMPEXE FFMPEG.EXE フルパス ※原則変更しないでください
rem  STATIME 開始時刻 ※原則変更しないでください
rem  EMDTIME 終了時刻 ※原則変更しないでください
rem  FFMP265 H.265 エンコードパラメータ
rem  OUTFILE 出力ファイル名 ※存在するフォルダを指定
rem  
rem 注意
rem  ファイルにANSI以外の文字や画像が入ってる場合は動かない可能性があります。
rem  該当文字や画像を削除または変更して再実行してみてください、。  
rem  
rem ****ffmpeg h.265パラメータ****
SET BATFILE=%~dp0
SET INPFILE="%~f1"
SET FFMPEXE=%BATFILE%ffmpeg -i
SET FFMP265=-c:v libx265 -preset medium -crf 24 -s 1280x720 -c:a aac -b:a 128k
SET OUTFILE="C:\!video\%~nx1.mkv"

IF "%2" EQU "" (
    SET STATIME=%2
) ELSE (
    SET STATIME=-ss %2
)
IF "%3" EQU "" (
    SET EMDTIME=%3
) ELSE (
    SET EMDTIME=-to %3
)

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

0 件のコメント:

コメントを投稿