【发布时间】:2013-09-19 05:45:24
【问题描述】:
我正在两部安卓手机之间创建一个实时视频流的安卓应用程序。我已经在这些设备之间建立了套接字连接。我正在一个设备中捕获视频并将流发送到其他设备,但目前我只想保存在接收方移动设备中并保存它。我在一个设备中使用MediaRecorder 进行录制,因此通过设置数据流到接收器我使用parcelfiledescriptor 对象
客户端代码
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
mediaRecorder.setOutputFile(pfd.getFileDescriptor());
接收方代码
pfd= ParcelFileDescriptor.fromSocket(s);
InputStream in = new FileInputStream(pfd.getFileDescriptor());
DataInputStream clientData = new DataInputStream(in);
OutputStream newDatabase = new FileOutputStream(file);
int available=in.available();
byte[] buffer = new byte[available];
int length;
while((length = in.read(buffer)) > 0)
{
newDatabase.write(buffer, 0, length);
}
newDatabase.close();
正在接收方移动设备上创建视频文件,但无法接收任何字节。所以我是否必须在接收端解码即将到来的流,因为发送的视频流是在录制时编码的。那么如何解码接收到的流呢?我找到了一些解决方案,例如 MediaExtractor 和 MediaCodec ......但这是否适用于实时视频捕获,而且我正在 android version 2.3.6 GingerBread 上进行测试
是否可以从 MediaCodec 解码 2.3.6 版的视频流或其他方法可用?
【问题讨论】:
-
嗨,Divya,你得到解决方案了吗,我也面临同样的问题,如果你找到解决方案,请告诉我
-
Hiiii Dipu 回复 David 我可以保存,但仍有很多问题...请查看我的评论以获取 David 的回复
标签: android sockets video-streaming decode video-capture