ビットストリームフィルタのまとめ

H.264、HEVC、VP9、AV1、Proresのビットストリームフィルタで色関係のまとめ。各コーデックで出力したときにcolor_range、color_primaries、color_trc、color_spaceの情報を書き込む。

What are bitstream filters in ffmpeg? – Stack Overflowより。

performs bitstream level modifications without performing decoding
デコードせずにビットストリームレベルの変更をする。

The only thing a parser does is change packet boundaries. A bitstream filter, on the other hand, is allowed to actually modify the data.
パーサーがすることは、パケットの境界を変更することだけ。一方、ビットストリームフィルタではデータを実際に変更することができる。

[FFmpeg-devel] Fwd: parser vs. demuxerより。

demuxer is the thing which takes a container (a single 1-D vector of bytes) and splits (demuxes) these into several streams (1 or more audio streams, 1 or more video streams, …)
demuxerは、コンテナ(バイトの単一の1次元ベクトル)を受け取り、これらをいくつかのストリーム(1つ以上のオーディオストリーム、1つ以上のビデオストリームなど)に分割(demux)するもの。

a parser is the thing which takes a single stream as output by a demuxer and splits it into proper frames (some demuxers already produce proper frames so no parser is needed)
parserは、demuxerによる出力として単一のストリームを取得し、それを適切なフレームに分割するもの 。(一部のデマルチプレクサはすでに適切なフレームを生成しているため、パーサーは必要なし)

NALユニットの中身を見てストリームの時点でフラグの状態を確認する。
ffmpeg -v verbose -i input -map 0:v -c copy -bsf:v trace_headers -f null - 2> trace_headers.log

Continue reading “ビットストリームフィルタのまとめ”

カラーレンジを記述するsetrange

入力した映像のカラーレンジを記述するsetrangeフィルタの使い方。 入力映像は変更しないがフィルタやエンコーダの処理方法に影響を与える。

汎用に出力時の色情報を記述するsetparamsフィルタもある。
フィールドタイプや色域を記述するsetparams

まとめ:色関係の設定のまとめ

Continue reading “カラーレンジを記述するsetrange”

色空間変換するcolorspace

カラースペースの変換を行うcolorspaceフィルタの使い方。このフィルタは高ビット深度の映像にも対応していて、colormatrixフィルタよりも処理が速い。

色の変換色を変更するcolormatrix
色関係の設定のまとめ

Continue reading “色空間変換するcolorspace”

色の情報の扱いについて

いわゆるcolor primaries、color transfer characteristics、color spaceの扱いについて。解像度とフレームレートに関わるPAL、NTSC。解像度に関わるSD、HD、UHD。輝度のダイナミックレンジに関わるSDR、HDRなどの組み合わせで最適なオプションを指定する。これらのオプションはYUVの映像をRGBのモニターに正しく、指定した設定で表示するものである。それぞれの設定の効果については正確なことが言えないのでここでは触れない。

外部サイトの解説

ffmpeg Documentation : Codec Optionsの下の方にある。それぞれ入力、出力オプションになるので入力ファイルの前、入力ファイルの後ろ(出力ファイルの前)に指定する。入力オプションで使うときはファイルにメタデータが付いてないときである。FFmpeg 8.0から出力オプションでメタデータをつけられなくなったので適宜、入力オプションかフィルタ、ビットストリームフィルタでメタデータをつける。

まとめ:色関係の設定のまとめ

Continue reading “色の情報の扱いについて”

2020年6月のニコ生統計

2017年1週目から2019年10週目までの取得漏れが判明し、毎週土曜日の放送開始0時から6時までの6時間が入ってなかった。気がついたのが2019年11週目で月間統計は過去のデータを修正したが過去記事は修正してない。

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

2019年8月28日より一般会員でも配信できるようになった。
ユーザー生放送を一般会員の方でもお試しで配信できるようになりました|ニコニコインフォ

Continue reading “2020年6月のニコ生統計”

連続フレームの映像を任意の割合でミックスするtmix

連続したフレームのピクセル値を任意の割合で混ぜ合わせるtmixフィルタの使い方。

複数入力した映像を混ぜ合わせるならmixフィルタがある。
複数の映像を任意の割合でミックスする mix

Continue reading “連続フレームの映像を任意の割合でミックスするtmix”

フレームを間引くdecimate、mpdecimate

一定のフレーム間隔で重複フレームを間引くdecimateフィルタと、前フレームとあまり変化のないフレームを間引くmpdecimateフィルタの使い方。

Windows の ffmpeg で生放送する方法で書いていた内容をこちらに引っ越し内容を修正した。

一定周期のフレームを間引くフィルタにshuffleframesフィルタがある。
指定フレーム毎に順番を入れ換える shuffleframes

Remove sequentially duplicate frames when using FFmpeg – Stack Overflow

Continue reading “フレームを間引くdecimate、mpdecimate”

異なるダイナミックレンジにトーンマッピングするtonemap

HDRからSDRなどのトーンマッピングするのに使われているtonemapフィルタの使い方。高ビット深度から低ビット深度へ変換するために範囲外の値を線形化と浮動小数点にしてトーンマッピングし、出力先の変換式などに直す処理も同時に行う。ネイティブフィルタtonemapフィルタの他にOpenCLを使ったtonemap_openclフィルタもある。

Continue reading “異なるダイナミックレンジにトーンマッピングするtonemap”

2020年5月のニコ生統計

2017年1週目から2019年10週目までの取得漏れが判明し、毎週土曜日の放送開始0時から6時までの6時間が入ってなかった。気がついたのが2019年11週目で月間統計は過去のデータを修正したが過去記事は修正してない。

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

2019年8月28日より一般会員でも配信できるようになった。
ユーザー生放送を一般会員の方でもお試しで配信できるようになりました|ニコニコインフォ

Continue reading “2020年5月のニコ生統計”