矩形部分の YUV, RGB の値を表示する pixscope

ffmpeg 3.4 から追加のフィルタ。矩形部分の YUV, RGB の平均値と最小値、最大値、RMS と矩形の拡大も表示されるpixscopeフィルタの使い方。

基本コマンド

映像中央の縦横7ピクセルを調べて、統計グラフを右下に表示する
ffmpeg -i input -vf pixscope=x=0.5:y=0.5:w=7:h=7:o=0.5:wx=-1:wy=-1 output
ffmpeg -i input -vf pixscope=0.5:0.5:7:7:0.5:-1:-1 output
ffplay -i input -vf pixscope=0.5:0.5:7:7:0.5:-1:-1

pixscope フィルタの表示例

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

Continue reading “矩形部分の YUV, RGB の値を表示する pixscope”

フリッカー(ちらつき) を低減する deflicker

ffmpeg 3.4 から追加のフィルタ。蛍光灯や昔の映像で数フレーム毎に明るくなったり暗くなったりするのを前後フレームから平均してちらつきを抑えるdeflickerフィルタの使い方。

基本コマンド

5フレーム前から輝度の平均が始まる
ffmpeg -i input -vf deflicker=s=5:m=0:bypass=0 output
ffplay -i input -vf deflicker=5:0:0

小数点以下3桁までで丸めるのでs=2:m=6を併用してsignalstatsフィルタの6桁よりログサイズを小さくするのにも使える。
ffprobe -v error -f lavfi -i movie=iput.mp4,deflicker=2:6:1,signalstats -select_streams v:0 -show_entries packet=pts_time -show_entries packet_tags=lavfi.deflicker.luminance,lavfi.signalstats.YAVG -of csv=print_section=0 > deflicker.luminance.csv

YUV のデータを数値で表示する signalstats

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

Continue reading “フリッカー(ちらつき) を低減する deflicker”

2017年8月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。2017年8月24日(34週目)からユーザー生放送の新配信での予約延長が無料になり総配信数が減っている。

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

フィルタで手軽にリミッテッドレンジに出来る limiter

ffmpeg 3.4 から追加のフィルタ。各チャンネルの上限と下限を越えたらその上限と下限でカットするlimiterフィルタの使い方。今まではlutフィルタでも同様のことが出来たが、こちらのフィルタの方がコードの量も少なく直感的でわかりやすい。

SafeColorLimiter – Doom9’s Forum

Continue reading “フィルタで手軽にリミッテッドレンジに出来る limiter”

2ファイル入力するフィルタの挙動設定 framesync

一部のフィルタで設定できる動画時間が異なるファイルの挙動設定を行うframesyncの設定方法。以前は個別のフィルタ毎に設定していたがこれのおかげで設定内容が統一された。

記事にしているフィルタ。

Continue reading “2ファイル入力するフィルタの挙動設定 framesync”

2017年7月のニコ生統計

集計期間は週間のニコ生統計の1ヶ月分である。2015年の1月の2週目から取得漏れの R-18 放送を含めて Vita API で取得し始めたのでそれ以前と比べて取得放送数が増えている。

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

ニコ生新配信、TSのビットレートと解像度が改善される

2017年7月13日のメンテナンスで ニコ生の新配信と録画方法についてで当初言及していたタイムシフトが一般会員と同じ低画質になる問題は改善され、映像と音声の合計平均ビットレートが 1Mbps 程度になり、配信解像度は生放送と同じ 800×450 になった。ただし rtmpdump で表示されるメタデータは 320×240 で正しくない。

【7/13更新】新配信番組のタイムシフト画質を改善|ニコニコインフォ

関連記事
新配信で4:3映像に余白をつけて800×450配信にする
N を使わない新しいニコ生用の rtmpdump と ffmpeg(librtmp)
タイムシフトから新配信かどうかを調べる

タイムシフトから新配信かどうかを調べる

新配信かどうかを API などから情報を得ることが出来ず、生放送中なら視聴ページにアクセスすると live2.nicovideo.jp ドメインにリダイレクトされる。またタイムシフト期間なら放送を見て画質の悪さか,タイトル、タグからでしか新配信と判断できなかったがリダイレクトの仕様が通常配信と異なるのでこれを利用する。

以下の形式でタイムシフトにアクセスする
http://live2.nicovideo.jp/watch/lv番号

するとホストが live.nicovideo.jp に変わり新配信では gate にリダイレクトされ、通常配信では watch にリダイレクトされる。

18の周波数帯に分けてゲインを調整する superequalizer

ffmpeg 3.4 から追加のフィルタ。compandフィルタのように特定の音量を調整するのではなく、特定周波数の音量を上げたり下げたり出来るsuperequalizerフィルタの使い方。

周波数毎の音量を視覚的に見るにはshowspectrumpフィルタやshowspectrumpicフィルタを使うとわかりやすい。

音声波形を表示する showspectrum, showwaves の使い方
不可逆圧縮された音声のカットされた周波数が調べられる showspectrumpic

基本コマンド

以下のコマンドでは音量は変化しない。
ffmpeg -i input -af superequalizer=1b=1:2b=1:3b=1:4b=1:5b=1:6b=1:7b=1:8b=1:9b=1:10b=1:11b=1:12b=1:13b=1:14b=1:15b=1:16b=1:17b=1:18b=1 -c:v copy output
ffplay -i input -af superequalizer=1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1

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

Continue reading “18の周波数帯に分けてゲインを調整する superequalizer”