Библиотека сайта rus-linux.net
Фреймворк GStreamer. Часто задаваемые вопросы. Использование фреймворка GStreamer
Оригинал: GStreamer FAQАвторы: Wim Taymans, Steve Baker, Andy Wingo, Ronald S. Bultje, Stefan Kost
Дата публикации: 27 августа 2014 г.
Перевод: А.Панин
Дата перевода: 4 сентября 2014 г.
4. Использование фреймворка GStreamer
Вопрос: Отлично, я установил GStreamer. Что делать дальше?
$ gst-inspect-1.0 fakesrc
После ввода данной команды должен быть выведен большой объем информации о заданном элементе. В том случае, если вы получаете сообщение о том, что "модуль или элемент не найден", вы не установили GStreamer корректно. Пожалуйста, обратитесь к разделу "Получение исходного кода фреймворка GStreamer" еще раз. В том же случае, если данная команда приводит к выводу какой-либо другой ошибки, мы с удовольствием рассмотрим отправленное вами сообщение об ошибке.
$ gst-launch-1.0 -v fakesrc silent=0 num-buffers=3 ! fakesink silent=0
RUNNING pipeline ... fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 0) 0x8057510" fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 0) 0x8057510" fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 1) 0x8057510" fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 1) 0x8057510" fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 2) 0x8057510" fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 2) 0x8057510" execution ended after 5 iterations (sum 301479000 ns, average 60295800 ns, min 3000 ns, max 105482000 ns)
(Для ясности некоторые части выводимой информации были удалены) В том случае, если была выведена аналогичная информация, фреймворк GStreamer функционирует корректно.
В: Сможет ли моя система выводить звук посредством фреймворка GStreamer?
- pulsesink предназначен для вывода аудиоданных с помощью звукового сервера Pulseaudio
- osssink предназначен для вывода аудиоданных с помощью интерфейса OSS
- esdsink предназначен для вывода аудиоданных с помощью звукового сервера ESound
- alsasink предназначен для вывода аудиоданных с помощью интерфейса ALSA
- alsaspdifsink предназначен для вывода аудиоданных с помощью интерфейса ALSA через цифровой выход S/PDIF
- jackaudiosink предназначен для вывода аудиоданных с помощью звукового сервера JACK
$ gst-inspect-1.0 pulsesink
и убедиться в том, что в результате выводится набор значений свойств соответствующего плагина.
$ gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! pulsesink
и проверить, слышно ли что-либо. Перед тем, как надеть наушники, следует убедиться в том, что уровень звука не находится на нуле, а также в том, что он не слишком высокий.
$ gstreamer-properties
причем соответствующая утилита может быть вызвана также из главного меню (Приложения -> Настройки -> Выбор мультимедийных систем). В окружении рабочего стола KDE не предусмотрено стандартных средств для установки параметров вывода аудиоданных всех приложений; однако, такие приложения, как Amarok позволяют настроить параметры вывода аудиоданных с помощью своих диалогов настроек.
В: Как я могу узнать о том, какие плагины фреймворка GStreamer установлены в моей системе?
$ gst-inspect-1.0
$ gst-inspect-1.0 volume
позволит получить информацию о плагине с названием "volume".
В: Куда я должен сообщать об обнаруженных ошибках?
О: Управление сообщениями об ошибках на данный момент осуществляется с помощью системы Bugzilla проекта GNOME, расположенной по адресу http://bugzilla.gnome.org, причем при работе с ней следует выбирать название продукта "GStreamer". С помощью системы Bugzilla вы можете ознакомиться с сообщениями об ошибках, созданными в прошлом, сообщить о новой ошибке, и.т.д. Для работы с Bugzilla вам потребуется учетная запись, которая может показаться бесполезной, но она позволяет нам, по крайней мере, иметь канал для связи с вами, который, вероятнее всего, будет использоваться для получения дополнительной информации.
В: Каким образом я должен оформлять сообщения об ошибках?
- информацию о вашем дистрибутиве
- информацию о том, как вы установили GStreamer (скомпилировав исходный код из репозитория git, скомпилировав исходный код, представленный в разделе загрузок, установив бинарные пакеты, а также предоставить информацию о соответствующих версиях пакетов)
- информацию о предыдущих установках GStreamer
В том случае, если у вас появились проблемы с приложением, которое прекращает свою работу из-за ошибок сегментирования, вам стоит предоставить необходимую информацию, выводимую отладчиком gdb. Обратитесь к ответу на вопрос: "Приложение на основе GStreamer прекращает работу из-за ошибки сегментирования. Что мне стоит сделать в этом случае?"
В: Как пользоваться интерфейсом командной строки фреймворка GStreamer?
$ gst-launch-1.0 filesrc location=thesong.mp3 ! mad ! pulsesink
Большее количество примеров приведено на странице руководства для утилиты gst-launch.
$ gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin ! pulsesink
$ gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin ! videoconvert ! xvimagesink
$ gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin name=decoder decoder. ! videoconvert ! xvimagesink decoder. ! audioconvert ! pulsesink
$ gst-launch-1.0 playbin uri=file//home/joe/my-random-media-file.mpeg
В ходе выполнения этой команды должно начаться проигрывание указанного файла в том случае, если его формат поддерживается, т.е., для вас будет сформирован конвейер из всех необходимых демультиплексоров, декодеров и элементов для вывода данных.
Следующий раздел : Диагностика фреймворка GStreamer.