这是我工作之余完成的第一个软件,全凭爱好坚持下来,花了不少时间,也收获很多。
博客中很多内容都是亲身实践所得,有些内容甚至可以说是“全网首发 ”,比如网上多是ffmpeg拉流后ffmpeg录制,没搜到live555拉流ffmpeg录制的相关实现。
开发过程中,参考了许多开源项目,比如VLC中关于live555拉流部分;同时获得了公司流媒体大佬的大力支持,这里一并感谢!
专栏中并未提到UDP丢包问题,实测用海康摄像头wifi链接家里100M宽带,客户端使用RTP over UDP模式拉流时,会出现丢包。客户端使用VLC时也会丢包,出现马赛克现象,说明live555源码中并未对丢包做过多的预防处理。但是把丢包问题留给上层处理是非常不合适的,因为上层不好判断哪一包丢了。比较靠谱的方法是深入live555源码,根据RTP包序号来判断丢包。
不过话说回来,UDP是不可靠传输协议,媒体包在因特网上传输时必然会面临着丢包。使用UDP的目的就是实时性好,如果加上丢包处理,势必会影响实时性。
UDP丢包处理的目的是用画面卡顿的代价来取代马赛克,然而RTP over TCP模式在相同的网络中就是卡顿无马赛克,那为何不直接用这种模式呢。
因此,个人觉得无特殊要求的话,这里没必要处理UDP丢包。
关于RTP over UDP和RTP over TCP的比较可以参考:http://thompsonng.blogspot.com/2011/03/rtsp-rtp-over-tcp.html
来源:oschina
链接:https://my.oschina.net/u/4267218/blog/4924706