透過のテキストはできるが透過の動画はoverlayフィルタだけを使って動画を重ねても透過にならないので、blendフィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイしてblendaverageで同じ映像同士の平均は同じというのを利用する。透過する映像の位置は 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 output

    動画はbig buck bunny
  • 左上に縦横半分にした透過映像を配置(透過する動画をフルカラーに)
    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 output

    透過する動画をフルカラー
  • 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 output
  • 音声を左右に割り振る場合(フィルタに取り入れるので音声のコピーはできない)
    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" output

One thought on “ffmpeg を使って透過したオーバーレイ動画を作る”

  • まりりん

    どうも、いつも参考になる記事をありがとうございます。

    動画にロゴを挿入して挿入したロゴだけを透過させるということは可能でしょうか?

    イメージ的にはAvidmuxのフィルタ機能、ロゴを追加のような感じです。

    ググってもたどりつけなかったので、もしよろしければ記事にしていただけたらと思います。

    誠に身勝手ではありますがよろしくお願いいたします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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