如果音频和视频需要各自的文件,我想将WebRTC流中的音频和视频捕获到文件或文件对。音频和视频没有多路复用,并且已知可在一组服务器udp端口上使用:
Port Encoding 5000 - VP8 video 5001 - RTCP (for video) 5002 - Opus audio @48kHz 2 channels 5003 - RTCP (for audio)
SDP文件/数据不可用,可能会使用DTLS。
我宁愿使用avconv或ffmpeg来捕获流,除非建议使用更好的工具。
编辑:我发现这个被查询的内容很可能无效。除非另有说明,否则这些工具都不支持初始DTLS握手,而是通过SRTP进行数据传输。
答案 0 :(得分:1)
Gstreamer-1.0管道可以正常工作。我不是100%肯定将两个流重新组合在一起,但我相信它是可能的(可能是oggmux
)。我测试了类似的东西,并能够在Linux设备上解码和播放流,通过网关接收解密/解复用的rtp流(我使用Janus-Gateway)。
gst-launch-1.0 rtpbin name=rtpbin udpsrc name=videoRTP port=5000 \
caps="application/x-rtp, media=video, encoding-name=VP8-DRAFT-IETF-01, payload=100" ! \
rtpbin.recv_rtp_sink_0 rtpbin. ! rtpvp8depay ! webmmux ! queue ! filesink location=video.webm sync=false async=false \
udpsrc name=videoRTCP port=5001 ! rtpbin.recv_rtcp_sink_0 \
udpsrc name=audioRTP port=5002 \
caps="application/x-rtp, media=audio, clock-rate=48000, encoding-name=X-GST-OPUS-DRAFT-SPITTKA-00, payload=96" ! \
rtpbin.recv_rtp_sink_0 rtpbin. ! rtpopusdepay ! oggmux ! filesink location=audio.ogg sync=false async=false \
udpsrc name=audioRTCP port=5003