我目前有一组使用 GStreamer 和 SDP 录制的流,命令类似如下
gst-launch-1.0 --eos-on-shutdown filesrc location=test.sdp ! sdpdemux timeout=0 name=demux webmmux name=mux ! filesink location=test.webm demux. ! queue ! rtpopusdepay ! opusparse ! mux.
对于在 SDP 中声明的多个流,这可以正常工作。但是,有时流可能会迟到,因此它们在录制时不是原始 SDP 的一部分。有没有办法更新录制过程,以便它可以将新流添加到当前正在进行的录制中?
也接受其他建议。
答案1
您可以,但前提是您不使用 gst-launch cli,该 cli 仅推荐用户用于调试目的。Gstreamer 旨在用于代码(c/c++ 和 c#、python、rust、java 中的绑定...)。在那里,您可以在运行时访问不同的元素。您可以使用更新的 sdp 重新启动管道,也可以在不重新启动的情况下将特定流添加到混合中,但不能通过 sdp。