问题标签 [rtcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
140 浏览

video-streaming - Live555 流媒体服务器 RTP 丢包重传

live555流媒体服务器是否会重传丢失的RTP数据包?

当我搜索“live555 retransmit”时,它会出现一些结果:

有人知道现在是否由live555自己实现吗?或者那里有任何其他实现?

0 投票
1 回答
215 浏览

webrtc - RFC 8285 中解释的有关 RTP 扩展标头结构的问题

在处理 RTP 标头扩展的RFC 8285中,1 字节标头扩展的结构如下所示(第 4.2 节):

我了解 RFC 中解释的 OxBEDE。然后是“length=3”位,后面是实际的扩展。每个扩展都由 ID 和长度组成。为两字节报头扩展定义了类似的结构。

在这两种类型的标题中,我都不理解“length=3”位部分。它只是用于 32 位边界的填充吗?如果是这样,这样做的目的是什么?易于解析?为什么不在 xBEDE 之后立即启动扩展元素。当然会节省空间。可能是我缺少一些基本的东西。

0 投票
1 回答
1108 浏览

c++ - 使用 GStreamer 发送和接收自定义 RTCP 数据包/事件

我正在寻找构建一个 MCPTT(一键通)类型的应用程序,其中通过发送 RTCP 数据包来处理楼层控制

MCPTT 楼层类型上下文中的 RTCP 数据包在https://www.wireshark.org/docs/dfref/r/rtcp.html中定义(搜索关键字“楼层”)

我正在使用 GStreamer 媒体库进行音频视频流传输。例如,如果我有如下管道,

发件人 1:

发件人 2:

接收者:

我实际上会用 C 代码在上面写,上面仅用于管道表示

在上面的上下文中,基于从pay1/pay2发送并在depay1/depay2接收到的RTCP floor 事件,我将控制输入选择器的活动 sink-pad

我想知道如何在 GStreamer 中创建自定义 RTCP 事件并在接收端发送和接收/解析它们

另外请建议这种方法是否适用于这种用例或任何其他方法/库适合这里

0 投票
0 回答
500 浏览

sip - Freeswitch 在接收 RTCP 的同时发送空 RTP

FreeSWITCH 版本:1.10.3

我希望有人能帮助我。

在来自我们的 sip 提供商的入站呼叫中,我们会间歇性地向提供商发送一个空 RTP 数据包。经过一番调查,当 FreeSWITCH 从另一个 FreeSWITCH 实例接收 RTCP 时,就会发生这种情况。

FreeSWITCH 1 接收来自外部呼叫者的呼入呼叫,并在 FreeSWITCH 2 前充当 B2BUA。一旦呼叫被 FreeSWITCH 2 应答,RTP 流就会建立并双向工作。

FreeSWITCH 2 将所有 RTP 数据包发送到 FreeSWITCH 1,但 FreeSWITCH 1 正在向 SIP 提供商发送一个带有空负载的 RTP 数据包,在这个空 RTP 数据包的两侧都有设置了 MARKER 位的 RTP。

在 FreeSWITCH 2 上调整以下 RTCP 计时器会影响 FreeSWITCH 1 上问题的频率。

老实说,我很难弄清楚为什么会发生这种情况,并且只针对来电,我不确定这是错误还是设置不正确。

如果有人能够帮助或指出我正确的方向,那将是惊人的?

0 投票
2 回答
602 浏览

ip-camera - 使用 libVLCsharp 流式传输受密码保护的 IP 摄像机视频,但视频不播放

我正在尝试为 Onvif 投诉设备构建 UI。一段时间以来,我一直在用头撞墙。我相信我已经正确构建了自定义 URI。根据 ONVIF 程序员指南,我们需要 Get Profiles、GetStreamURI、Request Streaming。http://www.openipcam.com/files/ONVIF/ONVIF_WG-APG-Application_Programmer's_Guide.pdf

使用 Wireshark,我相信我看到了正在发送的 HTTP 数据包(显示适当的请求),以及我认为是适当的响应。最终的 GetStreamURI 会从摄像头获得成功的响应。然后,当我尝试调用 _mp.Play 时,我看到一些通过 HTTP 的数据包和一些从相机返回的 TCP 数据包。在此通信停止后。

更新:我相信我的问题是我构建的 URI 需要验证。当我将此 URI 放入 Web 浏览器时,我收到 401 错误。我不确定为什么我在wire-shark 上看不到这个错误。我将用户名和密码分配给 URI 对象,但是当我检查“IsWellFormedURIString”时,我得到一个“无效端口错误”。

0 投票
1 回答
178 浏览

javascript - webRTC 如何强制从 javascript Web 应用程序客户端发送 PLI 数据包?

https://jsfiddle.net/z7ms3u5r/

我需要 javascript 客户端发送 Picture Loss Indicator (PLI) 数据包,以通知服务器形成关键帧(i-frame)。有没有办法强制 javascript webRTC 客户端向服务器发送 PLI?

0 投票
1 回答
129 浏览

rtp - 对RTP/RTCP协议的质疑

关于RTP / RTCP协议的 RFC 教程对我来说似乎很困惑。我找不到像这样的这个协议的任何状态转换图。它并不清楚 NTP 和 RTP 时间戳之间的区别。它说它对于计算往返时间很有用。不能单独用RTP时间戳计算吗?

当且仅当它最近发送 RTP 数据包时,源才会发送 SR 报告,否则它是 RR 数据包。确定发送方最近是否发送过数据包实际上需要多少时间间隔?

混音器到底是做什么的?它是否需要来自多个来源的所有 RTP 数据包,然后在应用层读取它并将它们重新打包成多个 RTP 数据包,现在只更改 SSRC?如果数据包类型不同怎么办。

0 投票
1 回答
113 浏览

android - android RTP/RTCP 基于 java 的实现

我一直在寻找要在 android 应用程序中使用的任何基于 java 的 RTP/RTCP 库,但还没有找到。正如这个答案中提到的,这个库不提供对 RR/SR 报告的访问,即使我认为它甚至不提供对 RTCP 的支持。

我发现的许多与 RTP/RTCP 相关的问题都被关闭为题外话了。无法理解为什么。

0 投票
0 回答
58 浏览

java - 远程连接在 efflux 中不起作用(基于 rtp/rtcp java 的库)

我不得不在一个项目中使用,经过一番搜索,我在 github 上rtp/rtcp遇到了https://github.com/jonbo372/efflux java 项目。这个项目没有一个完整的工作示例,所以在尝试了很多之后,我制作了一些测试文件并让它们运行。在我的设置中,有一个 python 服务器,它打开两个端口,一个用于rtp,另一个用于rtcp,并接受其上的数据和一个使用 efflux 库通过rtp/rtcpprocol 发送数据的客户端。

服务器代码:

服务器将打印udp与客户端通信所需的两个端口。

客户端代码:

如果客户端和服务器位于同一主机上,则上述代码有效,但在不同主机上运行时无效。在后一种情况下,我无法在服务器端看到数据包。在进一步调试 Efflux 时,它使用一些数据报通道来发送/接收数据包。但是我也看不到任何错误消息。
我将两台主机/笔记本电脑都连接到同一个手机的热点。

但是,在远程服务器的情况下,如果我使用Datagram套接字发送数据包(如下所示),那么我可以在服务器端看到数据包。

自从 5 天以来,我一直坚持这个问题,但仍然无法解决它。问题是我无法追踪发送数据包时发生的故障,是因为网络连接还是流出问题。我Intellij用来运行这个流出代码。

0 投票
1 回答
31 浏览

encryption - 关于 DES-CBC 模式下加密的 RTP/RTCP 问题

我一直致力于创建一个 RTP/RTCP 客户端和服务器实现作为一个项目。在解析传入数据包时遇到了障碍,因为我无法理解加密方法。我已多次阅读RFC 3550第 9 节解释了机密性和安全性。我在这里读过DES-CBC 模式

我对加密的观察

  • RTP/RTCP 数据包作为一个单元进行加密,这意味着所有字节都被加密
  • 加密的 RTCP 数据包以 32 位随机数为前缀
  • 加密的 RTP 数据包由时间戳和序列号随机化
  • DES-CBC 是默认模式
  • DES-CBC 模式需要 64 位密钥
  • DES-CBC 模式需要 64 位初始化向量 (IV)
  • DES-CBC 的块大小为 64 位

我感到困惑的是:

DES-CBC 声明它使用“Internet 电子邮件隐私增强”(PEM) 协议,但 RTP RFC 没有提及这一点。此外,加密图不包括任何 PEM 标头或元素。

图表

所以我的问题是:

  • 密钥来自哪里或哪些标题元素构成了密钥?
  • RTP/RTCP 的初始化向量是什么?
  • 如何解析加密数据包与未加密数据包?
  • RTP/RTCP 是否使用 PEM 协议?如果是这样,怎么做?