问题标签 [mediasoup]

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 回答
114 浏览

video - ffmpeg 向 mediasoup 注入视频只能播放第一帧

我正在尝试按照此演示https://github.com/versatica/mediasoup-demo/blob/v3/broadcasters/ffmpeg.sh将视频注入 mediasoup

命令 :

ffmpeg -re -v info -stream_loop -1 -i video-audio-stereo.mp4 -map 0:a:0 -acodec libopus -ab 128k -ac 2 -ar 48000 -map 0:v:0 -pix_fmt yuv420p -c:v libvpx -b:v 1000k -deadline realtime -cpu-used -5 -f tee "[select=a:f=rtp:ssrc=1111:payload_type=100]rtp://xxx.xxx.xxx.xxx:49695?rtcpport=43826|[select=v:f=rtp:ssrc=2222:payload_type=101]rtp://xxx.xxx.xxx.xxx:45991?rtcpport=45288

mp4 文件在这里https://github.com/versatica/mediasoup-demo/tree/v3/app/resources/videos

结果:在网页上,我可以听到音频,但只显示视频的第一帧,视频的时钟没有运行。

https://imgur.com/a/1BzDGSk

ffmpeg 命令似乎很好,没有错误消息,仍在发送视频。mediasoup 日志似乎也很正常。

chrome 调试,framesReceived/s 看起来很奇怪 https://imgur.com/a/0odFiDZ

0 投票
0 回答
95 浏览

android - 用于处理 VP9 和 VP8 流(Mediasoup)颤动的多重传输

我们正在尝试使用 VP9 编解码器创建一个简单的会议应用程序并遇到以下问题。

1> android 无法生成 Vp9 流。我什至尝试将 SDP 转换为 vp9,但无法生成 VP9 流。它切换到 VP8 流

2>在消费时,我从 Web 获取 VP9 的数据,从移动设备获取 VP8 流的数据。当我使用流时,我得到 vp9 轨道视频高度和宽度 = 0 或 vp8 轨道视频高度和宽度 = 0。因此我只能将网络或移动和其他轨道作为黑屏流式传输。尝试播放和暂停黑色视频,但没有奏效。

3> 为了处理上述问题,我为 VP9 和另一个为 VP8 创建了两个传输,并尝试使用流。仍然,我得到 vp9 轨道视频高度和宽度 = 0 或 vp8 轨道视频高度和宽度 = 0。

4>我创建了两个媒体汤设备来处理两个流,但问题仍然存在。

我们将服务器的编解码器从 VP9 更改为 Vp8,然后我就可以流式传输所有视频了。但我们想使用 VP9 作为默认编解码器。

问题 1- android 是否支持 VP9。如果它确实如何使其成为默认编解码器。2-我们可以使用 Mediasoup 服务器将 VP9 流转换为 VP8,以便所有 android 设备都可以处理流。

0 投票
1 回答
181 浏览

node.js - mediasoup webRTC 远程视频流在 ubuntu 服务器上显示空白

我使用 angular、node.js、webRTC、mediasoup 和管道传输开发了一个视频聊天应用程序。远程视频流在 localhost 上运行良好,但在部署到 Ubuntu 服务器后无法正常运行。在此处输入图像描述

任何人都可以帮忙吗?

为什么部署到服务器后远程视频流不起作用?

0 投票
0 回答
47 浏览

webrtc - Mediasoup 注入流冻结

我正在使用以下 ffmpeg 命令将 rtmp 流注入到 mediasoup。

但是视频似乎随机冻结并再次播放。知道如何解决这个问题吗?尝试了这里这里给出的解决方案,但没有运气。

更新:似乎是一些数据包丢失时RTP重传的问题。不幸的是,ffmpeg在此处提到的 RTP 流式传输方面表现不佳。意思是ffmpeg不支持像nack,pli等重传机制。所以考虑gstreamer,而不是按照mediasoup discourse讨论中的建议。

0 投票
1 回答
47 浏览

mediasoup - Mediasoup:连接状态在连接后数十秒变为断开连接

我们使用 mediasoup 来创建我们的产品。但是,我遇到了传输连接问题。

客户端传输连接状态在连接后八秒后断开连接。以下日志将在 chrome 控制台中输出。

但是,几八秒后chrome控制台会输出如下日志

