gst-launch-1.0 filesrc location="/tmp/sound.wav" ! decodebin ! encodebin profile="application/ogg:video/x-theora:audio/x-vorbis" ! filesink location="/tmp/sound.ogg"
encodebin не имеет шаблонов в своих пэдах, поэтому gst-launch не знает, какой пэд запрашивать (видео или аудио). Вы можете явно запросить один из них, используя:
gst-launch-1.0 filesrc location="/tmp/sound.wav" ! decodebin ! enc.audio_%u encodebin name=enc profile="application/ogg:video/x-theora:audio/x-vorbis" ! filesink location="/tmp/sound.ogg"
Обратите внимание, как мы даем encodebin имя «enc», а затем связываем decodebin с аудиопэдом, поскольку знаем, что это файл только для аудио.
Если бы у нас было и видео, и аудио, вам нужно было бы явно связать видеопэд с декодера с видеопэем кодебин и т. Д. Вы также дадите имя декодеру и свяжете их. Что-то вроде: decodebin name=dec dec.audio_%u ! queue ! enc.audio_%u dec.video_%u ! queue ! enc.video_%u
В качестве последнего предложения рекомендуется иметь очередь после каждого элемента, который может разветвляться на несколько путей, например, декодирования. Это обязательно, если у вас есть более одного выхода, но вам не помешает иметь его, даже если у вас есть только один.