透過のテキストはできるが透過の動画は overlay フィルタだけを使って動画を重ねても透過にならないので、blend フィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイして blend の average で同じ映像同士の平均は同じというのを利用する。透過する映像の位置は overlay フィルタで指定する。前回記事の「ffmpeg で差分動画を作る」と同じように「:c0_opacity=.5」と等とすることで透過具合を変更することもできる。
追記 2015/01/15
識別子の c が表示されていなかったので c0 に変更した。
関連記事
- ffmpeg で差分動画を作る
- 【ffmpeg】 比較動画の作り方
- trim フィルタの使い方
- Windows の ffmpeg で生放送する方法 : overlay
- ffmpeg で動画にロゴ画像を追加し透過させる
コマンドサンプル
- 左上に縦横半分にした透過映像を配置(背景の動画をフルカラーに)
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"
どうも、いつも参考になる記事をありがとうございます。
動画にロゴを挿入して挿入したロゴだけを透過させるということは可能でしょうか?
イメージ的にはAvidmuxのフィルタ機能、ロゴを追加のような感じです。
ググってもたどりつけなかったので、もしよろしければ記事にしていただけたらと思います。
誠に身勝手ではありますがよろしくお願いいたします。