2012年11月23日金曜日

Flazrの配信をいじってみたいと思う。

では実際にプログラムをつくっていきます。

まず、com.ttProject.flazrにFlvReader、FileChannelReader、RtmpPublisherに対応したクラスを準備してやる必要があります。
com.ttProject.flazr.io.SydinChannelReader
com.ttProject.flazr.io.flv.FlvLiveReader
を作成しました。
RtmpClientのコネクト前のところで、独自のクラスに組み替えが可能です。
とりあえず-が入力されたときに動作を変更できるように改造
https://github.com/taktod/stdinFlazr/commit/b74bc103de4a43e99337f04cc6fab24e69af11d1


んで、独自クラスも追加ただし中身はからっぽ

つづいて、FlvLiveReaderの中身をFlvReaderの丸コピーにして、こちらのクラスを元に動作させてみたいと思います。

09:59:59,177 [main] INFO [FlvReader] - FlvLiveReader
コンストラクタのところに仕込んでおいたログ出力がきちんとでてきたのを確認した。

ここでRtmpPublisherを書き換えたい場合は、ClientHandlerも変更しなければいかなさそうな感じになってきた・・・やだなぁ
RtmpPublisherはどこで使われている?→ClientHandler
ClientHandlerはどこで使われている?→ClientPipelineFactory
ClientPipelineFactoryはどこで使われている?→RtmpClient
という図式になるので、3つクラスを追加
とりあえず変更を大量に実施して、RtmpPublisherExという独自クラスがつかわれるように改造。

10:24:23,203 [New I/O client worker #1-1] INFO [RtmpPublisherEx] - RtmpPublisherExがよばれたよん。
コンストラクタでログを出力するように変更して、呼ばれていることを確認。
もちろん実際にサーバーにデータをおくって、動作していることも確認。
これで元のFlazrに迷惑をかけずに、独自に動作を改造する下準備はおわり。



0 件のコメント:

コメントを投稿