Androidフォンからネットワークメディアサーバーにビデオ録画をストリーミングしたい.
最初の問題は、出力をソケットに設定するときに、ストリームにいくつかのサイズのヘッダーMediaRecorder
が欠落していることです。mdat
これは、そのストリームをローカルで前処理し、不足しているデータをストリームに追加して有効な出力ストリームを生成することで修正できます。
そこからどう進めていくかが問題です。
そのストリームを RTMP ストリームとして出力するにはどうすればよいですか?
まず、質問を解きましょう。ご想像のとおり、RTMPは現在 Android ではサポートされていません。いくつかのサイド ライブラリを使用してサポートを追加できますが、これらは完全な実装ではないか、他の望ましくない副作用やバグがあり、ニーズを満たせなくなる可能性があります。
この場合の一般的な代替手段は、 RTSPを使用することです。独自の RFC を持つ同等のセッション形式を提供し、RTP と組み合わせた場合のパケット構造は、目的のプロトコルに非常に似ています (一部の詳細は除きます)。ここで必要な修正を実行して RTP/RTSP を RTMP に変換することもできますが、前述のように、そのような作業は現在アプリケーションの開発範囲外です。
したがって、RTMP (このスレッドを無効にする)を使用したいと考えており、上記のリンクされたライブラリがニーズを満たしていないと仮定しましょう。
たとえば、このチュートリアルに従って、Livu、Wowza、および Adobe Flash Player を使用して記録および再生し、クライアントのライセンスについて Livu 開発者と話し合うことができます。または、このクライアント ライブラリとその完全なAndroid レコーダーの例を使用して、クライアントを構築することもできます。
要約する:
あなたのアプリケーションで頑張ってください。私は、これらのライブラリのすべてを包括的に理解していないことを認めますが、この記事の執筆時点では、これらがこの分野の標準的なソリューションであるように思われます。
OPによると、RTMPライブラリセットを歩く:
要するに、さらに作業が必要です。ここで必要なのは、他の回答とこれらの例の改善です。