Node.jsでコンソールにBad Apple!!を出力してみた

【東方】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にでも乗っけてみると面白そうだ。