2011-07-17 12 views
2

デバイスカメラからストリーミングサーバーにビデオをストリーミングするアプリケーションをAndroid上に構築しようとしています。Androidデバイスカメラからのビデオストリーミング

私は別のポストと解決策を見て、ここに私の現在の状態で、(私はSipdroidは、JBoss-ネッティーを使用し、wiresharkの上のパケットを分析する)

  1. の助けを借りて、私はRTSPスタックを構築してきた

    私は正常に理論的には可能なRTPパケットを作成することができ、サーバ
    2.I午前に接続し、 へ

私の問題は、フレームをキャプチャし、RTPパケット内のデータを送信しているサーバーにそれを送りました。 私は方向が2つあります:

1カメラとAuidoRecorderを使用してRawメディアデータをキャプチャしてrtpを使用して送信すると、RTSPのアナウンスの.sdpファイルの説明に従ってこのデータをエンコードする必要があります???私はカメラとマイクからのデータがエンコードされていない生データであることを理解しています。 Anortherのことは、どのようにしてRTPパケットにこの生データを適切に定式化できますか?

2-メディアレコーダーはすでにデータをエンコードしていますが、.sdpファイルで定義されているようにエンコードを設定できます。出力ファイルから読み込む方法を見つけようとしましたが、 .mp4ファイルのデータをストリーム処理して、複雑な作業のように思えます。

私の質問は、ビデオとオーディオの生データをRTPパケットで送信するだけで十分ですか?ストリーミングサーバーは残りの部分を処理しますか? 私はそれが.sdpというファイルによって記載されているようにまず、あなたのデータをエンコードする必要があります。..

おかげ

+0

携帯電話経由で接続を開始できますか?もしそうなら、電話でブロックされているすべての着信ポートの問題をどのように克服しましたか? – michael

+0

解決策を見つけましたか? – Derzu

答えて

1

をそのことで任意のヘルプや指導をお願い申し上げます。 AuidoRecordではなくMediaRecorderを試してみませんか? MediaRecorderでは、取得するデータのエンコーディングを設定できます。

さらに、静的ファイルではなくソケットストリーム経由でデータを転送できるように、SocketによってFileDescriptorを作成することをお勧めします。 コードは、このようなことがあり:

Socket socket = new Socket(serverAddr, serverPort); 
socket.setTcpNoDelay(true); 
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket); 
Camera camera = Camera.open(); 
camera.unlock(); 
MediaRecorder recorder = new MediaRecorder(); 
recorder.setCamera(camera); 
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); 
recorder.setOutputFile(pfd.getFileDescriptor()); 
recorder.setPreviewDisplay(surfaceView.getHolder().getSurface()); 
recorder.setVideoFrameRate(15); 
recorder.setVideoSize(480, 320); 
recorder.prepare(); 
recorder.start(); 

をRTPに輸送する方法が今私をトラブルだけで何です。

+0

@ andro-delva、それは動作しますか? – Derzu

+1

ParcelFileDescriptorからビデオやオーディオを再生する方法pfd = ParcelFileDescriptor.fromSocket(socket); mediaPlayer.setDataSource(pfd.getFileDescriptor());メディアプレーヤーを作成できないことを示すme.itで動作しませんでした。何をする必要がありますか? – Aravi

関連する問題