動画は便利ですね。身体的な技を習得する場合もそうですが、最近ではプログラミングも動画で習得するようですね。自分は使っていませんが、ドットインストールは便利そうです。
さて、本題です。スクリーンキャストをテキストベースで行いたいと思いました。ターミナルだけで手軽にやろうと。
ttyrecというツールを使いました。Ubuntuではaptでインストールできます。
$ apt-get install ttyrec
実行すると新しいシェルが始まるのでそこで一通り作業してexitすると、全て記録されています。とても簡単です。
ttyplayで実行できます。再生中に速度も変えられるので便利。2倍速くらいでもついていけます。
ttyrecで録画したスクリーンキャストをwebにアップする方法を調べました。2つ見つけました。
- playterm.orgというサイトにアップする
- jsttyplayというライブラリを使う
初めはお手軽なplayterm.orgを使うつもりでしたが、一つだけ難点が。試してないから確かではないのですが、一度アップすると削除ができない様子なのです。もうちょっと自分で制御したくて、jsttyplayを使うことにしました。しかし、jsttyplayはライブラリなのでいろいろ手を入れないと使えません。まずは、Webサイトが必要です。
今回は、GitHub pagesを使いました。gh-pagesブランチにjsttyplayをコピーして、test.htmlを参考にHTMLを書きました。不具合もいくつかあって、
- Rewindボタンが動かない(バグ修正した)
- PlayPauseボタンの動作が不明(非表示にした)
- fontが相対パスなので、ディレクトリが異なると読み込めず
- ttyrecordファイルのURLがハードコードされている
などが気になりました。
あと、注意点がいくつかあります。
- ターミナルのサイズを記録時と再生時で同じにする必要がある。これは、ttyrecの制限。playterm.orgでは80x24を標準としている。
- TERM=xtermでは途中で固まった。TERM=vt100だと大丈夫。ttyplayは問題ないので、これはjsttyplayの制限。
これらをクリアして見事ttyrecで記録したスクリーンキャストをWebに載せることができました。HTML5 Canvasで動いているようです。ターミナルをエミュレートしている感じでしょうか。かっこいいですね。
このシンプルさがいいです。 再生速度変更ボタンはありませんが、簡単に作れそうです。 そのうち暇ができたらちょっと改造してみようかと思いました。
興味がある方はお試しください。
コメント