首页 > 解决方案 > Rust 的 GStreamer 编辑服务 / 如何指定编码器设置

问题描述

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

let p = gstreamer_editing_services::Pipeline::new();
let t = gstreamer_editing_services::Timeline::new_audio_video();
p.set_timeline(&t);
let l = t.append_layer();

// Every audiostream piped into the encodebin should be encoded using vorbis.
let audio_profile = gstreamer_pbutils::EncodingAudioProfileBuilder::new()
    .format(&gstreamer::Caps::new_simple("audio/x-opus", &[]))
    .presence(0)
    .build()?;

// Every videostream piped into the encodebin should be encoded using theora.
let video_profile = gstreamer_pbutils::EncodingVideoProfileBuilder::new()
    .format(&gstreamer::Caps::new_simple("video/x-h264", &[]))
    .presence(0)
    .build()?;

// All streams are then finally combined into a matroska container.
let container_profile = gstreamer_pbutils::EncodingContainerProfileBuilder::new()
    .name("container")
    .format(&gstreamer::Caps::new_simple("video/x-matroska", &[]))
    .add_profile(&(video_profile))
    .add_profile(&(audio_profile))
    .build()?;

p.set_render_settings("file:///tmp/my.mp4", &container_profile);

代码正在运行;但我对如何强制执行特定设置一无所知。也许有人可以帮忙。

标签: encodingrustgstreamerprofile

解决方案


推荐阅读