Как получить Pipeline, созданный playbin в текстовом формате в Gstreamer?

Я играю файл транспортного потока (*.ts), используя следующий конвейер:

gst-launch-0.10 playbin2 uri=file:///c:/bbb.ts

Но мне нужно преобразовать это в конвейер самостоятельно. Я не уверен, как этого добиться.

До сих пор я пытался: (работает нормально)

gst-launch-0.10 -v filesrc location=c:/bbb.ts ! tsdemux ! audio/x-ac3 ! fakesink

Но если я заменил fakesink на autoaudiosink, то произойдет сбой с несвязанной ошибкой.

И даже подделка не работает для видео:

gst-launch-0.10 -v filesrc location=c:/bbb.ts ! tsdemux ! video/x-mpeg2 ! fakesink

Итак, у меня есть два вопроса:

  1. Как узнать конвейер, созданный элементом playbin.
  2. Как воспроизвести файл mpeg2-ts с помощью конвейера gstreamer.

1 ответ

Решение

Ответ на вопрос 1 -

Существует способ получить графики созданного конвейера, упомянутые в документации базового урока-11.

Бриф со страницы

Получение конвейерных графиков

В тех случаях, когда ваш конвейер начинает становиться слишком большим, и вы теряете информацию о том, что с чем связано, GStreamer имеет возможность выводить графические файлы. Это файлы.dot, которые можно прочитать с помощью бесплатных программ, таких как GraphViz, которые описывают топологию вашего конвейера, а также ограничения, согласованные в каждой ссылке.

Это также очень удобно, когда используются все-в-одном элементы, такие как playbin2 или uridecodebin, которые создают несколько элементов внутри них.

Я надеюсь, что это решает, что вы хотите

Другие вопросы по тегам