透過部分だけに色を付ける

Replace transparent pixels (alpha) with black in ffmpeg? – Stack Overflowより、透過情報のある画像、または映像に透過部分を別の色に変えて透過情報を消すコマンド。

透過部分に映る色をcolor=blackで指定するか、FFFFFF形式の RGB で指定する。
ffmpeg -i in.png -filter_complex "color=black,format=rgb24[c];[c][0]scale2ref[c][i];[c][i]overlay=format=auto:shortest=1,setsar=1" out.png
ffmpeg -i in.png -filter_complex "color=000000,format=rgb24[c];[c][0]scale2ref[c][i];[c][i]overlay=format=auto:shortest=1,setsar=1" out.png

映像、音声情報を映像に表示する graphmonitor, agraphmonitor

ffmpeg 4.1 から使えるフィルタ。フィルタ間のフレーム数、時間、解像度、フォーマット、フレームレートを映像に表示するgraphmonitor, agraphmonitorフィルタの使い方。文字の描写にdrawtextフィルタを使わないので、fontconfig 関係のライブラリが不要。出力フォーマットは rgba になるのでoverlayフィルタを使うと透過して下の映像が映る。

基本コマンド

ffplay -i input -vf graphmonitor=s=hd720:o=0.9:m=full:f=queue
ffplay -i input -vf graphmonitor

公式ドキュメント:FFmpeg Filters Documentation : graphmonitor, agraphmonitor

Continue reading “映像、音声情報を映像に表示する graphmonitor, agraphmonitor”

解像度が一致しなくても映像を並べられる xstack

ffmpeg 4.1から使えるフィルタ。overlay, stackフィルタを合わせたようなxstackフィルタの使い方。解像度が異なっていても使えるのが特徴で、上下左右にも映像の上にも重ねられる。重なる順番は1入力から順に上に重なる。余白部分は1入力が YUV なら [0:0:0] の濃い緑、RGB なら [0:0:0] の黒になり、フレームレートが一致しないと小さい方に合わされる。解像度が異なる複数画像を並べるのに便利。余白部分の色はfill指定できるようになった

overlayフィルタのように映像の上に重ねることもできるが、透過情報は引き継げないのできれいに色が抜けない。overlayフィルタよりも処理が早いので透過させないならこちらの方がよいが、overlay_opencl, overlay_qsvが使えるのならその限りではない。

Continue reading “解像度が一致しなくても映像を並べられる xstack”

2018年10月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。

全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。

2018年9月25日から2018年10月1日までの間、ログイン不要で生放送が見られるようになっているのでいつも以上に来場者数が多くなっている。

【10/1更新】【ニコニコ生放送】来場者数集計方法変更のお知らせ|ニコニコインフォ

Continue reading “2018年10月のニコ生統計”

ffmpeg で動画にロゴ画像を追加し透過させる

具体的にはoverlayフィルタを使って画像を映像の上に載せるが、そのままだと画像が透過しないのでformatフィルタでアルファチャンネルを追加し、lutyuvフィルタで透過具合を指定する。画像が動画よりも縦横のどちらかの解像度が超えている場合は予めリサイズするか、フィルタで小さくする。

ロゴ画像がアニメGIF、アニメPNGの場合は、-ignore_loop 0を入力ファイルの前に付ける。

プレビュー例。
ffmpeg -re -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -an -f sdl -

透過64でオーバーレイ、big buck bunny

アニメGIFの場合。
ffmpeg -re -i movie.mp4 -ignore_loop 0 -i input.gif -filter_complex [1]format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -an -f sdl -

動画で出力。
ffmpeg -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -c:a copy output.mp4

画像を半分にリサイズする。
ffmpeg -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]scale=iw/2:ih/2,format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -c:a copy output.mp4

左上を基準で半分にクロップする。
ffmpeg -i movie.mp4 -loop 1 -i input.jpg -filter_complex [1]crop=iw/2:ih/2:0:0,format=yuva420p,lutyuv=a=64,[0]overlay=x=10:y=20 -c:a copy output.mp4

Adding GIF as Watermark and Loop FFMPEG – Stack Overflow

ffmpeg 4.1 リリース

2019年7月9日 4.1.4 がリリースされた。更新が空いたので 4.2 が来るかと思ったがまだ 4.1 系列のリリースとなった。アップデート内容は修正ばかりで新しいフィルタは入ってない。

Changelog: update – ffmpeg.git/commitdiff
git.videolan.org Git – ffmpeg.git/shortlog : n4.1.4

Continue reading “ffmpeg 4.1 リリース”

2018年9月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。

全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。

2018年9月25日から2018年10月1日までの間、ログイン不要で生放送が見られるようになっているのでいつも以上に来場者数が多くなっている。

【10/1更新】【ニコニコ生放送】来場者数集計方法変更のお知らせ|ニコニコインフォ

Continue reading “2018年9月のニコ生統計”

2018年8月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。

全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。

Continue reading “2018年8月のニコ生統計”

2018年7月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。

全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。

Continue reading “2018年7月のニコ生統計”