Encoding GStreamer Rust编辑服务/如何指定编码器设置

Encoding GStreamer Rust编辑服务/如何指定编码器设置,encoding,rust,gstreamer,profile,Encoding,Rust,Gstreamer,Profile,我是gstreamer-rs的新手。我尝试使用gstreamer编辑服务渲染视频。目前,我正在使用示例代码对配置文件进行编码,如下所示: let p=gstreamer_editing_services::Pipeline::new(); 让t=gstreamer\u editing\u services::Timeline::new\u audio\u video(); p、 设置时间线(&t); 设l=t。附加_层(); //通过管道传输到encodebin的每个音频流都应该使用vorbis

我是gstreamer-rs的新手。我尝试使用gstreamer编辑服务渲染视频。目前,我正在使用示例代码对配置文件进行编码,如下所示:

let p=gstreamer_editing_services::Pipeline::new();
让t=gstreamer\u editing\u services::Timeline::new\u audio\u video();
p、 设置时间线(&t);
设l=t。附加_层();
//通过管道传输到encodebin的每个音频流都应该使用vorbis进行编码。
让audio_profile=gstreamer_pbutils::EncodingAudioProfileBuilder::new()
.format(&gstreamer::Caps::new_simple(“audio/x-opus”,&[]))
.出席(0)
.build()?;
//每个输送到encodebin的视频流都应该使用theora进行编码。
让video_profile=gstreamer_pbutils::EncodingVideoProfileBuilder::new()
.format(&gstreamer::Caps::new_simple(“视频/x-h264,&[]))
.出席(0)
.build()?;
//然后,所有流最终合并到matroska容器中。
让container_profile=gstreamer_pbutils::EncodingContainerProfileBuilder::new()
.名称(“容器”)
.format(&gstreamer::Caps::new_simple(“视频/x-matroska,&[]))
.add_profile(&(视频_profile))
.add_profile(&(音频_profile))
.build()?;
p、 设置渲染设置(“file:///tmp/my.mp4“,&容器配置文件);
代码正在运行;但我对如何强制执行特定设置没有任何线索。也许有人能帮忙

  • 如何设置音频和视频编码器的比特率、帧率和质量选项
  • 如何定义特定的编码器(如h264视频的nvenc/nvh264enc)

GStreamer文档包括一个in-C,它使用a设置特定的编码器和比特率。谢谢;但下一个问题是:如何在gstreamer-rs中实例化预设。没有新的()-方法和工厂。。。或者我遗漏了什么?在C示例中,他们使用了
gst\u element\u factory\u make
,这会创建一个
GstElement
,并将其转换为
GstPreset
,因此我会在Rust中尝试同样的方法。