您的位置:首页 > 其它

Sipdroid中的视频通话是如何实现的?

2011-11-22 11:04 148 查看
Sipdroid中的视频原理是怎么样的?

涉及到视频传输的类是org.sipdroid.sipua.ui中的VideoCamera,VideoCameraNew,VideoCameraNew2,VideoPrewView。

首先呢,双边的视频观看,走的还是数据报包,有数据报包的ip和端口就行了。

那么发送视视频数据的方式和观看视频数据的方式是如何实现的呢?

发送视频数据就非常的巧妙了,在Android拍传的那篇文章中,采用的是获取预览帧的数据并进行发送来实现的,

详细文档见:

http://www.shouyanwang.org/thread-7-1-1.html

这种方式的弊端就是预览帧的编码特别的耗费时间,流畅性差,而且对编码器的效率的依耐性比较高。

但是Sipdroid可以直接的从MediaRecord里面已经生成好的视频数据中提取出H264/H263的数据,这些数据已经经过了相应的编码,具体的怎么实现提取H263/H264的,我会在后面说,非常牛X哦.

然后作为观看段呢?

怎么观看呢,其实观看就2行代码,

mVideoFrame.setVideoURI(Uri.parse("rtsp://"+Receiver.engine(mContext).getRemoteAddr()+"/"+

Receiver.engine(mContext).getRemoteVideo()+"/sipdroid"));

通过内置的videoview来通过RTSP来进行播放,那么也就是说服务器会将传递的RTP的视频数据流封装成RTSP的流传递给手机的videoview来实现观看,同样也不需要解码库,真是涉及独到啊。

所以Sipdroid开源代码里只有声音的编码库,没有视频的编码库.
转自http://www.shouyanwang.org/thread-59-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: