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

ps网站背景图片怎么做如何增强网站的安全性

ps网站背景图片怎么做,如何增强网站的安全性,wordpress做官网,福利 源码 wordpress我们先看看官方规范针对TCP协议的视音频传输描述#xff1a; 实时视频点播、历史视频回放与下载的 TCP媒体传输应支持基于RTP封装的视音频PS流#xff0c;封装格式参照IETFRFC4571。 流媒体服务器宜同时支持作为TCP媒体流传输服务端和客户端。默认情况下#xff0c;前端设…我们先看看官方规范针对TCP协议的视音频传输描述 实时视频点播、历史视频回放与下载的 TCP媒体传输应支持基于RTP封装的视音频PS流封装格式参照IETFRFC4571。 流媒体服务器宜同时支持作为TCP媒体流传输服务端和客户端。默认情况下前端设备向流媒体服务器发送媒体流时前端设备应作为TCP媒体流传输客户端,流媒体服务器作为 TCP媒体流传输服务端;同级或跨级流媒体服务器间基于 TCP协议传输视频流时,媒体流的接收方宜作为TCP媒体流传输服务端。 媒体流的发送方和接收方可扩展SDP参数进行TCP媒体流传输服务端和客户端的协商,协商机制参考附录 F及IETFRFC4571的定义。 这里我们看个INVITE信令交互示例 INVITE sip:340200000013200000013402000000 SIP/2.0 Via: SIP/2.0/TCP 192.168.0.105:15060;rport;branchz9hG4bK630055772 From: sip:340200000020000000013402000000;tag562055772 To: sip:340200000013200000013402000000 Call-ID: 589055668 CSeq: 183 INVITE Content-Type: APPLICATION/SDP Contact: sip:34020000002000000001192.168.0.105:15060 Max-Forwards: 70 User-Agent: LiveGB28181 Subject: 34020000001320000001:0200000001,34020000002000000001:0 Content-Length: 222v0 o34020000001320000001 0 0 IN IP4 192.168.0.105 sPlay cIN IP4 192.168.0.105 t0 0 mvideo 30076 RTP/AVP 96 97 98 arecvonly artpmap:96 PS/90000 artpmap:97 MPEG4/90000 artpmap:98 H264/90000 y0200000001 判断媒体流走TCP还是UDP主要看这里 mvideo 30076 RTP/AVP 96 97 98 传输方式采用“RTP/AVP”标识传输层协议为 RTP over UDP采用“TCP/RTP/AVP”标识传输层协议为 RTP over TCP需要注意的是我们实际对接的时候部分厂商SDP非常随意有的甚至直接标记个tcp这让我们对接的时候很困惑。 技术实现 本文以大牛直播SDK的Android平台GB28181设备接入端为例启动GB28181完成注册、catalog等交互后Invite上来后设置媒体流通过TCP还是UDP发送出去 Override public void ntsOnInvitePlay(String deviceId, SessionDescription session_des) {handler_.postDelayed(new Runnable() {Overridepublic void run() {// 先振铃响应下gb28181_agent_.respondPlayInvite(180, device_id_);MediaSessionDescription video_des null;SDPRtpMapAttribute ps_rtpmap_attr null;// 28181 视频使用PS打包VectorMediaSessionDescription video_des_list session_des_.getVideoPSDescriptions();if (video_des_list ! null !video_des_list.isEmpty()) {for(MediaSessionDescription m : video_des_list) {if (m ! null m.isValidAddressType() m.isHasAddress() ) {video_des m;ps_rtpmap_attr video_des.getPSRtpMapAttribute();break;}}}if (null video_des) {gb28181_agent_.respondPlayInvite(488, device_id_);Log.i(TAG, ntsOnInvitePlay get video description is null, response 488, device_id: device_id_);return;}if (null ps_rtpmap_attr) {gb28181_agent_.respondPlayInvite(488, device_id_);Log.i(TAG, ntsOnInvitePlay get ps rtp map attribute is null, response 488, device_id: device_id_);return;}Log.i(TAG,ntsOnInvitePlay, device_id: device_id_, is_tcp: video_des.isRTPOverTCP() rtp_port: video_des.getPort() ssrc: video_des.getSSRC() address_type: video_des.getAddressType() address: video_des.getAddress());long rtp_sender_handle libPublisher.CreateRTPSender(0);if ( rtp_sender_handle 0 ) {gb28181_agent_.respondPlayInvite(488, device_id_);Log.i(TAG, ntsOnInvitePlay CreateRTPSender failed, response 488, device_id: device_id_);return;}gb28181_rtp_payload_type_ ps_rtpmap_attr.getPayloadType();gb28181_rtp_encoding_name_ ps_rtpmap_attr.getEncodingName();libPublisher.SetRTPSenderTransportProtocol(rtp_sender_handle, video_des.isRTPOverUDP()?0:1);libPublisher.SetRTPSenderIPAddressType(rtp_sender_handle, video_des.isIPv4()?0:1);libPublisher.SetRTPSenderLocalPort(rtp_sender_handle, 0);libPublisher.SetRTPSenderSSRC(rtp_sender_handle, video_des.getSSRC());libPublisher.SetRTPSenderSocketSendBuffer(rtp_sender_handle, 2*1024*1024); // 设置到2MlibPublisher.SetRTPSenderClockRate(rtp_sender_handle, ps_rtpmap_attr.getClockRate());libPublisher.SetRTPSenderDestination(rtp_sender_handle, video_des.getAddress(), video_des.getPort());if ( libPublisher.InitRTPSender(rtp_sender_handle) ! 0 ) {gb28181_agent_.respondPlayInvite(488, device_id_);libPublisher.DestoryRTPSender(rtp_sender_handle);return;}int local_port libPublisher.GetRTPSenderLocalPort(rtp_sender_handle);if (local_port 0) {gb28181_agent_.respondPlayInvite(488, device_id_);libPublisher.DestoryRTPSender(rtp_sender_handle);return;}Log.i(TAG,get local_port: local_port);String local_ip_addr IPAddrUtils.getIpAddress(context_);MediaSessionDescription local_video_des new MediaSessionDescription(video_des.getType());local_video_des.addFormat(String.valueOf(ps_rtpmap_attr.getPayloadType()));local_video_des.addRtpMapAttribute(ps_rtpmap_attr);local_video_des.setAddressType(video_des.getAddressType());local_video_des.setAddress(local_ip_addr);local_video_des.setPort(local_port);local_video_des.setTransportProtocol(video_des.getTransportProtocol());local_video_des.setSSRC(video_des.getSSRC());if (!gb28181_agent_.respondPlayInviteOK(device_id_,local_video_des) ) {libPublisher.DestoryRTPSender(rtp_sender_handle);Log.e(TAG, ntsOnInvitePlay call respondPlayInviteOK failed.);return;}gb28181_rtp_sender_handle_ rtp_sender_handle;}private String device_id_;private SessionDescription session_des_;public Runnable set(String device_id, SessionDescription session_des) {this.device_id_ device_id;this.session_des_ session_des;return this;}}.set(deviceId, session_des),0); } 接口设计如下 /***设置 RTP Sender传输协议** param rtp_sender_handle, CreateRTPSender返回值* param transport_protocol, 0:UDP, 1:TCP, 默认是UDP** return {0} if successful*/public native int SetRTPSenderTransportProtocol(long rtp_sender_handle, int transport_protocol); 以上是GB28181基于TCP协议的视音频媒体传输探究及实现感兴趣的开发者可以查看相关协议规范根据需求实现自己的业务逻辑即可。
http://www.zqtcl.cn/news/655161/

