rtcp

WebRTC to Gstreamer Bridge

匿名 (未验证) 提交于 2019-12-03 01:44:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I'm trying to stream audio from a browser to a gstreamer pipeline on a server. I'm currently using Kurento, and modifying the Hello World example to try to connect an RTP Endpoint to the pipeline -- but am having trouble. I know the media is getting there because when I swap in a Recording Endpoint, I get a valid recording. The Kurento Node JS is: pipeline.create("RtpEndpoint", {}, function(error, rtpEndpoint) { if (error) { console.log("Recorder problem"); return sendError(res, 500, error); } console.log("Creating WebRtcEndpoint"); pipeline

LibJingle on Android SRTP error on CreateAnswer

匿名 (未验证) 提交于 2019-12-03 01:26:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Im building an android app that should be able to communicate audio with another client built on libjingle. The first thing im trying to do is setup a call between "the other" client and my android app. We use XMPP as a signaling service. So after this : peerConnectiobObj.setRemoteDescription(sdp) I get the successcallback (so I guess the remote description is fine?) And then according to what I think I have figured out its time for me to create my answer. @Override public void onCreateSuccess(SessionDescription sessionDescription) {

SparkSQL报错:Exception in thread "main" org.apache.spark.sql.catalyst.errors.package$TreeNodeException

匿名 (未验证) 提交于 2019-12-03 00:26:01
错误信息: 18/06/13 13:17:59 WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME. 18/06/13 13:24:08 ERROR KeyProviderCache: Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !! 18/06/13 13:24:27 WARN Utils: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.debug.maxToStringFields' in SparkEnv.conf. Exception in thread "main" org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree: Exchange hashpartitioning

WebRTC 基于GCC的拥塞控制(下)

匿名 (未验证) 提交于 2019-12-03 00:22:01
本文在文章[1]的基础上,从源代码实现角度对WebRTC的GCC算法进行分析。主要内容包括: RTCP RR的数据源、报文构造和接收,接收端基于数据包到达延迟的码率估计,发送端码率的计算以及生效于目标模块。 拥塞控制是实时流媒体应用的重要服务质量保证。通过本文和文章[1][2],从数学基础、算法步骤到实现细节,对WebRTC的拥塞控制GCC算法有一个全面深入的理解,为进一步学习WebRTC奠定良好基础。 1 GCC算法框架再学习 本节内容基本上是文章[1]第1节的复习,目的是再次复习GCC算法的主要框架,梳理其算法流程中的数据流和控制流,以此作为后续章节的行文提纲。GCC算法的数据流和控制流如图1所示。 图1 GCC算法数据流和控制流 对发送端来讲,GCC算法主要负责两件事:1)接收来自接收端的数据包信息反馈,包括来自RTCP RR报文的丢包率和来自RTCP REMB报文的接收端估计码率,综合本地的码率配置信息,计算得到目标码率A。2)把目标码率A生效于目标模块,包括PacedSender模块,RTPSender模块和ViEEncoder模块等。 对于接收端来讲,GCC算法主要负责两件事:1)统计RTP数据包的接收信息,包括丢包数、接收RTP数据包的最高序列号等,构造RTCP RR报文,发送回发送端。2)针对每一个到达的RTP数据包,执行基于到达时间延迟的码率估计算法

记录一下 接入大华ipc摄像机rtsp流的经历

匿名 (未验证) 提交于 2019-12-03 00:20:01
当时接入rtsp服务器时,我测过一些别的厂家的ipc,没有理会rtcp消息。 当对于大华的ipc 不理会rtcp不行啊,你必须建立rtcp的通讯 随便给它发点什么东西都可以,然后流就接通上来了。 不知道我这是不是个例,仅作为我这次经历的记录 文章来源: 记录一下 接入大华ipc摄像机rtsp流的经历

RTP/RTCP/RTSP

