ustreamを見ながらflvにダンプする

kamaitachi開発者の村瀬です。

kamaitachiの開発のためにRTMP専用のスニファーを書いたのですが、そのアプリにほんの遊び心でflv保存機能をつけてみたところなかなかおもしろいのでここで紹介してみます。

ソースコードはこちら:

Sniffer::RTMP

この中の script/rtmp_flvdump.pl がRTMPストリームをflv形式でダンプするスクリプトです。(Net::Pcap を使用していますので実行にはスーパーユーザー権限が必要です。)

使い方は

sudo perl ./script/rtmp_flvdump.pl en1 filename.flv

のように、インタフェース名と保存するflvファイル名を与えると、RTMPのパケット中のビデオデータを filename.flv として書き出してくれるというものです。

たとえば、これを起動した状態でustreamなどのライブ中継を見ると、見ていた放送内容がローカルに保存されるというわけです。

RTMPの仕様上パケットを取りこぼすとそれ以降うまくキャプチャが行われなかったりしたりするのですが、 副産物的に出来たスクリプトにしては、なかなかおもしろいですね。

kamaitachi の方の開発はこのモジュールのおかげもあり、順調にすすんでおり、週末にはついに最初のバージョンである 0.01 をリリースすることが出来そうです。

kamaitachi の開発に興味があるという方はぜひIRC (#kamaitachi @ chat.freenode.net) まで!