<video>を捨てた動画たち

もうなんだかとにかく聞いて欲しい。わたしはてっきり絵がひゅんひゅん動くを見て喜ぶのは子供と犬くらいのものかと思いこんでこれまで生きてきたけれども、そんなことはなかったらしい。みんな動画大好き。僕も大好き。お前のRGBも反転してやろうか。

冗談はさておき、昨今どうもスマートフォンで動画を扱うのが難しい。html5にvideo要素が追加されてよりこちら、動画に触れる機会が多くなったものの、厄介なのはvideo要素が標準化されても動画プレイヤーに標準が存在しないことで、インタフェースというか受け付ける命令が同じでも、命令が下ったあと具体的にどのように処理をして、いつどんなイベントを発火してくれるかというところはなかなか沼っぽい感じである。

とりあえず僕のやりたいことは数秒程度の本当に短い動画をインライン再生したいだけで、ただなんかもう「再生したいだけ」とか考えが甘すぎてケツから雪見大福だったけれども、アニメーションGIFでは動画としては難ありという話もあって、apngに手を出してみることにした。apngは結局ほとんどのブラウザで再生できないのでxhrでバイナリよんでcanvasでぴろぴろするやつがある。
github.com/davidmz/apng-canvas

罠はいろいろあったんだけれども、意外とAndroidも2系を切ればわりかし問題なく動いていて、おもしろいなと思ったのはJavaScriptでバイナリの中身をよんで加工したり何か処理ができるということ。これって結構いろいろできると思っていて、勝手にオリジナルのデータ形式を作ってそれでいろいろしたっていいし、例えばなんだけど.psdとかブラウザが対応してないファイル形式のファイルを読んでブラウザ上に何か描画させることだってできる。

話を戻すと、結局apngはファイルサイズ大きすぎて落ちてくるまで時間がかかりすぎて結局駄目になりそうということで、BroadwayというオンブラウザでH.264をDecodeできるオープンソースがあったので、試しにpure-javascriptのmp4動画プレイヤーをつくってみた。そうしたら今度はスマートフォンのブラウザだと処理が全く追いつかなくて、秒間15フレームの1kbpsの動画を再生するのもわりかし頑張らないといけないことがわかった。少し考えの巡るひとであればやる前にわかりそうなものだけど、考えるのがめんどくさくてなって先に手が動いてしまう悲しいたちである。我輩はコード書きであるがリポジトリはまだない。

その後も自分の思いつく限りで頑張って取り組んだけれど結果的にスマートフォン上でMP4をJavaScriptでなんとかするのは今現時点すくなくとも自分には無理だと悟った。もっと早く気づけば良かったけれども、ガラケーで扱えたような3gpとかそういうやつだったらもう少しましなものになったのかもと思うと悔やまれる。かわさこ、振り出しにもどる。

おしまい。