问题标签 [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 回答
2128 浏览

c# - 如何通过 G.729、G.723 等解码字节数组......?

我有一个RTP连接,我可以提取所有Payload部分并将它们按顺序连接到一个字节数组中。

我如何解码这个数组?(假设我知道编解码器)有没有实现voip 编解码器的库?

语言:C#

0 投票
2 回答
14776 浏览

java - 正确的 Java RTP/RTCP 堆栈

我一直在努力为 Java找到一个体面的 RTP 堆栈实现。JMF 或 FMJ 不是这里的选项,因为我不想要编解码器和音频/视频捕获的所有花里胡哨;我只需要创建 RTP 流,在其中转储数据并从中读取数据。

我一直在使用jlibrtp,但它的 API 是可疑的,日志记录是基于 System.out 的,而且我时不时地得到几个 NPE。

此外,RTCP 支持会很好(同样,我想自己处理控件,我只需要 API)。

所以总结一下:

  • 清洁 API;
  • “手动”数据处理;
  • 体面的伐木;
  • RTCP 支持;
  • 没有依赖关系;
  • 针对服务器端使用进行了优化(在给定时刻许多 RTP 会话处于活动状态)。

有这样的图书馆还是我必须编写一个?;)

0 投票
1 回答
1092 浏览

ipv6 - 任何 ipv6 想法,如何使用 ipv6 获取 RTP 流。vlan 显然不支持

你能帮我想想用 ipv6 生成 RTP 流吗?

我试过 vlan ,没有成功/

即使我不介意,得到这个流的原始转储,我只需要测试......

谢谢,任何帮助将不胜感激。

0 投票
2 回答
10715 浏览

c++ - 示例 RTP 数据包流

我正在尝试通过用户定义的协议传输 RTP 流量,并希望测试此设置。是否有任何 C++ 库,我可以使用它来生成示例 RTP 数据包,然后将它们通过我的库进行隧道传输?

谢谢。

0 投票
1 回答
1187 浏览

format - RTP 配置文件的新负载类型

我正在设计一个新的 RTP 配置文件。如何确定下一个可用的 RTP 有效负载类型,我可以将其分配给我的配置文件类型?

0 投票
2 回答
846 浏览

java - RTP RFC (3550) 解释问题

我正在做RFC 3550 (RTP)的 Java 实现,但遇到了一个小问题:

第 11 章第 2 段中,它指出:

(...) 参与者不得假设传入 RTP 或 RTCP 数据包的源端口可用作传出 RTP 或 RTCP 数据包的目标端口。当双向发送 RTP 数据包时,每个参与者的 RTCP SR 数据包必须发送到另一个参与者为接收 RTCP 指定的端口。(...)

RTP 没有任何机制来通知这些地址和端口(这取决于 SDP 或其他一些设置协议),这将使我将这一段理解为“如果您从未知来源接收数据,则丢弃它” .

但在第 6.3.3 节中,它基本上说,当接收到带有未知 SSRC 的 RTP 或非 BYE RTCP 数据包时,应将新参与者添加到表中。

所以总结一下:

  1. 当收到未知的 SSRC 时,您应该添加一个新的参与者;
  2. 您不能将数据包的源 IP/端口用作该参与者的数据包目标;
  3. SDP 没有定义每个 RTP 参与者将使用的 SSRC;
  4. 您可以手动添加 RTP 参与者(以其他方式发现)但您不知道 SSRC 将是什么。

所以百万美元的问题是:应该如何处理意外的 SSRC?

0 投票
1 回答
638 浏览

rtp - 如何使用编解码器 h264 播放视频的 gtalk rtp 有效负载数据?

我处理 gtalk 视频的 rtp 数据包。我想使用 gtalk rtp 有效负载数据制作视频。根据我的搜索 gtalk 使用 h264 编解码器进行视频。

我将所有与 gtalk 视频一起发送的 rtp 有效负载结合起来,并想使用此评论播放 ffplay “ffplay -f h264 “filename”,但我看不到

任何东西,我都会收到此错误“找不到编解码器参数(视频:h264,yuv420p)”。我认为我的错误是结合 rtp 有效负载。我怎样才能玩这个有效载荷?

感谢您的帮助。

干杯。

0 投票
1 回答
2163 浏览

java - QuickTime RTSP/RTP over HTTP 和 Java

我有一个网络摄像头。我可以使用 RTSP/RTP over HTTP 隧道来处理它(因为只为我打开了端口 80)。QuickTime 播放器播放视频。

我想捕捉这个视频并使用 java 将其保存到 AVI 容器中的光盘。我可以使用 JMF 吗?它是否支持“RTSP/RTP over HTTP 隧道”?

我听说过 QTJ,但它只是 windows 和 mac os。

我的相机是基于linux的,我相信里面有一个达尔文

0 投票
1 回答
1934 浏览

audio - 通过 UDP 在 wifi 网络中流式传输音频

我必须实现一个小软件,在同一个 WiFi 网络中的两台电脑之间发送音频流。

简而言之,我从麦克风之类的设备获取音频,然后我必须实时传输此音频..也许我会使用 Java..

要通过 UDP 传输数据,如下所示:

...

好吧,我的问题是,如何将音频源拆分为要存储在 buf 中的数据包?

我怎样才能在另一台电脑上接收数据包然后“重新组装”或直接播放?

这是正确的方式?非常感谢。你好!

0 投票
1 回答
8256 浏览

streaming - mp3 streaming playback over RTP using gtreamer

I am working with gstreamer, mainly playing around with music playback features.

I am currently trying to use RTP to send mp3 streams over our LAN, but unsuccessfully until now.

On sender side I use the following pipeline:

gst-launch -v filesrc location=./my_music_file.mp3 ! ffdemux_mp3 ! rtpmpapay ! udpsink port=6969 host=192.168.0.200

On receiver side I use the following pipeline:

gst-launch -v udpsrc port=6969 caps="application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA, payload=(int)96, ssrc=(guint)1951256090, clock-base=(guint)1711290778, seqnum-base=(guint)24773" ! rtpmpadepay ! flump3dec ! pulsesink

There is apparently no error as output from receiver side is:

Setting pipeline to PAUSED ...

Pipeline is live and does not need PREROLL ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

...But sound hears strange, is just as if it has been played too fast.

I have tested that audio works by playing mp3 files locally. I have also tested rtp by streaming wav/µLaw files. All this works well.

I have tried also to face problem in other ways, for instance, I have used the following pipeline, taht works well with audiotestsrc/amrnb codec:

gst-launch gstrtpbin name=rtpbin audiotestsrc ! amrnbenc ! rtpamrpay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink host=192.168.0.200 port=5002 rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=192.168.0.200 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1

But when using same pipeline with lame, again on the receiver side there is no error but there is a "too fast" output:

Sender: gst-launch gstrtpbin name=rtpbin audiotestsrc ! lamemp3enc ! rtpmpapay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink host=192.168.0.200 port=5002 rtpbin.send_rtcp_src_0 ! udpsink port=5003 host=192.168.0.200 sync=false async=false udpsrc port=5005 ! rtpbin.recv_rtcp_sink_1

Receiver: gst-launch -v udpsrc port=5002 caps="application/x-rtp, media=(string)audio, clock-rate=(int)90000, encoding-name=(string)MPA, payload=(int)96" ! rtpmpadepay ! flump3dec ! pulsesink

Could anyone have an idea of what's wrong with my pipelines?

Thank you very much for your support,

Jorge