【東方】Bad Apple!! PV【影絵】 というニコニコ動画で人気の動画があるんだけど、これをコンソールに出してみよう。と思ってやってみた。
元の動画はモノクロな感じなので、コンソールに出力するのは簡単かなーと思っていたんだけど
案外面倒だった。
まず、元の動画をBitmapイメージシーケンスに変換するのが面倒だった。
MPEG Streamclip っていうソフトに行き着くまでが大変だった。。。
こんな感じで白黒なBitmapの連続データに変換してます。

んで、ここから連続したBitmap画像データができたので

このBitmapたちをjavascriptで読めるように nowelium/node-bitmap を作った。
Bitmapの読み取りは bmp ファイルフォーマット と Windows bitmap - Wikipedia を参考にしてます。
Bitmapって画像データだけの塊だと思ってたら、ちゃんとした仕様があったんだね。。
今回の動画で使ってる実際のコードはgistに貼ってます。
話は戻るけど、本家の 【東方】Bad Apple!! PV【影絵】 の派生動画が色々面白くて
僕が今回これをつくろうと思うきっかけになった、Japanino(arduino互換機)でBad Appleしてたり、 USBモニタに出してたり、 minecraftでやってたりとまぁ色々挑戦するのが面白い動画になってます。
そして、僕がBitmapと格闘している間、世の中はPNGでWebsocketsまでやっていたのだった。。。
WebSocket で PNG 画像をバイナリ転送して、JavaScript で展開して表示してみた
僕の実装の方はコンソールで動画が見れるよ!っていう誰得なものだから実用性が欲しい。。
ここまで実装できたし、次はsocket.ioにでも乗っけてみると面白そうだ。