问题标签 [sdp]
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.
sip - Asterisk API SDP 处理
我有两个 SIP 客户端(“A”和“B”)在通用桥接模式下连接到星号。
“A”的视频正在“B”上播放,但“B”的视频没有在“A”上播放。我用wireshark 三次检查媒体(音频/视频)是否到达“A”的IP 地址。音频在双方都运行良好。
我最好的猜测是这个问题与星号的内部 SDP 处理有关。
那么,让我们深入研究一下这个问题。
"A" 发送以下 INVITE:
并收到来自 Asterisk 的“200 OK”消息:
请注意以下行:
a=fmtp:104 profile-level-id=42801E; 打包模式=1
和
a=ssrc:1956389748 cname:1956389748
只是在回复中消失了,我真的认为这就是视频无法播放的原因。
所以,我的问题:
我可以使用什么 API 来自定义此行为,因此当 Asterisk 从双方处理 SDP 时不会删除上面的行?如果没有官方 API,我在哪里可以查看代码?所以我可以为我的具体情况写一个补丁?
我查看了 chan_sip.c 并且有一个功能:
静态 int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action)
但我不确定这个 SDP 处理(删除行等)是由星号核心还是由 sip 通道驱动程序执行的。
谢谢
sip - 为什么我收到 SIP 响应 400:错误的会话描述?
我使用wireshark将以下SIP INVITE数据报从Linphone转储到带有CR-LF换行符的文件中:
我编写了一个简单的 Python 脚本,它读取文件二进制文件,放入 UDP 数据报并通过绑定到端口 5060 的套接字发送。当我将其发送到运行用户代理的客户端时,我得到 200 OK。当我尝试将其发送到我们的 SIP 代理 FreeSwitch 时,我收到 400 Bad Session Description。
当这条消息最初由 Linphone 发送时,FreeSwitch 以 200 OK 响应。
webrtc - WebRTC:如果双方都发送报价会发生什么?
通常,其中一个同行会创建一个报价,而另一个会回答它。如果两个对等方同时尝试通过创建报价来建立连接,会发生什么情况?
sip - 在没有会话协议的情况下启动 rtp
是否可以在不通过 SIP 或其他协议启动 RTP 会话的情况下通过 RTP 进行流式传输?
换句话说,如果流源刚刚开始发送 RTP 数据包,如果在发送之前没有初始化会话,它们是否可以被目标解释?
sip - 制作 H264 RTP 流的最低 SDP?
我正在寻找设置 H264 视频流所需的最低 SDP 示例。|
假设接收端只要通过SDP得到需要的参数,就可以播放H264。
我在这里找到了一个相关文档,但是它在示例中使用了许多可选参数,我正在寻找所需的最低限度。
video - sprop-parameter-sets 或 profile-level-id 是解码 H264 所需的 SDP 参数吗?
我试图了解 SDP 中能够从 RTP 数据包中解码 H264 所需的参数是什么。
这与这个问题有关,因为该问题的答案仅在少数情况下有效。
例子
我使用以下命令从 VLC 流式传输。
这会将视频转码为:
- 比特率:700kbps
- 帧率:每秒 20
- 分辨率:原版的25%
接收器正确地接受并解释带有以下 SDP 文件的流(删除第一行,它只是一个名称)。
运行命令:vlc test.sdp
此处提供的文档在第 7.2 章中命名为SIP Video Profile Best Practices for profile-level-id states:
配置文件级别 ID
虽然在 RFC 6184 中指定为可选(所有参数一样),但“profile-level-id”参数是编解码器设置的基础,也是指定任何其他参数所必需的。因此,所有的实现都应该在他们的 SDP 中包含这个参数,并且在接收到它时应该解释它。如果不包括在内,则默认值为 420010,如 RFC 6184 中所指定。
同一文件对sprop-parameter-sets规定了以下内容:
sprop 参数集
H.264 允许在带内和带外发送序列和图片信息。SIP 视频实现应在带内发送此信息,符合 H.323 中流行的模型和绝大多数现有 SIP 视频实现,因此不应包含此参数。
问题 1
即使profile-level-id
被移除,视频也会在接收器上正确解释。
没有sprop-parameter-sets
. _ _
问题 2
我一直在共享不同的 RTCP、SIP 和 SAP,而且 SDP通常不 包含sprop-parameter-sets
.
问题
- 请解释一下这两个参数的含义和区别
- 根据上述问题的答案,解释问题中出现的对比
android - 如何通过 Android 设备中的 .sdp 文件在 android 设备中流式传输视频
video(without audio)
我有一个应用程序可以从android device(Blaze board)
PC流式传输。为此,我正在使用 vlc 播放器通过在命令行中使用以下命令来查看流式视频
该.sdp
文件将从我的应用程序中生成。通过使用上述命令,我可以延迟 1 秒从 blaze board 流式传输到 PC。
现在,我的问题是,我必须从一个火焰板流到另一个火焰板。我已经搜索了很多。但是,没有任何工作。
我有一个想法来编写查看器应用程序(对于客户端)。此应用程序将使用 sdp 文件路径作为 url。我参考这个页面。在这里,他曾经使用过"setDataSource(http://localhost/file.sdp)"
。我在我的应用程序中使用了这样的方法。但是,它也没有用。
这是我的代码
如何使用 .sdp 文件来生动地播放流媒体视频?
我要走的路是否正确?如果您有任何其他方式,请建议我。
任何帮助将不胜感激。
ip - WebRTC Peerconnection:使用候选集的哪个 IP 流?
我目前正在开发一个用于 webrtc 会话的监视工具,以调查从调用者到被调用者的传输 SDP,反之亦然。不幸的是,我无法弄清楚真正使用了哪个 ip 流,因为每个会话建立有 >10 个候选行,并且在某些候选被推入 PC 后以某种方式建立了会话。
有什么方法可以确定候选流程集中使用了哪个流程?
filter - 多次出现的 SDP 元素的 wireshark 语法
我正在尝试过滤包含 sdp 信息的wireshark 捕获。该信息可以在同一个数据包中出现多次,我试图仅过滤初始值。
作为更具体的示例,sdp.media.port 属性可以在同一个数据包中以不同的值出现多次,例如首先作为音频的 12004,然后作为图像的 12006。设置过滤器sdp.media.port == 12004
或sdp.media.port == 12006
将选择此数据包。
过滤器仅选择具有 12006 作为初始值的数据包的语法是什么?如果设置为 12006,此过滤器将忽略上述数据包,但如果设置为 12004,则会选择此数据包
parsing - 派对安装
我无法按照说明安装partysip 。似乎缺少 oSip 和 oSipParser 的路径。谁能告诉我如何使用 oSip 安装 Partysip?这是以下消息: