動機
GoProで4K動画を撮ったものの、iPhoneに送ってみると再生・編集ができない。
何かいい手はないものかと調べた結果、ffmpegを使って1080pに変換するのがいいのではないかと考えました。
ついでに手振れがひどかったので、vibstabの手振れ補正をかけました。
環境
OS: Windows10 Pro
CPU: 64bitプロセッサ
準備
ffmpegのホームページのDownloadから Windows builds を選択、CPUにあったstaticのビルドをダウンロードして、適当なフォルダに解凍して入れます。
解凍した中にあるff-prompt.batファイルを起動すると、binにパスの通ったプロンプトが使えて便利です。
適当なフォルダにGoPro動画を入れておきます。
ffmpeg
一気に処理させるために下記のようなワンライナーを考えました。
> FOR /F "tokens=*" %G IN ('dir /b *.mp4') DO (ffmpeg -i "%G" -vf vidstabdetect -an -f null - & ffmpeg -i "%G" -vf "vidstabtransform,scale=1920:1080" -vcodec libx264 -acodec copy -crf 18 -tune film -preset slow "1080p-stab-%G")
dir /b *.mp4
でmp4ファイルの入力リストを作って、FOR /F "tokens=*" %G
で%Gにわりあて、ffmpegのインプットとします。
ffmpegでは、まず手振れの解析を行います。
ffmpeg -i "%G" -vf vidstabdetect -an -f null -
の部分でtransforms.trf
ファイルを生成し、
ffmpeg -i "%G" -vf "vidstabtransform,scale=1920:1080" -vcodec libx264 -acodec copy -crf 18 -tune film -preset slow "1080p-stab-%G"
で手振れ補正しつつ画面サイズを小さくしています。
-vf "vidstabtransform,scale=1920:1080"
フィルタにvidstabtransformと1080p変換を指定
-vcodec libx264
x264コーデックを指定
-acodec copy
オーディオはなにもいじらない
-crf 18 -tune film -preset slow
このあたりはお好みで
"1080p-stab-%G"
出力ファイル名の指定。ここではファイル名の頭に 1080p-stab-
を付けるようにしています。
後は放っておくだけ!
個人の感想ですが、デフォルト設定でも手振れがかなり抑えられ、満足のいく結果だと思いました。
さて、iPhoneにはどうやって入れようか...
有線が使えないため、iCloud Drive経由でファイル1つ1つダウンロードしています...