plane を入れ替え、コピーする shuffleplanes

plane(YUV や RGB の個別チャンネル)を入れ替えたり、コピーしたりできるshuffleplanesフィルタの使い方。

オプション

plane の順番は一般的には YUVA, RGBA の順番になっている。このフィルタは RGB/A には対応していないが GBRP/GBRAP なら対応している。YUV420P の場合 Y と UV では解像度が違うので Y と UV を入れ替えるには YUV444P に変換する必要がある。

  • map0[int]
    第1 plane の入出力を指定する。省略すると入力と同じ映像を返す
    既定値:0
    範囲:0 から 4 まで
  • map1[int]
    第2 plane の入出力を指定する。省略すると入力と同じ映像を返す
    既定値:1
    範囲:0 から 4 まで
  • map2[int]
    第3 plane の入出力を指定する。省略すると入力と同じ映像を返す
    既定値:2
    範囲:0 から 4 まで
  • map3[int]
    第4 plane の入出力を指定する。省略すると入力と同じ映像を返す
    既定値:3
    範囲:0 から 4 まで

Continue reading “plane を入れ替え、コピーする shuffleplanes”

2016年6月のニコ生統計

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

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

ffmpeg で Twitter で JPG に劣化させない PNG に変換する

普通の PNG で投稿しても画質の悪い JPEG に変換されるのでこれを透過PNG で投稿することで PNG のまま投稿できた(2019年2月11日頃まで)。

仕様変更の告知:Upcoming changes to PNG image support – Announcements – Twitter Developers
公式の仕様:Media Best Practices — Twitter Developers

2019年2月11日以降で写真は今まで通りJPEGで投稿。イラストのPNGは色が少なければPNG-8に減色する。色が多ければ長辺1200ピクセル、または900ピクセル以下にリサイズする。

2019年2月17日時点でIE10から投稿すると解像度制限は長辺1200ピクセルを超えると最大長辺1200ピクセルにリサイズされた。tween(1.7.2.0)では3899X3001のPNG-8で投稿しPNG-8で表示された。ただし容量制限の5MBのような大容量のPNGはtweenに制限があるのか投稿できなかった。

PNG-8
ffmpeg -i img -filter_complex "split[a][b];[a]palettegen=reserve_transparent=0[pal];[b][pal]paletteuse" -pix_fmt pal8 output.png

長辺1200ピクセル以内にリサイズ
ffmpeg -i img -vf "scale=if(gte(iw\,ih)\,min(1200\,iw)\,-2):if(lt(iw\,ih)\,min(1200\,ih)\,-2)" output.png

長辺900ピクセル以内にリサイズ
ffmpeg -i img -vf "scale=if(gte(iw\,ih)\,min(900\,iw)\,-2):if(lt(iw\,ih)\,min(900\,ih)\,-2)" output.png

コマンド例

コマンドの説明
nullsrc:映像のテストソース。テストソースの中では一番負荷が軽い
scale2ref:映像フィルタ。2入力して、相手側の解像度に合わせることができる
lutrgb:映像フィルタ。特定のRGBに色を変更する
overlay:映像フィルタ。2映像を重ねる
alphamerge:映像フィルタ。2入力して、2入力のグレースケール具合で1入力を透過させる
palettegen:映像フィルタ。最大256色のパレットを作る
paletteuse:映像フィルタ。パレットから元映像を減色する

Continue reading “ffmpeg で Twitter で JPG に劣化させない PNG に変換する”

2016年5月のニコ生統計

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

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

Twitch とニコ生の統計比較 2015

前回記事を書いた2013年のTwitch とニコ生の統計比較から2014年は書いていなかったので2014年と2015年の統計データをニコ生の2015年データと比較する。

2014 Retrospective – Twitch
2015 Retrospective – Twitch

Continue reading “Twitch とニコ生の統計比較 2015”

フィールドを足したり引いたりする tinterlace

入力した映像のフレームをフィールドに分離し足したり引いたりするtinterlaceフィルタの使い方。1入力1出力なので別ソースの同じ映像を取り込む場合は偶数フレームと奇数フレームをインターリーブしてから1映像にすることで2映像の偶数フィールドと奇数フィールドを混ぜることができる。

関連フィルタ:
複数の映像を1つの映像に合わせるinterleave
ピクチャーをインターリーブ、デインターリーブするil

ちなみに偶数フレーム、奇数フレームそれぞれをドロップさせる(間引く)にselectフィルタがあり、こちらの方が高速。

特定の映像フレームや音声サンプルを出力する select, aselect

説明で使われるフレーム、フィールド番号は 1 スタートの奇数である。

偶数フレームを出力する:select='mod(n-1,2)' // 出力フレームは 0, 2, 4...
奇数フレームを出力する:select='mod(n,2)' // 出力フレームは 1, 3, 5...

Continue reading “フィールドを足したり引いたりする tinterlace”

2016年4月のニコ生統計

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

Continue reading “2016年4月のニコ生統計”

新着ニコニコミュニティがハングルだらけ

新着コミュニティ一覧-ニコニコミュニティ

見ての通りハングルが並んでいる新着コミュニティ一覧。過去の新着コミュニティを調べてみると*2015年11月30日の18時14分32秒 2015年11月19日13時6分36秒に設立されたコミュニティが荒らしの始まりのようだ。なぜ開設日時の秒まで調べられるかというと API で調べられるから。

*再度確認したらもっと早かった(訂正:2016年5月15日9時02分)

, 区切りで複数のコミュニティを指定できる
http://api.ce.nicovideo.jp/api/v1/community.array?id=co1,co2(この形式は2021年6月に使えなくなった)

Continue reading “新着ニコニコミュニティがハングルだらけ”

concat を使い分ける

ffmpeg で映像や音声を連結(後ろにつなげる)する方法に concat があるが、concat にも3種類ありそれぞれ使い道が異なるのでそれらの説明。個別の記事は以前に書いているので補足説明を加えた。

まずは連結するファイルのコーデックが同じで、かつ同じ解像度や fps、エンコード設定なら再エンコードしない demuxer, protocol の concat がおすすめ。demuxer, protocol の違いは demuxer のほうが新しい機能で対応コンテナが protocol より柔軟である。filter の concat はフィルタ経由で連結するので再エンコードされるが、リサイズやインターレース解除、デテレシネなどのフィルタを当てたりするのならこちらの方が連結部分がきれいに仕上がりやすい。

公式 wiki
Concatenate – FFmpeg