0

red5 のライブ ストリームからオーディオを抽出し、個別にストリーミングする必要があります。
rtmpモジュールを使用したnginxでは、ビデオデータなしでffmpegを介してこのストリームを再変換するだけですが、Red5で(ffmpegの有無にかかわらず)このようなことを行う方法がわかりません。

グーグルの最初のリンクは私にこれを与えました:

IClientStreams に IStreamListeners を登録し、RTMPEvents で VideoData から AudioData を分離するだけです。

しかし、これはあまり役に立ちません。正直なところ、これはまったく役に立ちません。これらの ISt​​reamListeners とは何ですか? IClientStreamに登録するにはどうすればよいですか?

さらに不可解なのは、RTMPEvents で AudioData を VideoData から分離するにはどうすればよいですか?

4

1 に答える 1

1

これは、RTMPClient を拡張し、Audio または Video イベントをキャプチャする方法です。

プライベート クラス TestClient は RTMPClient を拡張します {
  プライベート int audioCounter;
  プライベート int videoCounter;
  public void connect() {
    プライベート IEventDispatcher streamEventDispatcher = 新しい IEventDispatcher() {
      public void dispatchEvent(IEvent イベント) {
    System.out.println("ClientStream.dispachEvent()" + event.toString());
    文字列 evt = event.toString();
    if (evt.indexOf("オーディオ") >= 0) {
      audioCounter++;
    } それ以外の場合 (evt.indexOf("Video") >= 0) {
      videoCounter++;
    }
      }
    };
  }
}

これは単純に a/v イベントをカウントするだけですが、そこまでの道のりの一部になります。red5 の単体テストを見ることをお勧めします。そこから多くのことを学ぶことができます。

于 2013-03-17T16:06:35.827 に答える