スクリーンショットのストリーミング

最近は勉強会ブームでustを使ったストリーミング配信もよく行われています。ところが、ustの問題点として細かい文字が壊滅的に読めずスライド等はともかくコーディングのデモを見せることは困難です。コーディングのデモを配信しようとしたならば、800x600以上の解像度が必要しょう。しかし、FPSは低くても問題なく1〜2FPSもあれば十分です。ustやその他のサービスを見てもこのような要求を満たすものは見つかりませんでした。
というわけで、ないならば作れということでスクリーンショットのストリーミング配信システムを作ってみました。Screen Shot Streaming Systemといことでs4です。プロジェクトサイトはこちらになります。

s4の仕組みはいたってシンプルで、スクリーンショットを定期的にとりpngに圧縮してサーバに送るs4-capture、サーバから定期的にpng画像をダウンロードし描画するアプレットであるs4-viewer、それらの2つをつなぐためのs4-serverで構成されています。通信は単純なソケット通信を用いており、256色まで圧縮したpng画像を使うために1コマあたりの通信料も50KB程度です。1FPSであれば1分で1人あたり3MB程度の通信量で済みます。

まだ、仮実装を終えてコンセプト証明ができた程度の状態ですが、勉強会などで活用できるようにしていきます。興味のある方は是非ご連絡ください。