问题标签 [rtp]

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 投票
2 回答
10762 浏览

android - 从 Android 流式传输视频

我正在尝试从 Android 手机流式传输视频,应该在媒体播放器中观看。我一直在看http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system这似乎是一个死胡同,因为它发送原始文件数据,而不是可流式传输的格式。

然后我尝试使用 SipDroid 的一些代码,更具体;VideoCamera.java、RtpPacket.java 和 RtpSocket.java 的一部分,它们在 UDP 上提供流,但是这些在 mplayer 中无法播放(无法检测到编解码器)。Wireshark 告诉它是 UDP 数据包而不是 RTP 数据包,所以可能缺少某些东西?

我有点卡住了,你有什么建议可以克服这个障碍吗?

0 投票
1 回答
517 浏览

silverlight - 如何通过网络为 Silverlight 视频/音频会议编写自己的实时传输协议?

您好,我已经为使用 TCP 的音频/视频会议创建了 Silverlight 应用程序。但是由于通过网络传输流字节的速度很慢。虽然谷歌的情况我发现没有任何对实时传输协议的支持,例如 Silverlight 中的 RTP。那么,任何人都可以指导我或参考一些链接来执行此任务吗?提前感谢任何建议或帮助将不胜感激...

0 投票
1 回答
381 浏览

ruby - Ruby RTP 管理

是否有任何 gem 可以使用 Ruby 进行 RTP(音频流)管理?谢谢

0 投票
1 回答
4551 浏览

h.264 - 解码(和渲染)H264 RTP 数据包

我写了一些代码,将一些带有 H264 流的 RTP 数据包存储在磁盘上。我希望能够从 RTP 数据包中提取 H264 数据并将该数据呈现在某处以测试并查看我的代码是否有效。我怎样才能做到这一点?

我想 gstreamer 可以帮我一把。如果我将数据包存储在磁盘上的文件中,是否可以使用 gstreamer 在某处提取、解码和渲染?或者创建一个 h264 视频文件来播放它,看看里面有什么?谢谢!

0 投票
1 回答
1272 浏览

c++ - 注册如何通过代理服务器发送 RTP 数据包

我正在使用 pjproject1.6,我可以通过 sip 数据包将 sip 数据包发送到代理服务器和 rtp 数据包或不通过服务器。所以两边的声音都听不见。

我检查了代理服务器,rtp 代理正在运行,当代理服务器发送 200 Ok 时,来自 PJSIP 的 SDP 数据包包括代理服务器的 IP 地址。

声音/媒体仍然不会传输到 PJMedia 客户端和接收器。我已经用 yate 客户端测试了相同的场景,发送方和接收方都可以听到音频/媒体。

PJSIP 是否还有其他需要注意的配置/代码更改?

0 投票
2 回答
2831 浏览

c - RTP 数据包的套接字问题

我正在尝试在 C 中构建一个 RTP 数据包度量分析器,但我遇到了一个奇怪的问题,我正在削减实现细节以便于暴露:

由于 RTP 数据包包含在 UDP 中,因此我的套接字使用以下参数初始化:

并与这些参数绑定:

并加入多播组:

将我接收的多播组设置为:

使用 recvfrom 函数接收数据包:

出了点问题,虽然我可以接收发往多播组的标准 UDP 数据包224.1.0.1,但第一次没有收到 RTP 数据包,但再次发送它们就可以了。

场景一:

我发送n 个UDP 数据包:它们被正确接收

场景二:

我发送n 个RTP 数据包:没有任何反应

我再次发送相同的n 个RTP 数据包:它们被正确接收

无论n个数据包的数量是多少……太奇怪了,但确实如此。

编辑: 在分析器端,我正在运行嗅探器,它显示两个数据包突发,因此消息到达分析器端,这不是与发送者相关的问题。

问题:

RTP 场景和 UDP 场景的代码完全相同(阅读:相同的可执行文件)。我究竟做错了什么?

旁注:

RTP 管理库或高级 RTP 库建议是不可以的,我必须在这个抽象级别工作,因为我需要分析指标。

