2

実行時にローカルに保存されたビデオ ファイルのエイリアス名を作成したいと考えています。たとえば、「test/video.flv」ファイルがあり、「abc123」エイリアス (または拡張子が重要な場合は「abc123.flv」) を作成します。

これらのエイリアスを一意の使い捨てビデオ パスに使用したいと思います。そのため、1回使用したら取り外す必要があります。

  • 実行時にエイリアスを作成する方法は?
  • 実行時にそれを削除する方法は?
4

2 に答える 2

3

これに対するより良い解決策を見つけました!red5-web.xml ファイルに Bean を追加し、<bean id="streamFilenameGenerator" class="myapp.FilenameGenerator"></bean>そのクラスを作成しましたpublic class FilenameGenerator implements IStreamFilenameGeneratorpublic String generateFilename(IScope scope, String name, GenerationType type)ここで、ファイル名の解決を担当する関数をオーバーライドする必要がありました。name パラメータは要求されたストリーム名であり、戻り値は解決されたものです。この時点から、これは簡単です。たとえば、キー=エイリアス名と値=実際の既存のファイル パスで HashMap を作成します。

于 2012-10-11T14:18:20.573 に答える
1

それを実現するための複数のオプションがあります。

1 つの方法は、シンボリック リンクを作成することです。そのため、基になるオペレーティング システムを使用して、ファイルが存在することを red5 にだますことができます。次に、ApplicationAdapter にリスナーを追加して、必要なイベントをリッスンする必要があります。例: http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html => streamStart/stop など。使用している Red5 バージョンでリッスンできるすべてのイベントを表示するには、Red5 バージョンの ApplicationAdapter を検索する必要があります。

2 番目の解決策は、カスタム ストリーム ハンドラを作成することです。ただし、これにはさらに調査が必要です。ファイルリクエストを変更して、ある種のワイルドカードを適用する標準的なメカニズムがあるとは思いません。最初のソリューションと同様に機能しますが、ファイル要求を処理するには、ApplicationAdapter のメカニズムの一部を書き換え/上書きする必要があります。

したがって、基本的に最善の方法は、ApplicationAdapter を調べて、探しているイベント リスナーを見つけることです。

于 2012-10-01T14:46:26.537 に答える