Gstreamer 如何从rtspsrc解复用音频和视频,然后使用matroska mux保存到文件?

Gstreamer 如何从rtspsrc解复用音频和视频,然后使用matroska mux保存到文件?,gstreamer,rtsp,gst-launch,muxer,Gstreamer,Rtsp,Gst Launch,Muxer,我一直在开发一个应用程序,使用rtspsrc从一个网络摄像机到另一个网络摄像机收集音频和视频。但是,我无法从相机观看流,因此无法验证流是否按预期工作。为了验证流是否正确,我想将其记录在SD卡上,然后在计算机上播放该文件。问题是,我希望相机尽可能多地解析、解码和卸载,因为这是应用程序的目的 因此,我必须通过解复用器分离音频和视频流,并进行解析、解码等,然后将它们复用回matroska文件 视频解码器已被省略,因为它还没有完成这个相机 现场播放接收器的分接器(工作) 多个rtspsrc至matros

我一直在开发一个应用程序,使用rtspsrc从一个网络摄像机到另一个网络摄像机收集音频和视频。但是,我无法从相机观看流,因此无法验证流是否按预期工作。为了验证流是否正确,我想将其记录在SD卡上,然后在计算机上播放该文件。问题是,我希望相机尽可能多地解析、解码和卸载,因为这是应用程序的目的

因此,我必须通过解复用器分离音频和视频流,并进行解析、解码等,然后将它们复用回matroska文件

视频解码器已被省略,因为它还没有完成这个相机

现场播放接收器的分接器(工作)

多个rtspsrc至matroska(工程)

单个rtspsrc到matroska(失败)

最后一个示例失败并显示错误消息

WARNING: erroneous pipeline: link without source element
我是否理解错了matroska mux的用法,以及为什么上面的两个示例有效,而不是最后一个?

问题在于:

queue ! mux. ! filesink
你需要做什么

queue ! mux. mux. ! filesink
多路复用器。意味着gst启动应自动从mux中选择pad。并链接它。您还可以手动指定一个名称,如mux.src。因此,在语法上,您缺少另一个元素/焊盘来链接到另一个元素

WARNING: erroneous pipeline: link without source element
queue ! mux. ! filesink
queue ! mux. mux. ! filesink