• 【开发记录】RTSP/RTP协议直播推送库EasyPusher推RTSP流至EasyDarwin开源平台实现自定义Stream


    基于EasyPusher sdk库工程(即library module)实现一个推送客户端非常简单便捷,因为sdk端已经将各种烦人的状态维护\错误检查\权限判定\UI同步等功能都实现了,开发者仅仅只需要实现若干接口即可。

    今天遇到一个客户需要用EasyPusher推RTSP流至EasyDarwin流媒体服务,然后需要用Kurento服务拉EasyDarwin分发的RTSP流做其它应用,但是默认EasyPusher的流在EasyDarwin是有.sdp后缀的,但是Kurento服务不支持,需要我们技术进行协助。

    我们先看下正常的效果,如下图,红色标注的为视频流的后缀名.sdp。

    这个是由推流端决定的流名称,需要修改EasyPusher代码模块,StartPush函数中定义参数sPushName为流名称,函数定义如下:

    int CSourceManager::StartPush(char* ServerIp, int nPushPort, char* sPushName, int nPushBufSize, bool bPushRtmp)
    
     	m_sPushInfo.pusherHandle = EasyPusher_Create();
     	strcpy(m_sPushInfo.pushServerAddr,  ServerIp);
     	m_sPushInfo.pushServerPort = nPushPort;
     	strcpy(m_sPushInfo.sdpName, sPushName);
     	Easy_U32 nRet = 0;
     	if (NULL != m_sPushInfo.pusherHandle )
     	{
     		EasyPusher_SetEventCallback(m_sPushInfo.pusherHandle, __EasyPusher_Callback, 0, NULL);
     		nRet = EasyPusher_StartStream(m_sPushInfo.pusherHandle ,
      			ServerIp, nPushPort, sPushName, EASY_RTP_OVER_TCP, "", "", 
    (EASY_MEDIA_INFO_T*)&m_mediainfo, nPushBufSize, 0);//512-2048
     	}
    	 	else
     	{
     		nRet = -1;
     	}
     	m_bPushRtmp = bPushRtmp;
     	if (bPushRtmp)
     	{ 		
    if (!m_pEasyrtmp)
     		{
     			m_pEasyrtmp=new EasyRtmp();
     		}
     		char szURL[MAX_PATH];
     		memset(szURL, 0, sizeof(MAX_PATH));
     		sprintf(szURL, "rtmp://%s:1935/live/%s", ServerIp,  sPushName); 		nRet = m_pEasyrtmp->Link(szURL,1280);
     	}
    

    其中sPushName 为传入的Stream名称,我们强制定义sPushName=”2”

    看下效果如下图:

    关于EasyDarwin

    EasyDarwin是TSINGSEE青犀视频研发团队研发的开源平台,能够帮助流媒体开发者快速构建流媒体平台,更快更便捷的实现移动互联网视频直播或点播。目前其衍生的视频流媒体平台包括EasyGBS、EasyNVR、EasyDSS、EasyCVR等,此外还包括EasyPlayer项目播放器,如果大家感兴趣,欢迎大家联系我们了解咨询。

  • 相关阅读:
    vue-cli(vue脚手架)简单流程
    windows环境之node.js安装与环境配置
    fiddler的下载和简单使用
    Linux 配置nginx 代理tomcat,配置ssl
    来聊一聊导出数据问题
    作为一个开发人员应该具备怎么样技术栈和职业素养
    NODEJS的误打误撞
    聊一下程序员的日常
    openstack安装部署私有云详细图文
    openstack:OpenStack架构详解,
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14037442.html
Copyright © 2020-2023  润新知