人盡茶涼 提交于 2019-12-02 19:24:09
一.产生的背景 随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。 这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行多媒体数据实时传输. RTP/RTCP,RTSP图例 协议关系图 二.RTP/RTCP/RTSP协议与TCP/IP协议对比 那么,现在有个疑问是:为什么TCP/IP协议就不能满足多媒体通信的要求呢? 这是因为TCP有以下4个特点: 1.TCP重传机制 2.TCP拥塞控制机制 3.TCP报文头比UDP报文头要大 4.TCP的启动速度慢 RTP由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工作组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据这些信息发送和接受方可以协商编码类型,可以对接收到的数据包进行排序等工作;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究表明,RTP/RTCP所提出的实时数据的传输机制是行之有效的。 对比记忆 IP:数据传输 RTP:多媒体数据实时传输 TCP:保证数据传输可靠 RTCP:保证多媒体数据传输的可靠 三

webrtc中的rtcp处理

≯℡__Kan透↙ 提交于 2019-11-30 12:32:07
在webrtc中,处理rtcp,目前的版本是在, rtcp_sender.h 和 rtcp_sender.cpp中实现; 当收到rtcp packet时,调用过程,主要是以下三个函数: 接收-》解析-》响应; IncomingPacket -》{ ParseCompoundPacket -》 TriggerCallbacksFromRtcpPacket }; 当然,还是实现了(根据rtcp)延时计算: // Get rtt. int32_t RTT(uint32_t remote_ssrc, int64_t* last_rtt_ms, int64_t* avg_rtt_ms, int64_t* min_rtt_ms, int64_t* max_rtt_ms) const; void RTCPReceiver:: IncomingPacket (const uint8_t* packet, size_t packet_size) { if (packet_size == 0) { RTC_LOG(LS_WARNING) << "Incoming empty RTCP packet"; return; } PacketInformation packet_information; if (! ParseCompoundPacket (packet, packet + packet

sip/sdp/rtp/rtcp/rtsp间的关系

China☆狼群 提交于 2019-11-27 10:08:44
用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步。 转自该博客:http://blog.csdn.net/xdwyyan/article/details/41721307?utm_source=tuicool&utm_medium=referral 感觉这些基础关系此君写的比较清楚,转载学习一下,如有侵权,联立删 1、 RTP Real-time Transport Protocol,是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在UDP协议上的。 RTP 本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于网络应用程序去实现这一过程。 RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性。 RTP 实行有序传送, RTP 中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。 2、 RTCP 实时传输控制协议(Real-time Transport Control

【webrtc】webrtc的rtp重传代码分析

一个人想着一个人 提交于 2019-11-26 17:29:56
pgm不太能用,没有想象中的可靠,重传机制貌似仍然使用组播重传,丢包率80%的网络感觉没啥改进,如果有所好转延迟估计也是个不小的问题。 后听说rtp也有nack机制,webrtc基于rtp实现了重传在一定程度上保证可靠性。 在各路大神的指引下找到了rfc4585,看到了这么一段 RTCP扩展反馈报文,有一种nack报文 当FMT=1并且PT=205时,代表此报文是个NACK报文 Name Value Brief Description RTPFB 205 Transport layer FB message PSFB 206 Pyload-specific FB message 0: unassigned 1: Generic NACK 2-30: unassigned 31: reserved for future expansion of the identifier number space The Generic NACK message is identified by PT=RTPFB and FMT=1. FCI字段会有如下图所示的数据 PID:表示Packet ID,用于表明当前接收端丢失的数据包的序号,是接收端期待收到的下一个数据包 BLP:表示bitmask of following lost lost packets,占两个字节,16位

RTP/RTSP编程

本秂侑毒 提交于 2019-11-26 13:05:32
https://blog.csdn.net/pu1030/article/details/7619908 http://blog.chinaunix.net/uid-27875-id-5017161.html 流媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议、IP电话等应用场合的技术基础。RTP是进行实时流媒体传输的标准协议和关键技术,本文介绍如何在Linux下利用JRTPLIB进行实时流媒体编程。 一、流媒体简介 随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负责向用户连续、实时地发送,这样用户可以不必等到整个文件全部下载完毕,而只需要经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件的剩余部分将继续从流媒体服务器下载。 流(Streaming)是近年在Internet上出现的新概念,其定义非常广泛