[android-group-japan: 3915] MediaRecorderでの外部保存について

1,064 views
Skip to first unread message

Eita

unread,
Apr 26, 2010, 3:36:30 AM4/26/10
to 日本Androidの会
お世話になります。
初めての投稿になりますが、
ご相談させて下さい。

Android端末で、
MediaRecorderを利用して撮影したデータを、
外部保存したいと考えているのですが、
送信したデータがうまく利用できず、困っております。

■実現したい事
・サーバで受信したデータから、映像・音声データの両方を取得し、リアルタイム処理を行うこと。

■困っている点
・サーバ側で受信したデータを、そのままファイルに書き込む。 → ファイルが再生出来ない。
・「ffmpeg」というコンバートソフト?を利用してデータを読ませる。 → 音声データが取得出来ない。

ソースは以下の通り、ソケット通信を利用しております。

/*-------------------------------------- ソース抜粋
 -----------------------------------------------
// ソケットのオープン
socket = new Socket(host_ip, port);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);

// レコーダのプレビューを画面に反映
mRecorder.setPreviewDisplay(holder.getSurface());
// レコーダの設定
mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //
映像入力をカメラに
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //
音声入力をマイクに
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // ファ
イルフォーマットを3gpに
mRecorder.setVideoSize(320, 240); // 画像サイズを320x240に
mRecorder.setVideoFrameRate(15); // フレームレートを15に
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); // 映
像codecをH263に
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 音声コー
デックをAMR_NBに
mRecorder.setOutputFile(pfd.getFileDescriptor()); // 出力先をソケット(ファイルディスク
リプタ)に
---------------------------------------------------------------------------------------------------------
*/

こうすれば音声部も読めるのではないか、
他にこういった方法がある等々
様々なご意見が頂ければ幸いです。

以上です。
宜しくお願い致します。

Eita

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。

l.b.

unread,
Apr 26, 2010, 10:01:17 AM4/26/10
to 日本Androidの会

 村上です。

 ちょっとググったら
 http://groups.google.co.jp/group/android-developers/browse_thread/thread/92fee76cf4ba423c/098209cc5219a108
 とか
 http://www.mattakis.hu/blog/kisg/20090708/broadcasting-video-with-android-without-local-files
 に原因書いていますね。

 というかこうすればストリーミング出来るんですねえ。確かにbindされたSocketのファイルディスクリプタにwrite()すればサーバに送り
込めますね。目から鱗が落ちました。

Eita

unread,
Apr 27, 2010, 6:14:15 AM4/27/10
to 日本Androidの会
村上さん

ご指摘ありがとうございます。
どうも音声も取得するには、
適切なデータ処理が必要そうですね。

出来るだけ簡易にストリーミングを出来ればと、
見つけたのが上記の形なのですが。

これから3gpのデータ構造との格闘になりそうです。

Eita


On 4月26日, 午後11:01, "l.b." <hideaki.murak...@gmail.com> wrote:
>  村上です。
>
>  ちょっとググったら
>  http://groups.google.co.jp/group/android-developers/browse_thread/thr...
>  とか
>  http://www.mattakis.hu/blog/kisg/20090708/broadcasting-video-with-and...
> 詳細については、http://groups.google.com/group/android-group-japan?hl=jaからこのグループにアクセスしてください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
Reply all
Reply to author
Forward
0 new messages