前面的文章我们已经实现了rtsp->sip;ES<->PS媒体互转的流媒体服务器,或者媒体网关功能,可以支持媒体转发和分发功能;如果是做视频监控的流媒体服务器或者网关的话,通常还需要补充sip->rtsp协议实现;这边文章就干脆补充完整。
要实现sip->rtsp协议的媒体转发服务器,其实方案很多,随便移植一个开源的sip协议栈,然后集成一个rtspclient进去就可以实现了,例如osip 做 UAS + live555 做rtspclient,或者pjsip + rtspclient等等,这些都不是我要说的方法。我的方法是接着前面的媒体网关补充一个简单的sip uas实现即可,整体构成 sip-rtsp,es-ps可随意互转的视频监控媒体代理服务器,同时兼容onvif和gb28181应用场景的媒体网关;
主要有以下开发步骤:
1、移植osip、EXosip开发实现uas,网上有一些例程代码,我这里就不贴了;
2、将live555的rtspServer封装成媒体处理的api供uas调用,实现媒体转发;
3、根据实际需求情况,控制媒体流输出格式,可以通过配置控制输出es流还是ps流,或者sip协议绑定ps流对应gb28181场景,rtsp协议绑定es流对应onvif应用场景即可,前面的文章实际也给出了这部分代码,所以也不再重复给出了。