live555、jrtplib、ortp、gstreamer,用哪一个比较好呢?解决方法

live555、jrtplib、ortp、gstreamer,用哪一个比较好呢?解决方法,第1张

接收端想在WindowsPC机上观看。
本人正在读研,以前几乎没接触网络传输。看了很长时间的资料,看大家用的最多的就是live555和jrtplib了,但是这两个都是用C++写的,而我的采集和编码都是用C语言写的。至于ortp和gstreamer好像用的人不多。
------解决方案--------------------------------------------------------
服务器端使用live555、jrtplib,客户端建议如果是windows建议使用DITRECTSHOW,是LINUX建议使用GSTREAMER,至于解码使用ffmpeg就可以了

我们再使用jrtplib传输rtp的数据的时候,在服务器端抓包,发现有数据乱序。而且客户端收到的画面都是从底部开始出现马赛克。所以怀疑是264的I帧在比较大的时候有丢包。
查看服务器缓冲区大小:
cat /proc/sys/net/core/wmen_max

缺省设置:110592
/proc/sys/net/core/wmem_max
该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。

修改大小:
方法1:
encho -n "512000" -> /proc/sys/net/core/wmem_max
sysctl -p /proc/sys/net/core/wmem_max
方法2:
root@grow235:/proc/sys/net/core# sysctl netcorewmem_max
netcorewmem_max = 512000
root@grow235:/proc/sys/net/core# sysctl netcorewmem_max=512100
netcorewmem_max = 512100
root@grow235:/proc/sys/net/core# sysctl netcorewmem_max
netcorewmem_max = 512100
root@grow235:/proc/sys/net/core#

参考地址:
>

很多人都用过rtp协议

实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。

国际电信联盟ITU-T也发布了自己的RTP文档,作为H2250,但是后来当IETF发布了关于它的稳定的标准RFC后就被取消了。它作为因特网标准在RFC 3550(该文档的旧版本是RFC 1889)有详细说明。RFC 3551(STD 65,旧版本是RFC 1890)详细描述了使用最小控制的音频和视频会议。

组成:

RTP标准定义了两个子协议,RTP和RTCP。

数据传输协议RTP,用于实时传输数据。该协议提供的信息包括:时间戳(用于同步)、序列号(用于丢包和重排序检测)、以及负载格式(用于说明数据的编码格式)。

控制协议RTCP,用于QoS反馈和同步媒体流。相对于RTP来说,RTCP所占的带宽非常小,通常只有5%。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13426081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-03
下一篇 2023-08-03

发表评论

登录后才能评论

评论列表(0条)

保存