如何傳遞實時同步視頻串流到網路伺服器
我目前設計: 把 Android 手機 錄製的即時(實時)影像 傳遞到遠端Server,遠端Server可以同步live play目前做到功能是透過 MediaRecorder擷取影像,再以檔案方式送到Server端
問題是,我現在想要做到 Real-time 實時的功能,而非錄製完成之後在送到Server端。
我的發送端 Android 架構如下
Socket skt = new Socket(hostIP,port);
ParcelFileDescriptor pfd =ParcelFileDescriptor.fromSocket(skt);
....
....
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile(pfd.getFileDescriptor());
.....
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
.....
mediaRecorder.start();
而接受端 目前則是用Java寫的(在我的NB上面)
// anyway , I don't think the file extentions will do any effect
File video = new File (strDate+".3gpp");
FileOutputStream fos;
try {
fos = new FileOutputStream(video);
byte[] data = new byte[1024];
int count =-1;
while( (count = fin.read(data,0,1024) ) !=-1)
{
fos.write(data,0,count);
fos.flush();
}
fos.close();
fin.close();
但是目前接受到的檔案,都沒辦法開啟觀看,
我猜是檔案影片格式的問題?
不曉得有經驗的版有,能不能提供一點想法呢?
另外如果要即時同步播放接收到的影像在Java上面有什麼Class可以用嘛?
我也有想過是不是要從 Camera Preview畫面嘗試去擷取 畫面frame
再一個一個送出去,但是又感覺太笨了。
不曉得有沒有一些概念方向提供呢?
非常謝謝 --------------------编程问答-------------------- --------------------编程问答-------------------- 請問版主
有找到方向了嗎
還請你指點一下
謝謝 --------------------编程问答-------------------- 不能播放那是因为手机录制后传输的是3gp格式的视频流,需要解析后才可以播放的 --------------------编程问答-------------------- 我也遇到同样的问题了,传输到电脑上的不能播放,二保存在手机上的就可以播放
补充:移动开发 , Android