相关文章:

  • 建材网站建设功能方案上海建筑室内设计有限公司
  • 高端企业网站设计公司怎么帮公司做网站建设
  • 湖北专业网站建设维修电话企业网络管理方案
  • 做网站外链wordpress网页怎么上传
  • wordpress站点优化石景山网站开发
  • 企业网站建设的流程店铺推广引流
  • 北京网站优化wyhseo信息化建设杂志社官方网站
  • 网站图片处理方案动漫制作这个专业怎么样
  • 做写手哪个网站好黄页网站建设黄页网站建设
  • 多语言企业网站免费模板网站哪个好
  • 拟一份饰品网站建设合同襄樊门户网站建设
  • 你对网站第一印象受欢迎的广州做网站
  • 网站开发项目的需求分析浙江省城乡建设网站证件查询
  • 整站seo定制简单 大气 网站模版
  • 网站界面设计策划书怎么做云匠网订单多吗
  • html教程 pdf网站建设优化兰州
  • 招聘网站可以同时做两份简历吗外贸网站示例
  • 黑链 对网站的影响企业融资计划书范本
  • 自己的简历怎么制作网站学院网站建设成效
  • 周口seo 网站郑州建站网站的公司
  • 网站布局模板北京装修大概多少钱一平方
  • 德阳网站建设ghxhwl风景网站模板
  • 昌邑网站建设拓者设计吧现代效果图
  • 学校网站建设成功案例网站开发需要学习哪些内容
  • 怎么让公司建设网站seo于刷网站点击
  • 网站建设合同严瑾建设网站宣传
  • 哪个网站做餐饮推广最好深圳市信任网站
  • 网站模板 整站源码广州网站vi设计报价
  • 百度速页建站wordpress审核插件
  • 怎么给网站wordpress专业的vi设计公司