ffmpegのフィルタの中には効果を与えるのに期間(区間)、以上、未満、毎の時間の条件をつけることができるものがある。これらをつけられるのはffmpeg -filters
で調べたときにTと表示されるフィルタである。
ffmpeg -filters using Gyan ffmpeg
関連フィルタにsendcmd、asendcmd
のコマンド対応がある。こちらは任意の時間の他にパラメータも任意に変更できる。
任意に時間や、効果を変えられるsendcmd、asendcmdフィルタの使い方
niconicoとffmpegのことを中心に書いてる
ffmpegのフィルタの中には効果を与えるのに期間(区間)、以上、未満、毎の時間の条件をつけることができるものがある。これらをつけられるのはffmpeg -filters
で調べたときにTと表示されるフィルタである。
ffmpeg -filters using Gyan ffmpeg
関連フィルタにsendcmd、asendcmd
のコマンド対応がある。こちらは任意の時間の他にパラメータも任意に変更できる。
任意に時間や、効果を変えられるsendcmd、asendcmdフィルタの使い方
scale
フィルタと同じようにリサイズ出来るフィルタだが、それとは別にspline16, spline36などの高品質のリサイズやHDRに対応している。ただしspline16, spline36はscale
フィルタで設定できるオプションと比べ処理が速くないのでリアルタイムエンコード、つまり配信用途なら処理が遅くても問題ない。2022年3月4日のコミットでスライススレッドに対応しscaleフィルタと同程度に速くなった。scale
フィルタと違ってインターレース保持のリサイズは出来ない。HDRからSDRに変換するときはtonemap
フィルタでトーンマッピングする。
外部ライブラリなので別途インストールする。
配布先:sekrit-twc/zimg: Scaling, colorspace conversion, and dithering library
配布先:the-sekrit-twc / zimg — Bitbucket(こちらで更新している)
集計期間は週間のニコ生統計の9月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。
RGBをトーンカーブで色調調整ができるcurves
フィルタの使い方。ペイントツールで同時に表示されるヒストグラムはhistogram
フィルタで表示できるが、Photoshopのようなメリハリの付いたグラフではなくてGIMPに近い感じになる。またPhotoshopのトーンカーブプリセットファイルのACVが読み込める。
ffmpeg 3.0 から使えるフィルタ。RGB を個別に明るくしたり暗くしたりできるフィルタにcolorbalance
があるが、このselectivecolor
フィルタは RGB だけではなく CMYK にも対して明るくしたり、暗くしたり、他の色を混ぜたり出来る。ただし RGB を CMYK 形式に変換しての保存はできない。
Adobe Photoshop の 特定色域の選択ツールに似ていて、Photoshop の .asv が読み込める。具体的にどのようなことができるかは「photoshop 特定色域の選択(bing)」で検索するといろいろ見つかる。
Windows の ffmpeg で生放送する方法 : colorbalance
色のオプションは4つまでスペースを挟んで指定でき、順番に CMYK(cyan, magenta, yellow, key plate)の色を混ぜることが出来る。出力カラーフォーマットは bgr0 になる。使い方は調整したい色を指定し、4つの引数で順番に CMYK の混ぜたい色の割合を指定する。
緑の部分にシアンを50%増して黄を33%減らし、青の部分にマジェンタを27%増す
ffplay input -vf "selectivecolor=greens=0.5 0 -0.33 0:blues=0 0.27"
MySelectiveColorPresets フォルダにある Misty.asv を読み込む
バイナリデータなのでテキストエディタでは編集できない。サンプルファイル
ffplay input -vf "selectivecolor=psfile=MySelectiveColorPresets/Misty.asv"
PCから高画質ゲーム配信(外部ツール配信)をするには – ツイキャス
高画質ゲーム配信ができるアカウント
高画質配信ができるアカウントは全て、高画質ゲーム配信ができます。
レベル24以上のユーザーは高画質(ゲーム)配信できます。
高画質配信へのお申込みはこちらです。(企業・団体さま・アーティストさま向け)
高画質配信ができるユーザーから招待を受けると、高画質(ゲーム配信)ができるようになります。
記事にあるように“高画質ゲーム配信“であり、高画質ウェブカメ雑談配信は対象になっていない。
配信はPCのブラウザからは RTMP のストリーミングで、iOS などのモバイル端末は HLS の再エンコード映像として配信されている。
配信の録画には RTMP ではまず以下にアクセスして
http://twitcasting.tv/streamserver.php?mode=view&appid=TCViewerFlash&rtmp=1&target=ユーザーID
以下のようなレスポンスが有り
edge101.moi.st/publisher/123456789-123456789012345.stream?is_publisher=0:1935:GET :ユーザーID:123456789
rtmpdump では以下のコマンドで録画できる
rtmpdump -r rtmp://edge101.moi.st/publisher/123456789-123456789012345.stream -y publisher/123456789-123456789012345.stream?is_publisher=0 -y ユーザーID -o output.flv
ffmpeg では
ffmpeg -i "rtmp://edge101.moi.st/publisher/123456789-123456789012345.stream app=publisher/123456789-123456789012345.stream?is_publisher=0 playpath=ユーザーID" -c copy output.flv
ffmpeg 2.8.1 が2015年10月14日リリースされた。今回のアップデートは修正が主で最新gitで公開されている新規のフィルタは追加されていない。
Update for 2.8.1 : git.videolan.org Git – ffmpeg.git/blobdiff – Changelog
master で公開されているフィルタはこちらから
git.videolan.org Git – ffmpeg.git/blob – Changelog
extrastereo filter ocr filter alimiter filter stereowiden filter stereotools filter rubberband filter tremolo filter agate filter chromakey filter maskedmerge filter displace filter selectivecolor filter
この中で既に書いているのが、
stereowidenWindows の ffmpeg で生放送する方法 : stereowiden(立体音響化)
rubberbandサンプリング周波数を変えずにテンポとピッチを変える rubberband
chromakeyffmpeg でクロマキー合成 その2
maskedmergeマスクして2入力を合わせる maskedmerge
別途ライブラリが必要な ocr は学習させないと日本語がほとんど読み取れないので日本語での実用性はかなり低い。selectivecolor は次回更新予定。
今まではテンポ(再生速度)を変えるにはatempo
フィルタを、ピッチ(高低)を変えるにはasetrate
フィルタを使っていたが、rubberband
フィルタはasetrate
フィルタで変わる周波数を変えずにピッチとテンポを変えることができ、atempo
フィルタよりも品質がよい場合がある。
rubberband
フィルタは別途ライブラリをインストールしないと使えないのと、現在は 64bit に未対応である。
標準フィルタを使う場合。
映像と音声の pts を扱う setpts, asetpts
ピッチを任意の周波数に変更するasetrate
3入力目をマスクにして、1入力目の映像と2入力目の映像をマスクに合わせて出力する。マスクをどの程度指定するかで1入力目と2入力目の割合を指定できる。アルファチャンネルを追加するalphamerge
フィルタと負荷は変わらない。
別ファイルの情報から元映像を透過させる alphamerge
マスクの各チャンネル(YUVA、RGBAなど)の値から1、2入力に対応したチャンネルがブレンド、またはスルーされ、スルーされるときは1入力目がそのまま出力される。3入力目の各チャンネルのピクセル値が0ならば1入力目を、255(8bit)ならば2入力目が出力させる。既定値は1、2入力がブレンドされる。アルファチャンネルは0が完全透過になる。
マスクの指定には別ファイルを使う方法と、フィルタを当てて各チャンネルを調整する方法とがある。各チャンネルを調整にはlut
フィルタが使いやすい。別ファイルを使う場合にはモノクロ映像を使うことでその部分にだけフィルタを当てるのが手軽になる。
chromakey
フィルタは指定した色の部分が透過した YUVA で出力し透過した部分にオーバーレイして別の映像を映すのに使う。バージョンは3.0 以降から使える。
RGBA で処理するcolorkey
はこちら:ffmpeg でクロマキー合成
colorkey
と基本的には同じ。
ffmpeg -i input1 -i input2 -filter_complex [1:v]chromakey=red:.03:.1[1v];[0:v][1v]overlay output
ffmpeg -i input1 -i input2 -filter_complex [1:v]chromakey=0xff0000:.03:.1[1v];[0:v][1v]overlay output