見出し画像

サッカー俯瞰撮影ファイル加工(5)4つの動画をダッシュボードっぽくする

前々々々回前々々回前々回前回と経て、4つの動画が用意できました。今日は、この4つを並べて、ひとつの動画にしてみます。

完成形は、こちら。

並べたから何だ?と聞かれると困るのですが、とりあえず、コンピュータっぽいのを作りたかったので、一応、目的は達成しているのではないか、と思うのです。

ffmpeg -i out_movie.mp4 
    -i out_compare.mp4 
    -i out_histogram.mp4 
    -i out_negative.mp4 
    -filter_complex "[0:v][1:v][2:v][3:v]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0[v]" 
    -map "[v]" 
    -vcodec libx264 
    -crf 23 最終的な動画.mp4

4つの動画を、どの位置に配置するのか、というのは、「左上、右上、左下、右下」という順番に並べれば良いだけなので、いつでも入れ替え可能です。

これまで見てきたことを、全部バッチ処理としてまとめて、「パイプライン」というのを作って、そこに、撮影終了した俯瞰動画をドラッグ&ドロップすると、全部の処理が完了する、というものを、最後に紹介します。

ダウンロードしてインストールしたFFMPEGのフォルダ内に、別途ダウンロードしてきたExifToolを配置します。また、ImageMagickもインストールして、パスを通しておきます。

そして、「俯瞰撮影処理.bat」というファイルの中身を、このようにしておきます。

@echo off

REM 過去の余計なファイルを消す
del /S /Q out_movie.mp4
del /S /Q temp1_interval
del /S /Q temp2_compare
del /S /Q temp3_negative
del /S /Q temp4_histogram
del out_compare.mp4
del out_histogram.mp4
del out_negative.mp4
del out_final.mp4



REM 60倍速動画を作る
ffmpeg -i %~xn1 -vf setpts=PTS/64.0 -af atempo=64.0 out_movie.mp4


REM 1分に6枚のペースで静止画像を抜き出してくる
ffmpeg -i %~xn1 -vf fps=1/10 -q:v 1 -f image2 temp1_interval\%%06d.png


REM 残像動画の素材画像を作る
copy temp1_interval\000001.png temp2_compare\000000.png
cd temp1_interval
for %%f in (*.png) do (
  echo %%f
  magick composite -dissolve 25%%x75%% ..\temp2_compare\000000.png %%f ..\temp2_compare\%%f
  copy ..\temp2_compare\%%f ..\temp2_compare\000000.png
)
cd ../temp2_compare
del 000000.png


REM 線だけが残る感じの動画の素材画像を作る
cd ../temp1_interval
for %%f in (*.png) do (
  echo %%f
  magick convert %%f -edge 0 -negate ..\temp3_negative\%%f
)



REM ヒストグラム動画の素材画像を作る
cd ../temp1_interval
for %%f in (*.png) do (
  echo %%f
  magick convert %%f  histogram:..\temp4_histogram\%%f
  magick convert   -resize 1920x1080! ..\temp4_histogram\%%f ..\temp4_histogram\%%f
)


cd ..
REM ヒストグラムに張り付けるメタデータを作る
exiftool.exe -s  -filename -filesize -CreateDate -Duration -ImageSize -AvgBitrate %~xn1 > out_meta.txt


REM 素材画像をまとめて動画にしていく
ffmpeg -r 6 -i temp2_compare\%%06d.png -vcodec libx264 -pix_fmt yuv420p -r 30 out_compare.mp4
ffmpeg -r 6 -i temp3_negative\%%06d.png -vcodec libx264 -pix_fmt yuv420p -r 30 out_negative.mp4
ffmpeg -r 6 -i temp4_histogram\%%06d.png  -filter_complex "drawtext=fontsize=40:fontfile=/path/to/fontfile:textfile=out_meta.txt:fontcolor=white:x=(w-text_w)/2:y=(h-text_h-line_h)/2" -vcodec libx264 -pix_fmt yuv420p -r 30 out_histogram.mp4
ffmpeg -i out_movie.mp4 -i out_compare.mp4 -i out_histogram.mp4 -i out_negative.mp4 -filter_complex "[0:v][1:v][2:v][3:v]xstack=inputs=4:layout=0_0|w0_0|0_h0|w0_h0[v]" -map "[v]" -vcodec libx264 -crf 23 out_%~xn1


REM 使うかどうか知らないけど、サムネイルも作っておく
ffmpeg -i out_%~xn1 -vf thumbnail=1000,scale=1280:670 -frames:v 1 out_thumbnail.png


pause

そして、撮影してきた動画を、このフォルダ内にいったん置き、次に、その動画を「俯瞰撮影処理.bat」の上にドラッグ&ドロップします。

今まで見てきた処理を、地道に進めてくれて、15分の動画だと、うちの中レベルのWin10マシンで、だいたい5分10秒で全ての処理が終わり、こんな感じになります。

「20190720-125200001.MP4」というのが、ドラッグ&ドロップした動画ファイルなので、最終的な動画が「out_20190720-125200001.MP4」というものです。

最終的な動画のファイルサイズも、50MBくらいなので、容量も問題ないようです。

あとは、こちらで紹介しているように、当日の天気、試合会場の地図、などと一緒に、1ページにまとめておけば、なんとなく、記念になるはずです。


俯瞰撮影に関することは、こちらをご覧ください。


この記事が気に入ったらサポートをしてみませんか?