Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite купить дешевый 
компьютер родом из Dhgate.com

Lines Club

Ищем достойных соперников.

Библиотека сайта или "Мой Linux Documentation Project"

Фреймворк 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 совместно с несколькими плагинами, которые должны быть установлены в любом случае: fakesrc и fakesink. Они не выполняют никакой полезной работы помимо передачи пустых буферов данных. Введите следующую команду в терминале:
$ 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?

О: Вы можете проверить это, попробовав проиграть синусоидальный сигнал. Для этого вам придется связать элемент audiotestsrc с элементом для вывода аудиоданных, соответствующим вашему аппаратному обеспечению. Список плагинов для вывода аудиоданных (неполный):
  • pulsesink предназначен для вывода аудиоданных с помощью звукового сервера Pulseaudio
  • osssink предназначен для вывода аудиоданных с помощью интерфейса OSS
  • esdsink предназначен для вывода аудиоданных с помощью звукового сервера ESound
  • alsasink предназначен для вывода аудиоданных с помощью интерфейса ALSA
  • alsaspdifsink предназначен для вывода аудиоданных с помощью интерфейса ALSA через цифровой выход S/PDIF
  • jackaudiosink предназначен для вывода аудиоданных с помощью звукового сервера JACK
В первую очередь вы должны использовать приложение gst-inspect-1.0, передав название элемента для вывода данных в качестве его аргумента, для того чтобы убедиться в корректности установки соответствующего плагина. Например, в том случае, если вы хотите использовать звуковой сервер Pulseaudio, вы должны выполнить команду:
$ gst-inspect-1.0 pulsesink

и убедиться в том, что в результате выводится набор значений свойств соответствующего плагина.

После этого вы можете попытаться проиграть синусоидальный сигнал с помощью команды:
$ gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! pulsesink

и проверить, слышно ли что-либо. Перед тем, как надеть наушники, следует убедиться в том, что уровень звука не находится на нуле, а также в том, что он не слишком высокий.

В случае использования окружения рабочего стола GNOME вы можете настроить параметры вывода звука большинства приложений, использовав команду:
$ gstreamer-properties

причем соответствующая утилита может быть вызвана также из главного меню (Приложения -> Настройки -> Выбор мультимедийных систем). В окружении рабочего стола KDE не предусмотрено стандартных средств для установки параметров вывода аудиоданных всех приложений; однако, такие приложения, как Amarok позволяют настроить параметры вывода аудиоданных с помощью своих диалогов настроек.

В: Как я могу узнать о том, какие плагины фреймворка GStreamer установлены в моей системе?

О: Для этого вам придется использовать утилиту с интерфейсом командной строки gst-inspect, которая содержится в стандартном комплекте поставки фреймворка 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?

О: Вы можете получить доступ к интерфейсу командной строки фреймворка GStreamer, используя команду gst-launch. Для декодирования файла формата mp3 и вывода аудиоданных с помощью звукового сервера Pulseaudio вы можете использовать команду:
$ 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
Мы также реализовали простой плагин для проигрывания мультимедийных потоков, который выполнит большую часть необходимых операций за вас. Этот плагин имеет название playbin. Попробуйте выполнить следующую команду:
$ gst-launch-1.0 playbin uri=file//home/joe/my-random-media-file.mpeg

В ходе выполнения этой команды должно начаться проигрывание указанного файла в том случае, если его формат поддерживается, т.е., для вас будет сформирован конвейер из всех необходимых демультиплексоров, декодеров и элементов для вывода данных.


Следующий раздел : Диагностика фреймворка GStreamer.


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют