当前位置: 首页 > news >正文

佛山用户网站建设二维码插件wordpress

佛山用户网站建设,二维码插件wordpress,wordpress 弹框,青岛房地产团购网站建设为什么开发轻量级RTSP服务#xff1f; 开发轻量级RTSP服务的目的是为了解决在某些场景下用户或开发者需要单独部署RTSP或RTMP服务的问题。这种服务的优势主要有以下几点#xff1a; 便利性#xff1a;通过轻量级RTSP服务#xff0c;用户无需配置单独的服务器#xff0c;…为什么开发轻量级RTSP服务 开发轻量级RTSP服务的目的是为了解决在某些场景下用户或开发者需要单独部署RTSP或RTMP服务的问题。这种服务的优势主要有以下几点 便利性通过轻量级RTSP服务用户无需配置单独的服务器降低了部署和配置的复杂性无论是走RTMP还是GB28181均需要平台服务支撑。可扩展性该服务支持同时创建多个RTSP服务便于根据需求扩展或缩减服务规模在性能没问题的情况下启动多个服务支撑多路流数据并发。并发性能满足内网无纸化/电子教室等场景中的低并发需求对并发要求不高的场景也适用低并发解决大问题。兼容性支持H.264/H.265视频编码以及RTSP鉴权、RTSP会话数查看、单播、组播模式。 总的来说轻量级RTSP服务的目标是提供一种便捷、可扩展且能满足低并发需求的服务特别适合在内网环境下使用。 如何在轻量级RTSP服务扩展SEI发送接收 大牛直播SDK支持推送端通过H.264 SEI信息扩展实时传输文本/二进制数据信息播放端做相应解析和回显。 适用场景 公告广播推送将相对/绝对时间戳/时间/公告内容发到播放端播放端实时接收消息并做相应的逻辑处理。冲顶大会推流端实时将题目分发到播放端借助于大牛直播SDK低延迟特性轻松实现“音-画-题”同步接收会议教育类直播推流端将字幕等分发到播放端播放端实时绘制出相关内容应急指挥/单兵推送端将GIS信息/现场采集到的数据实时写入并分发到播放端在线教育推流端将激光笔和涂鸦操作分发到播放端播放端实时划圈划线实现特定特效。 尽管Windows、Linux、Android和iOS平台我们都支持了H.264扩展SEI发送和接收的模块本文先以Windows平台为例介绍下关键的接口设计思路 本文以Windows平台轻量级RTSP服务为例数据源采集计时器窗体然后启动RTSP服务发布RTSP流发布后自动发送自定义数据播放端接收并回显轻量级RTSP服务发过来的自定义数据。上图可以看到整体延迟在毫秒级200多毫秒。 先说启动停止轻量级RTSP服务关键接口设计 /*rtsp server操作接口*//** 创建一个rtsp server * pRtspServerHandle: rtsp server 句柄* reserve保留参数传0* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *OpenRtspServer)(NT_PHANDLE pRtspServerHandle, NT_INT32 reserve);/** 设置rtsp server 监听端口, 在StartRtspServer之前必须要设置端口* rtsp_server_handle: rtsp server 句柄* port: 端口号可以设置为554,或者是1024到65535之间,其他值返回失败* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerPort)(NT_HANDLE rtsp_server_handle, NT_INT32 port);/** 设置rtsp server 鉴权用户名和密码, 这个可以不设置只有需要鉴权的再设置* rtsp_server_handle: rtsp server 句柄* user_name: 用户名,必须是英文* password密码,必须是英文* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerUserNamePassword)(NT_HANDLE rtsp_server_handle, NT_PCSTR user_name, NT_PCSTR password);/** 设置rtsp server 组播, 如果server设置成组播就不能单播组播和单播只能选一个, 一般来说单播网络设备支持的好wifi组播很多路由器不支持* rtsp_server_handle: rtsp server 句柄* is_multicast: 是否组播, 1为组播, 0为单播, 其他值接口返回错误, 默认是单播* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerMulticast)(NT_HANDLE rtsp_server_handle, NT_INT32 is_multicast);/** 设置rtsp server 组播组播地址 * rtsp_server_handle: rtsp server 句柄* multicast_address: 组播地址* 如果设置的不是组播地址, 将返回错误* 组播地址范围说明: [224.0.0.0, 224.0.0.255] 为组播预留地址, 不能设置. 可设置范围为[224.0.1.0, 239.255.255.255], 其中SSM地址范围为[232.0.0.0, 232.255.255.255]* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspServerMulticastAddress)(NT_HANDLE rtsp_server_handle, NT_PCSTR multicast_address);/** 获取rtsp server当前的客户会话数, 这个接口必须在StartRtspServer之后再调用* rtsp_server_handle: rtsp server 句柄* session_numbers: 会话数* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *GetRtspServerClientSessionNumbers)(NT_HANDLE rtsp_server_handle, NT_INT32* session_numbers);/** 启动rtsp server* rtsp_server_handle: rtsp server 句柄* reserve: 保留参数传0* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *StartRtspServer)(NT_HANDLE rtsp_server_handle, NT_INT32 reserve);/** 停止rtsp server* rtsp_server_handle: rtsp server 句柄* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *StopRtspServer)(NT_HANDLE rtsp_server_handle);/** 关闭rtsp server* 调用这个接口之后rtsp_server_handle失效* 成功返回 NT_ERC_OK*/NT_UINT32 (NT_API *CloseRtspServer)(NT_HANDLE rtsp_server_handle);/*---rtsp server操作接口---*/ 再说发布RTSP流相关接口设计 /*发布rtsp流相关接口*//** 设置rtsp的流名称* stream_name: 流程名称不能为空字符串必须是英文* 这个作用是: 比如rtsp的url是:rtsp://192.168.0.111/test, test就是设置下去的stream_name* 成功返回 NT_ERC_OK*/NT_UINT32(NT_API *SetRtspStreamName)(NT_HANDLE handle, NT_PCSTR stream_name);/** 给要发布的rtsp流设置rtsp server, 一个流可以发布到多个rtsp server上rtsp server的创建启动请参考OpenRtspServer和StartRtspServer接口* handle: 推送实例句柄* rtsp_server_handlertsp server句柄 * reserve 保留参数传0*/NT_UINT32(NT_API *AddRtspStreamServer)(NT_HANDLE handle, NT_HANDLE rtsp_server_handle, NT_INT32 reserve);/** 清除设置的rtsp server*/NT_UINT32(NT_API *ClearRtspStreamServer)(NT_HANDLE handle);/*启动rtsp流reserve: 保留参数传0*/NT_UINT32(NT_API *StartRtspStream)(NT_HANDLE handle, NT_INT32 reserve);/*停止rtsp流*/NT_UINT32(NT_API *StopRtspStream)(NT_HANDLE handle);/*---发布rtsp流相关接口---*/ 发送自定义数据相关接口设计 /*发送用户自定义数据相关接口*//** 1. 目前使用sei机制发送用户自定数据到播放端* 2. 这种机制有可能会丢失数据, 所以这种方式不保证接收端一定能收到* 3. 优势:能和视频保持同步虽然有可能丢失但一般的需求都满足了* 4. 目前提供两种发送方式 第一种发送二进制数据, 第二种发送 utf8字符串*//** 设置发送队列大小为保证实时性默认大小为3, 必须设置一个大于0的数* 如果数据超过队列大小将丢掉队头数据* 这个接口请在 StartPublisher 之前调用*/NT_UINT32(NT_API *SetPostUserDataQueueMaxSize)(NT_HANDLE handle, NT_INT32 max_size, NT_INT32 reserve);/** 清空用户数据队列, 有些情况可能会用到比如发送队列里面有4条消息再等待发送,又想把最新的消息快速发出去, 可以 * 先清除掉正在排队消息, 再调用PostUserXXX **/NT_UINT32(NT_API *ClearPostUserDataQueue)(NT_HANDLE handle);/** 发送二进制数据* data: 二进制数据* size数据大小* 注意: 1.目前数据大小限制在256个字节以内太大可能会影响视频传输如果有特殊需求需要增大限制请联系我们* 2. 如果积累的数据超过了设置的队列大小之前的队头数据将被丢弃* 3. 必须再调用StartPublisher之后再发送数据*/NT_UINT32(NT_API *PostUserData)(NT_HANDLE handle, const NT_BYTE* data, NT_UINT32 size, NT_INT32 reserve);/** 发送utf8字符串* utf8_str: utf8字符串* 注意: 1. 字符串长度不能超过256, 太大可能会影响视频传输如果有特殊需求需要增大限制请联系我们* 2. 如果积累的数据超过了设置的队列大小之前的队头数据将被丢弃* 3. 必须再调用StartPublisher之后再发送数据*/NT_UINT32(NT_API *PostUserUTF8StringData)(NT_HANDLE handle, NT_PCSTR utf8_str, NT_INT32 reserve);/*----发送用户自定义数据相关接口----*/播放端接收用户自定义数据接口 设置用户数据回调 player_api_.SetUserDataCallBack(player_handle_, GetSafeHwnd(), NT_SP_SDKUserDataHandle); 回调实现 extern C NT_VOID NT_CALLBACK NT_SP_SDKUserDataHandle(NT_HANDLE handle, NT_PVOID user_data,NT_INT32 data_type,NT_PVOID data,NT_UINT32 size,NT_UINT64 timestamp,NT_UINT64 reserve1,NT_INT64 reserve2,NT_PVOID reserve3) {if ( 1 data_type ){std::wostringstream oss;oss Luserdata ;const NT_BYTE* byte_data reinterpret_castconst NT_BYTE*(data);if ( byte_data ! nullptr size 0 ){oss L byte data size size;}std::wstring_convertstd::codecvt_utf8wchar_t conv;oss L t: timestamp L\r\n;OutputDebugStringW(oss.str().c_str());}else if ( 2 data_type ){const NT_CHAR* str_data reinterpret_castconst NT_CHAR*(data);if (str_data ! nullptr size 0){std::unique_ptrstd::string s(new std::string(str_data, str_data size));// oss L utf8 string: conv.from_bytes(*s);// oss L size size;if ( !s-empty() ){HWND hwnd reinterpret_castHWND(user_data);if ( hwnd ! nullptr ::IsWindow(hwnd) ){::PostMessage(hwnd, WM_USER_SDK_SP_RECV_USER_DATA, (WPARAM)s.release(), (LPARAM)timestamp);}}}}} 事件处理 LRESULT CSmartPlayerDlg::OnSDKRecvUserData(WPARAM wParam, LPARAM lParam) {std::unique_ptrstd::string str((std::string*)(wParam));if (str !str-empty()){auto timestamp (NT_UINT64)(lParam);std::wstring_convertstd::codecvt_utf8wchar_t conv;auto w_str conv.from_bytes(*str);std::wostringstream wss;wss L收到推送端消息:[ w_str L ] t: timestamp;edit_player_msg_.SetWindowTextW(wss.str().c_str());}return S_OK; } 总结 需要注意的是无论是轻量级RTSP服务还是RTMP推送设计因为是通过H.264扩展SEI发送和接收自定义数据会存在数据或消息丢失的情况很难实现可靠传输当然也可以在多帧数据携带数据确保消息多次重传达到防止部分数据丢失的目的。
http://www.zqtcl.cn/news/151548/

