はじめに
スポーツの実況中継などで、画面の隅っこに解説者の顔が映っているような映像ってありますよね。ここでは、そんな実況中継のように、動画の中に動画を表示する方法をメモします。
※FFmpegの基本的な使い方については動画処理の定番ツール「FFmpeg」ことはじめもご参考ください
準備
合成に利用する動画を用意し、それぞれ特定の時間帯だけを取り出したり、大きさを調整したりします。
動画を用意する
はじめに、合成するための動画を用意します。
このメモでは、YouTubeより以下の2つの動画を拝借することにします。
- 試合の動画 (2014 Clemson vs Ohio State-Orange Bowl Football Game)
- 解説者の動画 (Giraffe eating from a thorny acacia tree)
試合の動画を合成用に加工する
今回拝借した動画は3時間以上あるので、その中から10秒だけ取り出します。
ffmpeg -i football.mp4 -ss 1040 -t 10 football_trimmed.mp4
- -ss 開始秒数
- -t 切り取る秒数
試合の動画は加工後こんな感じになりました。
解説者の動画を加工する
こちらもひとまず10秒だけ取り出します。
ffmpeg -i giraffe.mp4 -ss 24 -t 10 giraffe_trimmed.mp4
次に、画面の一部分を切り取ります。(できるだけ顔が大きく映るよう)
ffmpeg -i giraffe_trimmed.mp4 -vf crop=x=222:y=78:w=732:h=542 giraffe_cropped.mp4
- xとy 切り取るハコの左上の座標
- wとh 切り取るハコの大きさ
さらに、サイズを調整します。(解説者窓にしては大きすぎるので)
ffmpeg -i giraffe_cropped.mp4 -s 350x260 giraffe_resized.mp4
解説者の動画は加工後こんな感じになりました。
合成
さて、準備ができたらあとは1コマンド叩くだけ。
合成!
ffmpeg -i football_trimmed.mp4 -vf "movie=giraffe_resized.mp4[inner]; [in][inner] overlay=910:440 [out]" combined.mp4
- overlay 動画を挿入する位置(解説者映像の左上の座標)
以上にてこのような動画が出来上がります。