透過のテキストはできるが透過の動画は overlay フィルタだけを使って動画を重ねても透過にならないので、blend フィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイして blend の average で同じ映像同士の平均は同じというのを利用する。透過する映像の位置は overlay フィルタで指定する。前回記事の「ffmpeg で差分動画を作る」と同じように「:c0_opacity=.5」と等とすることで透過具合を変更することもできる。

追記 2015/01/15
識別子の c が表示されていなかったので c0 に変更した。

関連記事

コマンドサンプル

  • 左上に縦横半分にした透過映像を配置(背景の動画をフルカラーに)
    • ffplay -f lavfi "movie=left,scale=iw/2:ih/2[a];movie=right,split[b][c0];[b][a]overlay[ba];[c0][ba]blend=c0_mode=average"
    • ffmpeg -i left -i right -filter_complex "[0:0]scale=iw/2:ih/2[a];[1:0]split[b][c0];[b][a]overlay[ba];[c0][ba]blend=c0_mode=average" -acodec copy
      背景の動画をフルカラー
  • 左上に縦横半分にした透過映像を配置(透過する動画をフルカラーに)
    • ffplay -f lavfi "movie=left,scale=iw/2:ih/2[a];movie=right,split[b][c0];[b][a]overlay[ba];[ba][c0]blend=c0_mode=average"
    • ffmpeg -i left -i right -filter_complex "[0:0]scale=iw/2:ih/2[a];[1:0]split[b][c0];[b][a]overlay[ba];[ba][c0]blend=c0_mode=average" -acodec copy
      透過する動画をフルカラー
  • right の音声を使う場合(既定値は最初に入力した left)
    • ffplay -f lavfi "movie=left,scale=iw/2:ih/2[a];movie=right,split[b][c0];[b][a]overlay[ba];[ba][c0]blend=c0_mode=average[out0];amovie=left[out1]"
    • ffmpeg -i left -i right -filter_complex "[0:0]scale=iw/2:ih/2[a];[1:0]split[b][c0];[b][a]overlay[ba];[ba][c0]blend=c0_mode=average" -map 1:1 -acodec copy
  • 音声を左右に割り振る場合(フィルタに取り入れるので音声のコピーはできない)
    • ffplay -f lavfi "movie=left,scale=iw/2:ih/2[a];movie=right,split[b][c0];[b][a]overlay[ba];[ba][c0]blend=c0_mode=average[out0];amovie=left,pan=stereo|c0=c0+c1[a];amovie=right,pan=stereo|c1=c0+c1[b];[a][b]amix[out1]"
    • ffmpeg -i left -i right -filter_complex "[0:0]scale=iw/2:ih/2[a];[1:0]split[b][c0];[b][a]overlay[ba];[ba][c0]blend=c0_mode=average;[0:1]pan=stereo|c0=c0+c1[a];[1:1]pan=stereo|c1=c0+c1[b];[a][b]amix"

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)