ビデオチャットを可能にするモバイル用のチャットベースのアプリケーションを開発する予定です。HTML5、javascript、および PhoneGap を使用しています。phoneGap を使用して、モバイル カメラにアクセスし、ビデオをキャプチャし、ビデオを保存してサーバーにアップロードすることができます。私はアンドロイドのためにそれをしました。しかし、私はビデオの生放送が必要です。その解決策はありますか?注: Android ネイティブ アプリではありません。
2 に答える
ビデオ キャプチャに現在使用している施設を指定していません。知る限り、現在の WebView は、HTML5 コードでビデオ フレームにアクセスできるようになる w3 標準である WebRTC をまだサポートしていません。したがって、PhoneGap のnavigator.device.capture.captureVideo
機能を使用していると思います。
Android では、captureVideo
3gp ファイルを作成します。3gp の問題は、キャプチャ中にそれらをストリーミングまたは再生できないことです。ファイルの MOOV アトムは、ビデオ フレームを解析するために必要であり、ファイル内のすべてのフレームがエンコードされた後にのみ書き込まれます。そのため、ファイルを使用する前に記録を停止する必要があります。
HTML5 でのベスト ショットは、ビデオの短いクリップ (3 ~ 5 秒?) をキャプチャし、次のチャンクがキャプチャされている間にサーバーに送信するループを実装することです。サーバーは、ストリーミング サーバーでブロードキャストできる単一のファイルにクリップを連結する必要があります。これにより、ブロードキャストの遅延が数秒増加し、2 つの個別のチャンク キャプチャの間のギャップでフレームが失われる可能性が非常に高くなります。一部のユース ケース (セキュリティ カメラなど) ではこれで十分な場合があります。
あなたのアプリケーションがフレームを失う余裕がないようなものである場合、Java でビデオ キャプチャとストリーミングを PhoneGap プラグインとして実装する以外に選択肢はないと思います。
Spydroid http://code.google.com/p/spydroid-ipcamera/を参照してください。
見つけた特別な FileDescriptor を使用してソリューションを使用します。基本的に、ビデオエンコーダーは、書き込み時にコードを呼び出す特別なファイル記述子に、H.264 を使用して .mp4 を書き込むことができます。次に、MP4 ヘッダーを取り除き、H.264 NALU を RTP パケットに変換します。