Re:RTMP(MP4/H.264)サーバをPure Rubyで書いた

RTMP(MP4/H.264)サーバをPure Rubyで書いた - @takuma104 log

ですが、若干はでブで反響があったみたいなので、Rubyで動いていることが(ちょっとは)分かるかもしれないビデオを作りました。

YouTubeの解像度だとかなり見にくいので、オリジナルのものも用意しました。
http://vixy.tv/images/izumi_h264_demo.mp4

途中でFlashのAS3ソースを見せているのは、プレイヤー側に細工無いですよー&rtmpスキーマですよーといいたいがためのものです。rascutでその場でコンパイルして、rascutのサーバ機能でそのままプレイヤーとして使っています。

そう、「ソース出してほしい」の件ですが、超絶に悩んでます。今の感じだと「前向きに検討します」位かなあ。比較するのもなんですが、あの今は無きネットスケープ社とかもたぶん同じ悩みをしたんだろうなあとか。

で、今社内で、この件どうなっているかというと、Cへの移植が半分位まで出来ていますが、まだ道半ばです。H.264エンコーダーはx264を使おうと思っているんですが、x264はGPLなので、そのGPL問題回避のため、プロセス間をパイプで、とか、これまた微妙なことをやろうとしているので、そこでも若干無駄な作業をしている感じです。全部GPL化しちゃえば楽かなあ、とか言う誘惑にも駆られます。

あと自分は何をやっているかというと、QuickTime BroadcasterというApple製のリアルタイムエンコーダー*1が、リアルタイムキャプチャしたビデオをリアルタイムにエンコードしてくれて、Multicastで配信できるんですが、そのMulticastを受信してRTMPで再送する、とか言うのを試しにやってみています。ビデオだけはなんとか、ほぼ成功しましたが、音声を付けるところで若干面倒くさくなってきて若干やる気が失せていますが、多分そのうち出来ると思います。これが出来ると何が良いか、というと、映像ソースをMulticastで吐きさえすれば、それを中継するRTMPサーバーは、中継無し(=中継による遅延無し)で無限増殖出来る、ということを意味します(ので、それはそれで面白いかと)。

*1:ふつうはDarwin Streaming Serverと組み合わせて使うもの