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
有人能帮我吗