Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: GStreamer неадекватно выбирает аудиоконвейер для вывода звука  (Прочитано 1959 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 0xAD

  • Автор темы
  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Ubuntu 14.04. GStreamer 1.2.4/0.10.36, PulseAudio 4.0, ALSA 1.0.27.2.

Встроенная в Ubuntu и Unity программа настройки звука (Параметры системы -> Звук), насколько я понимаю, при выборе устройства вывода звука изменяет настройки не только PulseAudio (изменяет сток по умолчанию), но и настройки GStreamer (ранее шедшая в составе Ubuntu программа Выбор мультимедийной системы от проекта GNOME удалена из дистрибутива и её функции выполняет Параметры системы -> Звук) (насколько я понял, при выборе устройства ALSA она для GStreamer выбирает аудиоконвейер ALSA, минуя PulseAudio (при этом выбирает в качестве устройства вывода ALSA конкретную карточку ALSA, а не вариант по умолчанию, потому что вариант по умолчанию это перенаправление на PulseAudio), но при выборе устройства, недоступного через ALSA (например, Bluetooth-наушников), выставляется аудиоконвейер PulseAudio (или выбирается аудиоконвейер ALSA, но устройство вывода ALSA выставляется по умолчанию, то есть перенаправление на PulseAudio)).

Но когда PulseAudio меняет сток по умолчанию самостоятельно (с колонок на наушники), настройки GStreamer не меняются, и он продолжает выводить напрямую через ALSA, на конкретную карточку, ту же самую, на которую выводил раньше (на колонки), хотя, например, проигрываемые через PulseAudio стандартные звуки Ubuntu (например, звук регулировки громкости (пузырики)) проигрываются через наушники.

Для отдельной настройки GStreamer установил программу Выбор мультимедийной системы (не установленный по умолчанию пакет gnome-media, программа gstreamer-properties). Аудиоконвейер выбран ALSA, устройство вывода "Не поддерживается" (видимо, имеется в виду, что для данного аудиоконвейера не поддерживается выбор конкретного устройства вывода). При выборе аудиоконвейера PulseAudio (устройство вывода "По умолчанию"), программы, использующие GStreamer, (например, Rhythmbox) начинают выводить звук на наушники.

Однако после перезагрузки Ubuntu, переподключения наушников и запуска программы Параметры системы -> Звук GStreamer снова выводит звук через колонки. pactl stat показывает сток по умолчанию наушники. Выбор мультимедийной системы показывает аудиоконвейер PulseAudio (устройство вывода "По умолчанию"), как и раньше. Однако при нажатии кнопки "Проверить" (кнопка проверки вывода звука в программе Выбор мультимедийной системы), звук идёт через колонки :idiot2: При переключении аудиоконвейера на ALSA при нажатии кнопки "Проверить" звук идёт через наушники :idiot2: По всей видимости, используется ALSA и устройство вывода по умолчанию, которым является перенаправление на PulseAudio, на его устройство по умолчанию, которым являются наушники. При переключении обратно на PulseAudio звук опять идёт через колонки. При этом программы, использующие GStreamer, в обоих случаях выводят звук через колонки :idiot2: После ещё одной перезагрузки Ubuntu, переподключения наушников, но без запуска программы Параметры системы -> Звук поведение такое же.

Как настроить GStreamer на использование аудиоконвейера PulseAudio (то есть на отправку звука напрямую PulseAudio) и на использование устройства (стока) PulseAudio по умолчанию (чтобы в случае самостоятельной смены PulseAudio стока по умолчанию программы, использующие GStreamer, тоже переключились с колонок на наушники)?

Оффлайн 0xAD

  • Автор темы
  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Проблема оказалась ложной. То есть я просто недостаточно изучил ситуацию и сделал неправильный вывод о том, что проблема в GStreamer'е, что он, якобы, выводит звук не туда, куда нужно. На самом деле, когда PulseAudio меняет сток по умолчанию самостоятельно, перевод вывода звука с колонок на наушники не осуществляют не программы, использующие GStreamer, а конкретно две программы: Rhythmbox и Firefox/Flash, последняя из которых не использует GStreamer, при этом программы Totem, Firefox/HTML5/H.264 и SMPlayer вывод звука успешно переводят, при том что первые две из них используют GStreamer.

Таким образом, практически всё, что написано в предыдущем посте — полный бред :) Даже комментировать его не буду. Скажу только, что неверно всё, кроме первого абзаца с информацией о версиях ПО, что программа Выбор мультимедийной системы настраивает только GStreamer 0.10, но не GStreamer 1.0/1.2.4, используемый большинством приложений и что GStreamer 1.0 походу не настраивается вообще (см. например https://www.linux.org.ru/forum/general/11886343), просто программы, использующие GStreamer 1.0, при инициализации библиотеки GStreamer или при инициализации мультимедиапотока указывают все необходимые параметры (сами).

Что же касается уточнённой проблемы (то, что Rhythmbox и Firefox/Flash не переводят звук на наушники, когда PulseAudio меняет сток по умолчанию), то с её причинами мне так и не удалось разобраться. Зато удалось излечить. :) Просто нужно было запустить чудодейственную (животворящую) программу Параметры системы -> Звук и переключить устройство вывода с наушников на колонки и затем обратно, при этом все программы переводили звук на наушники, и впоследующем проблема уже не наблюдалась, в том числе и после перезагрузки. Она же вызвала проблему, она же её и излечила. Несмотря на то, что излечение сохранялось после перезагрузки, сравнение дампов скрытых файлов и папок домашней папки в различные моменты времени релевантных различий не выявило. :idiot2:

 

Страница сгенерирована за 0.291 секунд. Запросов: 26.