如果在断开连接之前 NewProducer 存在,则不会发生上述情况。你知道可能的原因吗?

0 投票
2 回答
92 浏览

gstreamer - Gstreamer opusenc 编码器产生失真/断断续续的音频

我正在使用以下 gstreamer 管道来获取 RTMP src 并使用 opusenc 编码器对其进行转码,并将其作为 rtp 数据包发送到 Mediasoup(一个 webrtc 库)。

但这会产生非常不连贯/失真的音频。这里有一个样本。

我在这里做错了什么?

0 投票
0 回答
35 浏览

node.js - Mediasoup/WebRTC 视频/音频/屏幕共享问题

我们正在尝试使用 Node.js 和 Mediasoup 创建一个会议服务器。为此,我们公开了自己的 Ubuntu 服务器并尝试在其上部署应用程序。

另一端的用户无法看到视频/音频/共享屏幕。我们已允许/打开最小到最大 udp 端口​​(40000-49999)。它仍然无法正常工作。

我们在 AWS 上部署了相同的应用程序,在允许上述 udp 端口​​后,它工作正常,但无法部署在我们自己的服务器上。也许我们在这里遗漏了一些东西。

也与从路由器到本地IP地址的端口转发有关吗?

非常感谢任何帮助。

0 投票
1 回答
26 浏览

javascript - 当transport.on('connect'调用回调()时,Mediasoup客户端反应本机崩溃

mediasoup用于视频会议,但在连接阶段,当我从应用程序崩溃执行回调时transport.produce() 调用事件transport.on('connect'transport.on('connect

0 投票
0 回答
36 浏览

android - WebRTC/MediaSoup 库与 Gradle 构建冲突

我正在尝试在我的应用程序中同时使用 MediaSoup 和 WebRTC 库。单独它可以完美地工作,但是当尝试在同一个项目中添加两者时,我遇到了一些冲突。

它是:

  1. 我在我的项目中同时添加了 mediasoup ('org.mediasoup.droid:mediasoup-client:3.0.8-beta-3') 和 webRTC ('org.webrtc:google-webrtc:1.0.32006'),我可以同步我的毕业。但是在尝试构建项目时,我收到一个错误,说我有很多重复的类,例如: Duplicate class org.webrtc.AndroidVideoDecoder found in modules jetified-google-webrtc-1.0.32006-runtime.jar (org.webrtc:google-webrtc:1.0.32006) and jetified-mediasoup-client-3.0.8-beta-3-runtime.jar (org.mediasoup.droid:mediasoup-client:3.0.8-beta-3)

  2. 我只添加了 WebRTC 库:不可能使用 MediaSoup 所以不是解决方案

  3. 我只添加 MediaSoup。到目前为止,我可以编译甚至构建我的应用程序,但它在我使用 WebRTC 的第一条语句中崩溃,在:PeerConnectionFactory.initialize() AS 告诉我找不到本机库: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file ".../base.apk"],nativeLibraryDirectories=[/data/app/dev.arvuz-fuhAdJV_sT2-PQyEHP0vxg==/lib/arm64, /data/app/dev.arvuz-fuhAdJV_sT2-PQyEHP0vxg==/base.apk!/lib/arm64-v8a, /system/lib64]]] couldn't find "libjingle_peerconnection_so.so"

所以,这就是我卡住的地方。如何(甚至可能?)在 Android 上将 WebRTC 与 MediaSoup 库结合使用?我尝试在我的 gradle 文件中排除一些 WebRTC 模块,但无法实现任何目标。

0 投票
0 回答
13 浏览

gstreamer - 从 Gstreamer 向 Mediasoup 注入视频和音频时没有 RTP 重传

我正在尝试使用以下 Gstreamer 命令将来自 RTMP 源的流注入 Mediasoup:

我在生产者中启用 RTCP 反馈,如下所示:

结果是视频随机冻结并在几秒钟后再次播放。我相信这是由于 RTP 数据包丢失。这是 pruducer 统计数据的快照:

在这里,当我在视频中冻结时, nackCountand 会增加,但始终保持为零。nackPacketCountpacketsRetransmitted

Mediasoup 是否正确向 Gstreamer 发送重传请求?还是重传机制不正常?还是问题出在 Gstreamer 方面?这是来自 Gstreamer 输出日志的快照:

由于我是 Mediasoup 的新手,任何提示将不胜感激。