飞道的博客

Windows/Android平台视频同屏功能组件EasyScreenLive-Win开启RTSP服务如何获取本机地址?

293人阅读  评论(0)

经过这么多年的视频技术开发,TSINGSEE青犀视频团队已经有了一套自己的研发体系,除了大家比较熟知的视频智能分析平台外,其实TSINGSEE青犀视频还有很多好用的SDK及工具。其中EasyScreenLive就是我们研发的一款简单、高效、稳定的同屏功能组件。

EasyScreenLive可以提供一个轻量级的RTSPSERVER服务,其中Win版测试调用方法中是通过以下定义的接口函数完成:


  
  1. //开始RTSP服务 LIB_EASYSLIVE_API int EasyScreenLive_StartServer(EASYSLIVE_HANDLE handler, int listenport, char *username, char * password, EASYLIVE_CHANNEL_INFO_T *channelInfo, int channelNum);

既然是本机开启服务,肯定需要告知客户端端本机的地址是多少,我们可以通过以下方法获取本机的IP地址,然后在开启服务的RTSP URL中完整拼接。


  
  1. int GetLocalIP( std::string &local_ip )
  2. {
  3. WSADATA wsaData = {0};
  4. if (WSAStartup(MAKEWORD(2, 1), &wsaData) != 0)
  5. return -1;
  6. char szHostName[MAX_PATH] = {0};
  7. int nRetCode;
  8. nRetCode = gethostname(szHostName, sizeof(szHostName));
  9. PHOSTENT hostinfo;
  10. if (nRetCode != 0)
  11. return WSAGetLastError();
  12. hostinfo = gethostbyname(szHostName);
  13. local_ip = inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
  14. WSACleanup();
  15. return 1; }

具体调用方法如下:


  
  1. ret = EasyScreenLive_StartServer( g_pusher, 8554, "", "", liveChannel, MAX_CHANNEL_NUM ) ;
  2. string ip ;
  3. GetLocalIP( ip) ;
  4. printf( "start stream: rtsp://%s:8554/channel=0\n", ip.c_str() ) ;

与TSINGSEE青犀视频开发的视频智能分析一样,我们的EasyScreenLive组件也提供了诸多接口,开发者只需要简单调用几个接口就可以满足企业级应用的需求,并且经过多年的项目和生产环境检验,目前已经成功稳定运行于多家合作伙伴的商业产品系统中。

随着科技的发展,无纸化会议服务有效的实现了单位与单位、单位与合作商之间的对接,同屏服务能更好的解决客户的实际需求,在无纸化会议中采用我们的EasyScreenLive组件也是未来发展的一个主要方向。如果大家有需求,欢迎联系我们。


转载:https://blog.csdn.net/TsingSee/article/details/111319559
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场