当前位置: 代码迷 >> 多媒体/流媒体开发 >> 要做一个点对点视频聊天的系统,希望大家能给点建议,该怎么解决
  详细解决方案

要做一个点对点视频聊天的系统,希望大家能给点建议,该怎么解决

热度:6245   发布时间:2013-02-26 00:00:00.0
要做一个点对点视频聊天的系统,希望大家能给点建议
本帖最后由 enjolras 于 2011-06-25 10:43:52 编辑
假定在一个大局域网内,都有独立IP。
第一步,需要实现点对点视频通话功能。

个人决定采用DirectShow,视频编码解码采用Divx的MPEG4 codec,音频采用aac的codec,音频视频分开传送与接收,自己实现Net Sender(发送端Render Filter UDP协议 封装开源的JRtpLib),Net Receiver(接收端Source Filter)。

视频发送接收的Filter链接,音频类似:
发送端:Source Filter -> 编码Filter -> Net Sender Filter
接收端:Net Receiver Filter -> 解码Filter -> Render Filter

想问几个问题:
1,编码解码器的选择方面,是否有更好选择,用这些三方编码解码器是否有版权问题?

2,架构方面,本人希望将Net Sender/Receiver Filter直接写代码里,不向系统注册(与写成Filter组件向系统注册有何优劣?),整个视频音频发送接收这块属于一个独立模块,两点之间的控制信息,文字等采用TCP链接,属于另一个模块,请问下这样有没有什么大问题?有什么能改进的地方?

3,视频音频的同步方面,我是想根据发送时记录的时间戳来同步,若不做同步,效果会不会很差?

4,RTCP协议方面,检测出需要提升质量或者降低质量了用TCP链接发送控制信号,若修改摄像头摄取的图像的分辨率,必定需要先Stop,能否通过动态改变codec处压缩比方式来平滑过渡?具体怎么操作?

5,若要做成安装包,安装相应的编码解码器,是否仅需要拷贝解码编码的dll ax文件到系统目录并regsvr32即可?

6,之前没有过这方面经验,需要在一个月内完成,公司电脑不能上外网,查阅资料不方便,有没有什么好的参考书,比较好的示例代码?

7,若有一些很常见的问题,请不吝赐教,也许您的一句话将带给我很多启发,提前扫除隐藏的障碍。

PS,一个月做个能跑的就行,同步,RTCP,安装包尽力而为,给出建议的都给分,可以追加分数。

------解决方案--------------------------------------------------------
建议直接采集数据,h264编码,发送,
然后接收h264解码,
这种方式传输效率会高些,
directshow做播放器,也许会方便些,传输感觉不是很好。

以前做过,出现问题: 主要是,网络好的情况,没有问题。 网络差,如
网吧,一般就会卡,效果不好!

希望可以帮到你!

ps,新人升星求分!
------解决方案--------------------------------------------------------
建议视频发送和接收不要写成directshow的Filter
自己在udp上做分包重组和排序就行
其实,已经定义为局域网内了,丢包可能性很小,还管RTCP干什么,上面的工作几乎可以忽略,sendto一直发就行。有研究JRtpLib的时间,自己都可以写出一个简单的了。这样算起来,有两天时间就可以完成网络传输部分了,然后有时间你再研究一下rtp协议,慢慢学习,一个月完整实现没有问题。
------解决方案--------------------------------------------------------
可以考虑使用live555开源库
  相关解决方案