以前のブログで【便利】コマンドラインツールで超解像処理!静止画も動画も高画質にという内容で書いていました。
uepon.hatenadiary.com
PowerShellやcmdの補完機能があるとはいえ、コマンドラインでの実行では打ち込みが多いので結構大変です。こんなときにはバッチファイル(.bat)などを使用することで入力の負担は軽減できるのですが…自分にはバッチファイルを作る知識があまりないので、このときの内容をバッチファイル化を通して作り方を学び直したいと思います。
元になる処理
今回は、以下のような処理を考えます。この処理では低画質mp4動画ファイルをフレーム分割、高画質化の処理を行い、それを結合しつつ、元の動画ファイルの音声を結合するといった処理になっています。
PS> mkdir img
PS> mkdir hires
PS> .\ffmpeg.exe -i .\640×480_サンプル動画.mp4 -q:v 1 .\img\%06d.png
PS> .\realesrgan-ncnn-vulkan.exe -i img -o hires -n realesrgan-x4plus
PS> .\ffmpeg.exe -i .\hires\%06d.png -i .\640×480_サンプル動画.mp4 .\output.mp4
このときは各処理の実行ファイルパス上で作業を行っていたのですが、できれば環境変数PATH
に実行ファイルのパスを追加しておくことで、.\ffmpeg.exe
というような表記をffmpeg.exe
にする省力化もできると思います。今回はPATH
に追加したという前提で行います。
大まかな処理は先程説明しましたが、もう少し処理を詳細にしてみます。
- 低画質動画ファイルをフレームごとに分割するためのフォルダを作成します。(フォルダ名は指定する)
- 高画質化したフレーム画像を保存するフォルダを作成します。(フォルダ名は指定する)
- ffmpeg.exeを使用して指定した動画ファイルからフレーム毎の静止画(.pngファイル)を先程のフォルダへ保存を行う(動画ファイルは指定する)
- realesrgan-ncnn-vulkan.exeを使用して、先程の静止画ファイルをそれぞれ高画質化する。※
- ffmpeg.exeを使用して、高画質化したフレーム画像使用して動画を構成する。(出力ファイル名は指定する)
※realesrgan-ncnn-vulkan.exeは作業ファイルをフォルダ指定できるのでかなり簡単に書くことができます。
続きを読む