你如何找出 gstreamer 配置文件字符串

How do you figure out gstreamer profile strings

正在尝试使用 encodebin 及其配置文件。此处的文档:https://gstreamer.freedesktop.org/documentation/pbutils/encoding-profile.html?gi-language=c#defining-a-gstencodingprofile-as-a-string and there: https://gstreamer.freedesktop.org/data/doc/gstreamer/1.9/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile 列出示例,但它们并没有真正解释我实际上是如何构造这些字符串的。

它命名通用 muxer_source_caps:video_encoder_source_caps:audio_encoder_source_caps 格式,但我从哪里得到 muxer_source_caps。 application/ogg:audio/x-vorbis 从示例中完全可以正常工作。

例如,我将如何继续找出在 mp4 容器中编码为 aac 所需的配置文件。

胡乱猜测使用 https://github.com/GStreamer/gstreamer/blob/cc55b304ef4ab1cd95f6348d33f268ccebaab8e8/docs/random/mimetypes 中的 mime 类型也行不通。

当只使用 audio/x-m4a 而没有 muxer_source_cap

时,所有尝试都失败并出现 WARNING: erroneous pipeline: could not set property "profile" in element "enc" 或一些更长的错误

谢谢

至少对于 ogg 来说是这样,尽管它对我尝试过的其他格式不起作用。

通过使用gst-inspect-1.0 | grep ogg -i可以找到oggmux

gst-inspect-1.0 oggmux 产量,除此之外:

  SINK template: 'audio_%u'
    Availability: On request
    Capabilities:
      audio/x-vorbis

  SRC template: 'src'
    Availability: Always
    Capabilities:
      application/ogg

muxer_source_caps是SRC template,也就是application/ogg

audio_encoder_source_caps是SINK template,也就是audio/x-vorbis

成就application/ogg:audio/x-vorbis

有时候会有变数,比如xingmux中的layer。这些添加如下:

audio/mpeg,mpegversion=1,layer=3