映像、音声情報を映像に表示する 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 フィルタの使い方。解像度が異なっていても使えるのが特徴で、上下左右にも映像の上にも重ねられる。余白部分は YUV なら [0:0:0] の緑、RGB なら [0:0:0] の黒になり、フレームレートが一致しないと小さい方に合わされる。

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

Windows の ffmpeg で生放送する方法 : overlay
Windows の ffmpeg で生放送する方法 : stack
qsv 対応の ffmpeg をつくる : 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 フィルタで透過具合を指定する。画像が動画よりも縦横のどちらかの解像度が超えている場合は予めリサイズするか、フィルタで小さくする。

Windows の ffmpeg で生放送する方法 : lutyuv
Windows の ffmpeg で生放送する方法 : overlay
Windows の ffmpeg で生放送する方法 : scale
Windows の ffmpeg で生放送する方法 : crop
ffmpeg を使って透過したオーバーレイ動画を作る

プレビュー例
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 -

動画で出力
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

ffmpeg 4.1 リリース

2018年11月6日に ffmpeg 4.1 al-Khwarizmi(フワーリズミー) がリリースされた。今回のリリースはメジャーアップデートとなり、セキュリティ対応や 4.0 以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。今回は AV1 パーサlibdav1d による AV1 デコーダ
(4.2 以降)
AV1 のビットストリームフィルタlibaomenc による AV1 エンコーダの tile サポートlibxavs2 による AVS2 エンコーダなど新しいコーデックの新機能が追加されている。

libdav1d による AV1 デコーダは 4.2 以降だったので訂正した。

前回記事
ffmpeg 4.0 リリース

RELEASE NOTES for FFmpeg 4.1 “al-Khwarizmi”

4.0 以降に取り込まれた機能の一覧
Changelog 4.0 to 4.1 < git.videolan.org Git

言及し忘れていたが configure の速度が大幅に向上している。

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月のニコ生統計”

フレームがインターレースかどうかを調べる idet

入力フレームがインターレース、プログレッシブ、トップフィールドファースト(tff)、ボトムフィールドファースト(bff) のどれであるかを調べる idet(interlace detect type) フィルタの使い方。また、隣り合うフレーム間で重複するフィールド(テレシネのサイン)も調べられる。

Continue reading “フレームがインターレースかどうかを調べる idet”

文字を描写する drawtext

文字を直接コマンドに記述したり、ファイルを読み込んで描写する drawtext フィルタの使い方。現在のところ絵文字には対応していない。文字を動かしたり、表示非表示の切り替えや、内容を変更したり、色を変えたり出来る。ただし映像の途中に拡大縮小は出来ないので ass, subtitles フィルタを使って字幕を動かす方法をとる。

外部ライブラリフィルタなので別途インストールが必要である。基本となる –enable-libfreetype、font 設定に必要な –enable-libfontconfig。アラビア文字で右から左描写には –enable-libfribidi が必要。

ass の字幕ファイルを動画に焼き付ける ass
字幕ファイルを動画に焼き付ける subtitles

テキスト描写にはフォント描写の知識がないとオプションの意味が分かりにくい。

Continue reading “文字を描写する drawtext”