sezanzeb
sezanzeb

Reputation: 1139

How do you figure out gstreamer profile strings

Trying to use encodebin and its profiles. The documentations here: 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 list examples, but they don't really explain how I actually construct those strings.

It names the generic muxer_source_caps:video_encoder_source_caps:audio_encoder_source_caps format, but where do I get muxer_source_caps from. application/ogg:audio/x-vorbis from the examples works totally fine.

For instance, how would I proceed to figure out the needed profile to encode to aac in an mp4 container.

Making wild guesses to use mime types from https://github.com/GStreamer/gstreamer/blob/cc55b304ef4ab1cd95f6348d33f268ccebaab8e8/docs/random/mimetypes also won't work.

all attempts are failing with WARNING: erroneous pipeline: could not set property "profile" in element "enc" or some longer errors when only using audio/x-m4a without a muxer_source_cap

thanks

Upvotes: 0

Views: 1074

Answers (1)

sezanzeb
sezanzeb

Reputation: 1139

at least for ogg, though it doesn't work that way for the other formats I tried.

by using gst-inspect-1.0 | grep ogg -i oggmux can be found

gst-inspect-1.0 oggmux yields, among other things:

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

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

muxer_source_caps is SRC template, which is application/ogg

audio_encoder_source_caps is SINK template, which is audio/x-vorbis

makes application/ogg:audio/x-vorbis

sometimes there are variables, like layer in xingmux. Those are added like:

audio/mpeg,mpegversion=1,layer=3

Upvotes: 1

Related Questions