相关文章:

  • 建设租车网站深圳ww
  • 推广网络网站潜江资讯网一手机版
  • 凡科网站自己如何做毕设 做网站
  • 一起做网站逛市场百度权重查询网站
  • 专业网站优化推广网站核查怎么抽查
  • 牡丹江站salong wordpress
  • 网站建设公司做网站要多少费用有哪些外国网站国内可以登录的
  • 天津建站平台网页制作免费的素材网站
  • 建设网站需要专业哪个企业提供电子商务网站建设外包
  • 公司网站建设及维护网站建设思维
  • 那个网站可以学做西餐17做网站广州沙河
  • 品牌网站建设哪里好京东网站建设案例
  • 亚马逊海外版网站深圳市工商注册信息查询网站
  • 新乐做网站优化网站上漂亮的甘特图是怎么做的
  • 新网站应该怎么做seo品牌推广方案思维导图
  • 想要网站导航推广页浅谈中兴电子商务网站建设
  • 免费引流在线推广成都网站优化费用
  • 老河口市网站佛山市点精网络科技有限公司
  • word模板免费网站seo引擎优化是做什么的
  • 办网站怎么赚钱鄠邑建站 网站建设
  • 宜春网站建设推广微信小程序开发
  • 巴南城乡建设网站免费网站建设软件大全
  • 湖南网站建设公公司没有自己的网站
  • 刚建设的网站如何推广网站恢复正常
  • 怎么做制作网站的教程永久免费空间免备案
  • 网站维护运营怎么做简单的手机网址大全
  • 网站建设规划设计公司排名使用模块化的网站
  • 南宁网站seo大概多少钱门户网站建设公司渠道
  • 如何建国际商城网站海门做网站公司
  • 做网站应该画什么图注册子公司流程及所需资料