ノーマルPVをRGBに分解してみました。

ニコ動にも動画素材はたくさん投稿されていますが、ニコ動(というかSMILEVIDEO)を素材投稿場所として使った場合の欠点として以下のものが挙げられます。

  • 映像部分は基本的に H.264 なので、一般的には YUV4:2:0 になって色差成分が盛大に劣化する。
  • 1動画あたり100MBまで。ちなみにニコニ・コモンズでも1動画あたり100MBらしい(コモンズにアイマス動画素材を投稿するのもどうかと思うが)。なお、一般会員の場合、さらに強い制限がかかる。
  • アルファチャンネルを持つ素材を投稿できない。

この欠点を緩和するために、

  • 色成分ごとに分解して、輝度成分のみの映像に変換して投稿する。YUV4:4:4のフォーマットは一般的ではないことでもあるので、RGB成分に分解する。
  • 3つに分割されて投稿されるので、サイズ制限が実質的に緩和される。ただし、色成分間での相関性が失われた状態でエンコされる関係で同じ画質でも必要ビットレートが増えるので、「実質的に3倍」にはならない。せいぜい2倍程度。
  • 分解して輝度成分に変換しているので、元がアルファだろうがなんだろうが投稿できる。

ということを考えました。で、試しに作ったのがこれ。

このRGB各成分をダウンロードして結合します。AviSynth と FFMpegSource プラグインを取ってきて、以下のような内容の .avs ファイルを VirtualDub などで開いて AVI ファイルに保存すれば OK.

LoadPlugin("FFMS2.dll")
clipR = FFVideoSource(source="clipR.mp4")
clipG = FFVideoSource(source="clipG.mp4")
clipB = FFVideoSource(source="clipB.mp4")
MergeRGB(clipR, clipG, clipB, "RGB24")

試してみたら元の映像と比べて1フレームずれてました。RGB全部が同じようにずれており、合成結果がおかしくなっているわけではないので、実害は無いでしょう。

ちなみに投稿したのは普通のソースですが、最初に書いたとおりRGBAなソースも分割して投稿できます。これだけでもそれなりに意味はあるのではないかと思います。

Trackback

no comment untill now

Add your comment now