4

RTMP を使用して Android フォンからサーバーにビデオとオーディオをストリーミングする最良の方法を探しています。私はこの問題に時間を費やしてきましたが、これまでのところ、FFMPEG を使用してのみビデオをストリーミングできました。Android 用の lib をビルドする方法はたくさんありますが、もう少し作業を進めれば、オーディオもストリーミングできるようになるはずです。

問題は、ビデオを h264 で、オーディオを AAC でエンコードする必要があることです。Android のMediaRecorderを使用すると、非常に簡単に行うことができます。そこで、Android 用の RTMP ライブラリを探し始めたところ、うまく機能しているように見えるこのRed5 ポートを見つけました。それを使用すると、電話に保存されているビデオファイルを非常に簡単にストリーミングでき、オーディオも機能しています.

私の質問は次のとおりです。Android の MediaRecorder 出力を RTMP ライブラリに接続する方法はありますか? setOutputFile() でファイルを「偽造」してから、データを RTMP エンコーディング メソッドに送信する方法だと思いますが、それを行う方法がわかりません。

どんな手がかりでも大歓迎です。前もって感謝します。

4

2 に答える 2

2

setOutputFile() を使用して、ファイルの代わりにFileDescriptorにデータを書き込むことができます。

FileDescriptor fd = mLocalSender.getFileDescriptor();
mRecorder.setOutputFile(fd);

そのため、データをソケットにストリーミングできます。このソケットからデータを取得するには、次のようにします。

mLocalServer = new LocalServerSocket(LOCAL_SOCKET_ADDRESS);

mLocalReceiver = new LocalSocket();
mLocalReceiver.connect(new LocalSocketAddress(LOCAL_SOCKET_ADDRESS));

mLocalSender = mLocalServer.accept();

if (mLocalReceiver != null)
{
    mInputStream = mLocalReceiver.getInputStream();
}

RTMP ライブラリがどのように機能しているかはわかりませんが、入力ストリームをライブラリのいくつかのメソッドに渡すことができるはずです。

詳細については、 spydroid アプリケーションもチェックしてください。特別なストリーミング ライブラリを使用せずに、RTP を介したビデオ ストリーミングに役立つものが多数含まれています。

于 2012-05-09T03:33:03.013 に答える
0

Red5メディアサーバーを使用している可能性があります。ストリーミングの目的で使用できる、それに付属する実用的な例があります。

于 2012-05-09T03:42:26.190 に答える