Ffmpeg 将WebRTC流转储到文件

Ffmpeg 将WebRTC流转储到文件,ffmpeg,webrtc,rtp,avconv,Ffmpeg,Webrtc,Rtp,Avconv,如果音频和视频需要单独的文件,我想将音频和视频从WebRTC流捕获到一个文件或一对文件。音频和视频不是混合在一起的,已知在一组服务器udp端口上可用: Port Encoding 5000 - VP8 video 5001 - RTCP (for video) 5002 - Opus audio @48kHz 2 channels 5003 - RTCP (for audio) 端口编码 5000-VP8视频 5001-RTCP(用于视频) 5002-48kHz时的Opus音频2个通道 50

如果音频和视频需要单独的文件,我想将音频和视频从WebRTC流捕获到一个文件或一对文件。音频和视频不是混合在一起的,已知在一组服务器udp端口上可用:

Port Encoding 5000 - VP8 video 5001 - RTCP (for video) 5002 - Opus audio @48kHz 2 channels 5003 - RTCP (for audio) 端口编码 5000-VP8视频 5001-RTCP(用于视频) 5002-48kHz时的Opus音频2个通道 5003-RTCP(用于音频) SDP文件/数据不可用,可以使用DTL

我更喜欢使用avconv或ffmpeg来捕获流,除非建议使用更好的工具


编辑:我发现所询问的方法很可能不起作用。除非我听到其他消息,否则这些工具都不支持最初的DTLS握手,然后通过SRTP进行数据传输。

Gstreamer-1.0管道可以正常工作。我不能100%确定是否将两个流重新组合在一起,但我相信这是可能的(可能使用
oggmux
)。我已经测试了类似的东西,并且能够在linux设备上解码和播放流,该设备通过网关接收解密/解复用的rtp流(我使用)


WebRTC的问题是,所有内容都是使用DTL加密的,因此,如果不构建/使用整个中间层,请对其进行解码,那么您就不走运了。据我所知,没有一种方法可以关闭DTLS来检查所有内容。这是否可以处理DTLS握手和SRTP数据?Janus网关可以处理DTLS握手,并允许访问未加密和已解组的RTP/RTCP数据包。有一些是我没有弄乱的,是爱立信研究公司为他们的OpenWebRTC平台开发的,但我没有试验过这个框架。
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