2012年12月11日火曜日

red5のアプリにhttpTakStreamingの動作をいれてみましたが・・・

red5を利用して、rtmpベースのTakStreamingをつくりました。
んで、そのあとhttpベースのTakStreamingもつくってみたのですが・・・

どうも、httpベースの方の動作が芳しくないです。

原因は簡単。
red5では内部にtomcat6がはいっているのですが、このtomcat6。
静的コンテンツはデフォルトで5秒のcacheが効くみたいです。

1秒ごとという単位でflfファイルが更新されていくのに、cacheが効いてしまって変更の適応が遅くなるのが問題だという・・・

で、対処方法ですが、いまのところ2つしか見つかっていません。
1:webapps/tak/WEB-INF/red5-web.xml
こっちで設定しているdurationの値を5秒くらいにする。
セグメントのdurationを大きくしてしまうと遅延が酷くなっていきますが、まぁ動作します。
だいたい5秒〜10秒くらい遅延する感じになりますね。

2:conf/context.xmlにcacheTTL=1をいれる。

<!-- The contents of this file will be loaded for each web application -->
<Context cacheTTL="1">

    <!-- Default set of monitored resources -->

    <WatchedResource>
Contextの属性にcacheTTLをいれれば値を変更することができます。
1秒ごとに内容がかわるようにすれば、とりあえずduration=1でも動作できるようになります。

ただし、webアプリケーションのwarファイルを提供しておしまいとするにはちょっと問題があります。なにせサーバーの設定を変更しなければいけないという・・・

あとは、やっていませんが、flfファイル出力をservletの動的出力にしちゃうとかですかね・・・
いい方法ないもんですねぇ・・・

一応red5のフォーラムでどうにかなんない?って尋ねてみましたが、どうなることやら・・・

0 件のコメント:

コメントを投稿