【发布时间】:2019-06-17 00:58:34
【问题描述】:
我有 Janus(WebRTC) 服务器。我正在使用 VP8/OPUS。然后 Janus RTP Packet 转发到 GStreamer。我有两个问题。
我必须运行一个 GStreamer(多线程)还是多个 GStremaer?实际上,Janus 向 Gstreamer 发送了多个 RTP 流。例如)两个对等点在 WebRTC 房间里。然后,Janus 向 GStreamer 发送了 4 个 RTP 数据包。 peer1:视频/音频,peer2:视频/音频。如果我只运行一个 GStreamer,则无法确定每个流来自谁。所以要分类我必须用多个 GStreamer procceses 分离端口。
像这样:
进程1:
gst-launch-1.0 \ rtpbin name=rtpbin \ udpsrc name=videoRTP port=5000 \ caps=“application/x-rtp, media=(string)video, payload=98, encoding-name=(string)VP8-DRAFT-IETF-01, clock-rate=90000” \ ! rtpvp8depay ! webmmux ! queue \ ! filesink location=track1.webm \ udpsrc port=5002 \ caps=“application/x-rtp, media=audio, payload=111, encoding-name=(string)OPUS, clock-rate=48000" \ ! rtpopusdepay ! opusparse ! oggmux \ ! filesink location=audio.ogg
进程2:
gst-launch-1.0 \ rtpbin name=rtpbin \ udpsrc name=videoRTP port=5003 \ caps=“application/x-rtp, media=(string)video, payload=98, encoding-name=(string)VP8-DRAFT-IETF-01, clock-rate=90000” \ ! rtpvp8depay ! webmmux ! queue \ ! filesink location=track1.webm \ udpsrc port=5005 \ caps=“application/x-rtp, media=audio, payload=111, encoding-name=(string)OPUS, clock-rate=48000" \ ! rtpopusdepay ! opusparse ! oggmux \ ! filesink location=audio.ogg
所以我很困惑。是否多线程?还是多个进程?请告诉我详细信息!
如何将 VP8/OPUS 实时混合到 mp4 容器?我找了很久。但我还不能。 GStreamer 的每个版本都有很多选项。 我在等你的建议!谢谢你。
我已经尽力了。
我希望有 way 和 mp4 文件。
【问题讨论】:
-
这和编程有什么关系?
-
我正在尝试从 RTP 数据包记录保存服务。
-
我投票结束这个问题,因为它与编程无关
标签: webrtc gstreamer rtp mux janus