トーンカーブで RGB の調整が出来る curves

RGBをトーンカーブで色調調整ができるcurvesフィルタの使い方。ペイントツールで同時に表示されるヒストグラムはhistogramフィルタで表示できるが、Photoshopのようなメリハリの付いたグラフではなくてGIMPに近い感じになる。またPhotoshopのトーンカーブプリセットファイルのACVが読み込める。

ffmpeg でヒストグラムを表示する

Continue reading “トーンカーブで RGB の調整が出来る curves”

RGB, CMYK を個別に調整できる selectivecolor

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"

公式ドキュメント:FFmpeg Filters Documentation : selectivecolor

Continue reading “RGB, CMYK を個別に調整できる selectivecolor”

ツイキャスの高画質配信の録画方法

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 リリース

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 は次回更新予定。

サンプリング周波数を変えずにテンポとピッチを変える rubberband

今まではテンポ(再生速度)を変えるにはatempoフィルタを、ピッチ(高低)を変えるにはasetrateフィルタを使っていたが、rubberbandフィルタはasetrateフィルタで変わる周波数を変えずにピッチとテンポを変えることができ、atempoフィルタよりも品質がよい場合がある

rubberbandフィルタは別途ライブラリをインストールしないと使えないのと、現在は 64bit に未対応である

標準フィルタを使う場合。
映像と音声の pts を扱う setpts, asetpts
ピッチを任意の周波数に変更するasetrate

Continue reading “サンプリング周波数を変えずにテンポとピッチを変える rubberband”

マスクして2入力を合わせる maskedmerge

3入力目をマスクにして、1入力目の映像と2入力目の映像をマスクに合わせて出力する。マスクをどの程度指定するかで1入力目と2入力目の割合を指定できる。アルファチャンネルを追加するalphamergeフィルタと負荷は変わらない。

別ファイルの情報から元映像を透過させる alphamerge

マスクの各チャンネル(YUVA、RGBAなど)の値から1、2入力に対応したチャンネルがブレンド、またはスルーされ、スルーされるときは1入力目がそのまま出力される。3入力目の各チャンネルのピクセル値が0ならば1入力目を、255(8bit)ならば2入力目が出力させる。既定値は1、2入力がブレンドされる。アルファチャンネルは0が完全透過になる。

マスクの指定には別ファイルを使う方法と、フィルタを当てて各チャンネルを調整する方法とがある。各チャンネルを調整にはlutフィルタが使いやすい。別ファイルを使う場合にはモノクロ映像を使うことでその部分にだけフィルタを当てるのが手軽になる。

Windows の ffmpeg で生放送する方法 : LUT(ルックアップテーブル)

Continue reading “マスクして2入力を合わせる maskedmerge”

ffmpeg でクロマキー合成 その2

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

公式ドキュメント:FFmpeg Filters Documentation : chromakey

Continue reading “ffmpeg でクロマキー合成 その2”

音声をベクトルスコープで表示する avectorscope

位相をベクタスコープで映像化するavectorscopeフィルタの使い方。表示する色の設定とフェードの色設定、リサジュー図形での描写が可能。出力フォーマットが rgba になるので背景部分が透過してoverlayフィルタを使ってかぶせることも容易にできる。

音声を位相メーターの映像に変換する aphasemeter

Continue reading “音声をベクトルスコープで表示する avectorscope”

2チャンネルの値を2次元で表示する vectorscope

histogramフィルタに含まれていたcolorオプションが個別のフィルタになった。出力フォーマットが GBRP、YUVA になるので背景部分が透過してoverlayフィルタを使ってかぶせることも容易にできる。透過させて表示するなら入力フォーマットにアルファチャンネルをあらかじめつけておく。

前回書いた記事:ffmpeg でヒストグラムを表示する

基本コマンド

ffmpeg -i input -vf vectorscope -c:a copy output
ffplay -i input -vf vectorscope=m=1:x=1:y=2:i=.04:e=0

vectorscope の表示例

公式ドキュメント:FFmpeg Filters Documentation : vectorscope

Continue reading “2チャンネルの値を2次元で表示する vectorscope”

ffmpeg で YUV, RGB波形を表示する waveform

histogramフィルタに含まれていたwaveformオプションが個別のフィルタになった。高ビット深度に対応。

前回書いた記事:ffmpeg でヒストグラムを表示する

Continue reading “ffmpeg で YUV, RGB波形を表示する waveform”