我将 Gstreamer 与 rtspsrc 和 RTSP 摄像头一起使用,当我从计算机连接摄像头时,autovideosink 保持打开状态。如何让它在断开相机连接后自动关闭?
我尝试设置超时,但没有用。我没有线索。
按照@Christoph的建议,在消息总线上添加监视,GStreaner使用消息总线在管道的不同部分之间进行通信,例如在不同元素之间传递事件、警告、错误。
因此,当传感器断开连接时,源元素会在消息总线上发布警告或错误,您需要注意这一点,然后使用
GST_RTSP_FILTER_REMOVE
关闭所有活动客户端。
GstRTSPFilterResult client_filter(GstRTSPServer* server,
GstRTSPClient* client,
gpointer user_data) {
/* Simple filter that shuts down all clients. */
return GST_RTSP_FILTER_REMOVE;
}
当您在总线上收到传感器断开错误时,只需调用以下命令,其中
server
是您的 GstRTSPServer
实例。
gst_rtsp_server_client_filter(server, client_filter, NULL);