ブラウザでttyrecのファイルを再生する方法

ttyrecという端末の出力を録画できるソフトウェアがあり、それをブラウザで再生・共有できるttyshareが500を返すようになって久しい昨今、いかがお過しでしょうか。

web上でttyを再生するサービスがあるといろいろ便利だと思うので作りたいと思い、調べていたところjavascriptで実装されたescape sequenceのparserを知りました。試しにそれを使用してttyrecをブラウザで再生するものを作ってみました。 サンプルとして簡単にコマンドの入力とその実行結果を録画したものを用意しています。

肝心のparseと表示の部分はfiresshに含まれるcli.jsを使用しています。もともとpythonで実装されていたVT100parserをjsに移植したもののようで、こちらを使用しました。あとはこれに食わせるためにttyrecの記録形式を少し変更しただけです。

実際に動作させてみたところ、一部sequenceが解釈されていなくて正常に再生されないものがありますが、簡単なvimの動画などはそこそこまともに表示されました。 しかし、実装が一文字一文字spanで囲うなど強引な作りであるため、他のcanvasflashで実装された同種のサービスと比べて動作が重いです。
画面全体を頻繁に書き換えるようなものはchromeでも重たく、当初サンプルとして用意ていたzawの動画は表示が崩れてしまいました。

現状これを使うのは厳しいと感じます。flashと違ってiphoneで見ることもできるのはメリットかもしれませんが、工夫を凝らさないとあまり実用的にならなそうな感じがしました。

全体のソースコードは以下に公開しています。
https://github.com/keqh/replayTerm