GStreamer中的Capsfilter

GStreamer中的Capsfilter,gstreamer,Gstreamer,我有下面的管道模板,当我启动它时,它可以完美地工作 data.pipeline_template = "webrtcbin bundle-policy=max-bundle name=tx %s rtspsrc location=%s latency=50 ! \ queue ! rtph264depay ! h264parse config-

我有下面的管道模板,当我启动它时,它可以完美地工作

data.pipeline_template =
                        "webrtcbin bundle-policy=max-bundle name=tx %s rtspsrc location=%s
                        latency=50 ! \
                        queue ! rtph264depay ! h264parse config-interval=-1 ! avdec_h264 ! \
                        videoconvert name=source ! \
                        textoverlay font-desc=\"Arial 40px\" text=\"TX\" valignment=2 ! \
                        timeoverlay font-desc=\"Arial 60px\" valignment=2 ! videoconvert ! \
                        queue max-size-buffers=1 ! \
                        x264enc name=encoder bitrate=%d speed-preset=ultrafast tune=zerolatency
                        key-int-max=5 ! \
                        video/x-h264,profile=constrained-baseline ! queue max-size-time=100000000 ! \
                        h264parse config-interval=-1 ! rtph264pay config-interval=-1 name=payloader ! \
                        tee name=t ! udpsink host=%s port=%d t. ! %s ! tx. ";
但是,我想动态更改高度和宽度。 因此,我认为我必须在 管道:

capsfilter name=resol caps=video/x-raw,宽度=%d,高度=%d

稍后将以这种方式更新管道:

data.capsfilter = gst_bin_get_by_name(GST_BIN(data.pipeline), "resol");
caps = gst_caps_new_simple(
                "video/x-raw",
                "width", G_TYPE_INT, data->width,
                "height", G_TYPE_INT, data->height, NULL);
g_object_set(G_OBJECT(data->capsfilter), "caps", caps, NULL);
我的问题是我不知道在模板中添加到哪里:

capsfilter name=resol caps=video/x-raw,宽度=%d,高度=%d

有人能帮我吗