使用jrtplib传输一个视频

可以抽象出几个独立的模块
1.网络传输
2.视频
  2.1 视频源采集
  2.1 视频压缩、还原
  2.2 视频回放

如果要源代码,估计是不可能了,每个环节都是蛮大的工程,
不过我可以告诉你每个模块需要注意的环节

1.网络传输
  1.1)TCP不太适合做点对点传输,所以必须将协议层定位在UDP上
  1.2) UDP互联网上传输是不可靠的,在数据包超过1400字节的情况下,易出现路由器舍弃包,如何解决多媒体数据可靠到达呢,有2种不同的方向,各有所长:
  1.2.1) JRTP模式,网络传输层自身不去做数据包拆组包工作,要求视频模块控制到最后的视频数据在1400字节以内,由于视频不可靠到达,并不会影响最终显示结果,最多是丢包时有花屏现象,同时JRTP有一个长处,可以在互联网上做组播。短处显而易见,无法解决不可靠的问题,视频还好,如果是文件传输的话,就会出大问题了,一般都接收不完全的。
  1.2.2)扩展可靠UDP协议,类似的开源项目有Enet,UDT,Raknet,他们都不限制调用者数据包长度,内部都封装了可靠送达机制,缺点就是没法做组播。
  Enet到1.2版本以后基本不再更新,Enet有一个BUG,就是在中国的双网环境下无法做到双网互通,即电信的A点无法与网通的B点 P2P通讯,优点是稳定,传输速度也可以。
  UDT现在的版本是4.1,一直在更新,作者好像是一个美籍华人(赞一个!),优点是传输速度超快,几乎没缺点,我使用只发现一个BUG,应用程序在COM模式下会出现退出时程序异常,作者曾答应修正,但是sourceforge一直被禁,也不知道改了没有。
  Raknet在很多网络游戏里面有使用,我没看出什么优点,做得早应该算优点吧,缺点我测试下来,传输速度有大问题,在网络游戏里面反正数据量不大,也无所谓,做视频传输,不推荐使用。
  1.3)NAT穿透问题
  这个不算什么新问题了,自己google吧。

2.视频
2.1视频采集
  可在DirectX SDK里面看范例
2.2视频压缩
  现在主流使用.263,.264编码(FlV即采用该格式)
  源码比较难找,我也推荐另外一个XVID,这个可以到xvid.org上去下载.
2.3视频回放
  还是DirectX SDK自己看范例
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值