Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webrtc 每个文件有多个RTP数据包。还有慕兴_Webrtc_Gstreamer_Rtp_Mux_Janus - Fatal编程技术网

Webrtc 每个文件有多个RTP数据包。还有慕兴

Webrtc 每个文件有多个RTP数据包。还有慕兴,webrtc,gstreamer,rtp,mux,janus,Webrtc,Gstreamer,Rtp,Mux,Janus,我有Janus(WebRTC)服务器。我使用的是VP8/OPUS。然后Janus RTP数据包转发给GStreamer。我有两个问题 我必须运行一个GStreamer(具有多个线程)还是多个GStremaer?实际上,Janus向Gstreamer发送了多个RTP流。Ex)两名同级人员在WebRTC室。然后,Janus向GStreamer发送了4个RTP数据包。peer1:视频/音频,peer2:视频/音频。如果我只运行一个GStreamer,就不可能确定每个流来自谁。因此,为了分类,我必须使用

我有Janus(WebRTC)服务器。我使用的是VP8/OPUS。然后Janus RTP数据包转发给GStreamer。我有两个问题

我必须运行一个GStreamer(具有多个线程)还是多个GStremaer?实际上,Janus向Gstreamer发送了多个RTP流。Ex)两名同级人员在WebRTC室。然后,Janus向GStreamer发送了4个RTP数据包。peer1:视频/音频,peer2:视频/音频。如果我只运行一个GStreamer,就不可能确定每个流来自谁。因此,为了分类,我必须使用多个GStreamer进程来分离端口

像这样:

过程1:

gst-launch-1.0\rtpbin name=rtpbin\udpsrc name=videoRTP port=5000\caps=“应用程序/x-rtp,媒体=(字符串)视频,有效载荷=98,编码名称=(字符串)VP8-DRAFT-IETF-01,时钟频率=90000”\!rtpvp8depay!webmmux!排队\!filesink location=track1.webm\udpsrc port=5002\caps=“application/x-rtp,media=audio,payload=111,编码名称=(字符串)OPUS,时钟频率=48000”\!rtpopusdepay!opusparse!oggmux\!filesink location=audio.ogg

过程2:

gst-launch-1.0\rtpbin name=rtpbin\udpsrc name=videoRTP port=5003\caps=“应用程序/x-rtp,媒体=(字符串)视频,有效载荷=98,编码名称=(字符串)VP8-DRAFT-IETF-01,时钟速率=90000”\!rtpvp8depay!webmmux!队列\!filesink location=track1.webm\udpsrc port=5005\caps=“应用程序/x-rtp,媒体=音频,有效负载=111,编码名称=(字符串)OPUS,时钟频率=48000”\!rtpopusdepay!Opuparse!oggmux\!fileLink location=audio.ogg

所以我搞糊涂了。是多线程?还是多进程?请告诉我详细信息

如何实时将VP8/OPUS多路复用到mp4容器?我搜索了很长时间。但我还不能。GStreamer对每个版本都有很多选项。 我在等你的建议!谢谢你的帮助

我已经尽力了


我期望way和mp4文件。

嗨,一个解决方案可能是插件tee

在“帮助”页上找到

描述

将数据拆分为多个焊盘。当捕获视频时,数据流分支非常有用,视频显示在屏幕上,并且编码并写入文件。另一个示例是播放音乐和连接可视化模块

需要在每个分支中使用单独的队列元素(或多队列)为每个分支提供单独的线程。否则,一个分支中阻塞的数据流将使其他分支暂停。 示例发射线

一,


播放song.ogg音频文件,该文件必须位于当前工作目录中,并使用goom元素呈现可视化效果(使用playbin元素可以更轻松地完成此操作,这只是一个示例管道)。

嗨,一个解决方案可能是插件T

在“帮助”页上找到

描述

将数据拆分为多个焊盘。当捕获视频时,数据流分支非常有用,视频显示在屏幕上,并且编码并写入文件。另一个示例是播放音乐和连接可视化模块

需要在每个分支中使用单独的队列元素(或多队列)为每个分支提供单独的线程。否则,一个分支中阻塞的数据流将使其他分支暂停。 示例发射线

一,


播放song.ogg音频文件,该文件必须位于当前工作目录中,并使用goom元素呈现可视化效果(使用playbin元素可以更轻松地完成此操作,这只是一个示例管道).

这与编程有什么关系?我正在尝试从RTP数据包记录保存服务。我投票关闭此问题,因为它与编程无关。这与编程有什么关系?我正在尝试从RTP数据包记录保存服务。我投票关闭此问题,因为它与编程无关
gst-launch-1.0 filesrc location=song.ogg ! decodebin ! tee name=t ! queue ! audioconvert ! audioresample ! autoaudiosink t. ! queue ! audioconvert ! goom ! videoconvert ! autovideosink