网络指标分析器也是一个禁忌,我必须用我自己的代码来做这件事。

提前致谢。

0 投票
8 回答
131796 浏览

streaming - 流服务器中的 RTP 或 RTSP 有什么区别?

我正在考虑开发流媒体服务器,我有以下问题,请通过 RTSP(示例 url:)rtsp://192.168.0.184/myvideo.mpgRTP(示例 url:)rtp://192.168.0.184

据我了解,RTSP服务器主要用于流式传输已经存在的文件,即非实时文件。RTP服务器用于广播。

如果我错了,有人纠正我,对吗?

我想开发一个服务器在电脑屏幕上播放直播内容,也就是在流媒体播放的时候显示。

0 投票
1 回答
2264 浏览

rtsp - rtp 和 rtsp 播放器与浏览器的集成

我正在尝试构建一个将通过网络浏览器流式传输音乐的网络服务。我有一台服务器正在运行以打开一个显示“hello world”的网页。问题是我不明白我需要在网页中放入什么来启动 rtp 会话。我知道我在打开的网页上需要某种播放器,但我不明白如何制作该播放器或如何在网页上显示它。有人能帮我吗?

0 投票
3 回答
3505 浏览

linux - libpcap setfilter() 函数和丢包

这是我在这里@stackoverflow 的第一个问题。

我正在为一些 VoIP 生产服务器编写一个监视工具,特别是一个嗅探工具,它允许使用 Perl 中的 pcap 库捕获与给定模式匹配的所有流量(VoIP 呼叫)。

我不能使用较差的选择性过滤器,例如“udp”,然后在我的应用程序代码中进行所有过滤,因为这会涉及过多的流量并且内核无法处理报告数据包丢失。

然后我要做的是在捕获过程中迭代地构建更具选择性的过滤器。一开始我只捕获(所有)SIP信令流量和IP片段(模式匹配必须在任何情况下在应用程序级别完成)然后当我在SIP数据包中找到一些关于RTP的信息时,我添加'或'子句到具有特定 IP 和 PORT 的实际过滤器字符串,并使用 setfilter() 重新设置过滤器。

所以基本上是这样的:

  1. 初始过滤器:“(udp and port 5060) or (udp and ip[6:2] & 0x1fff != 0)” -> 捕获所有 SIP 流量和 IP 片段

  2. 更新过滤器:“(udp 和端口 5060)或(udp 和 ip[6:2] & 0x1fff != 0)或(主机 IP 和端口 PORT)”-> 还捕获特定 IP、PORT 上的 RTP

  3. 更新过滤器:“(udp and port 5060) or (udp and ip[6:2] & 0x1fff != 0) or (host IP and port PORT) or (host IP2 and port PORT2)”->捕获第二个RTP流以及

等等。

这工作得很好,因为我能够获得 RTP 流的“真实”数据包丢失以用于监控目的,而我的工具的选择性过滤器版本较差,RTP 数据包丢失百分比不可靠,因为有一些数据包由于内核丢包而丢失。

但是,让我们来看看这种方法的缺点。

捕获时调用 setfilter() 涉及到 libpcap 丢弃接收到的数据包“同时更改过滤器”的事实,如函数 set_kernel_filter() 的代码注释中所述到 pcap-linux.c(检查 libpcap 版本 0.9 和 1.1)。

所以发生的情况是,当我调用 setfilter() 并且某些数据包以 IP 分段形式到达时,我确实丢失了一些分段,而 libpcap 统计信息最后没有报告这一点:我发现它正在挖掘痕迹。

现在,我明白了这个动作由 libpcap 完成的原因,但在我的情况下,我绝对不需要丢包(我不关心获得一些不相关的流量)。

您对如何解决这个不修改 libpcap 代码的问题有任何想法吗?

0 投票
2 回答
6474 浏览

android - android 是否支持为 VoIP 和 PTT 项目实现 RTP、RTSP 的 API?

我打算在 Android 上做一个 PTT 项目。您能否告诉我 Android 对开发人员的语音和多媒体 API(例如 RTP、RTSP、VoIP)的支持有多深?