Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№112-01-2021 13:40:00

idos
Участник
 
Группа: Members
Зарегистрирован: 17-01-2017
Сообщений: 33
UA: Chrome 85.0

Вывод звука через hdmi (Линукс)

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

Выделить код

Код:

chromium --alsa-output-device="hdmi:CARD=NVidia,DEV=1"

Имеется что-то подобное у firefox?

Отредактировано idos (12-01-2021 13:40:27)

Отсутствует

 

№212-01-2021 15:29:41

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5283
UA: Firefox 86.0

Re: Вывод звука через hdmi (Линукс)


Do you feel lucky, punk?

Отсутствует

 

№316-01-2021 06:27:00

idos
Участник
 
Группа: Members
Зарегистрирован: 17-01-2017
Сообщений: 33
UA: Chrome 86.0

Re: Вывод звука через hdmi (Линукс)

banbot пишет

https://unix.stackexchange.com/question … lsa-device

Там нет решения, а только попытка найти его.
alsa env не дало результатов.
asound.conf или .asoundrc - это не то, что мне нужно.

Отсутствует

 

№416-01-2021 17:29:39

FireForce
Участник
 
Группа: Members
Зарегистрирован: 18-01-2010
Сообщений: 463
UA: Firefox 84.0

Re: Вывод звука через hdmi (Линукс)

idos пишет

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

Такая возможность имеется. И не только для Firefox, а, вообще, для любого приложения.

Делается это следующим образом.

Создайте файл `.asoundrc` в домашнем каталоге и внесите в него инструкции приведенные ниже.

.asoundrc

Выделить код

Код:

#
# ~/.asoundrc
#

##
# Ваша внутренняя звуковая карта
# Узнайте номер карты, вызвав `aplay -l`.
#
pcm.internal {
  type hw
  card 0
}

##
# Звуковая карта HDMI
# Узнайте номер карты, вызвав `aplay -l`.
#
pcm.hdmi {
  type hw
  card 1
}

##
# Далее вы можете задавать любое количество звуковых карт,
# имеющихся у вас в наличии, присваивая им произвольные
# уникальные идентификаторы. Эти идентификаторы впоследствии
# вы будете использовать как значения для переменной `ALSAPCM`
# и таким образом изменять звуковой вывод от конкретного
# приложения.
#
# Например:
#
# ~~~~
# pcm.soundblaster {
#   type hw
#   card 3
# }
#
# pcm.usb_external {
#   type hw
#   card 4
# }
# ~~~~
#
# и т. д.
#
# В определениях звуковых устройств вместо номеров карт
# (`card 0`, `card 1` и т. д.), вы можете использовать их
# названия. Эти названия можно получить, вызвав `aplay -l`.
#
# ~~~~
# $ aplay -l
#
# **** List of PLAYBACK Hardware Devices ****
# card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
#   Subdevices: 1/1
#   Subdevice #0: subdevice #0
# card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
#   Subdevices: 1/1
#   Subdevice #0: subdevice #0
# card 2: Pro [Sound Blaster X-Fi Go! Pro], device 0: USB Audio [USB Audio]
#   Subdevices: 1/1
#   Subdevice #0: subdevice #0
# ~~~~
#
# В приведенном выводе названиями будут являться `PCH`, `NVidia` и `Pro`.
# То есть то, что после `card N:` и до открывающей квадратной скобки ([).
#
# Сами же определения примут следующий вид.
#
# ~~~~
# pcm.internal {
#   type hw
#   card PCH
# }
#
# pcm.hdmi {
#   type hw
#   card NVidia
# }
#
# pcm.usb {
#   type hw
#   card Pro
# }
# ~~~~
#
# Названия — это более надежный способ идентификации
# звуковых устройств, т. к. номера картам присваиваются
# системой произвольно.
#

##
# Микшер
# Нужен, чтобы можно было выводить звук одновременно из
# разных приложений через одну звуковую карту. Без него
# первое запущенное приложение будет владеть звуковой картой
# единолично и не будет позволять выводить звук другим
# приложениям, запущенным впоследствии.
#
pcm.mixer {
  type dmix

  ipc_key 1024

  slave.pcm {
    @func getenv      # Получить значение переменной `ALSAPCM`
    vars  [ ALSAPCM ] # и выводить звук через устройство с
                      # идентификатором равным данному значению.

    default internal # Если переменная `ALSAPCM` не задана,
                     # выводить звук через `pcm.internal`,
                     # т. е. через внутреннюю звуковую карту.
  }
}

##
# Настройка звуковой карты по умолчанию
# Звук всегда будет выводиться через `pcm.mixer` и таким
# образом несколько приложений смогут работать со звуковой
# картой совместно.
#
pcm.!default {
  type plug

  slave.pcm mixer
}

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

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

Рассмотрим пример запуска приложений.

shell

Выделить код

Код:

$ ALSAPCM=hdmi firefox -P foo
$ ALSAPCM=hdmi firefox -P bar
$ mpv video1.mkv
$ mpv video2.mkv
$ ALSAPCM=soundblaster mplayer video3.mkv
$ ALSAPCM=usb_external mplayer video4.mkv

В приведенном примере запущено два экземпляра Firefox с разными профилями. Для обоих экземпляров звук будет выводиться через звуковую карту HDMI.

Также запущено два экземпляра медиаплеера mpv. При запуске, переменной `ALSAPCM` не было присвоено значения. Поэтому, звук будет выводиться через встроенную звуковую карту.

В последних двух командах запущены два экземпляра медиаплеера mplayer. В первом случае звук будет выведен через устройство, которому вами должен был быть присвоен идентификатор `soundblaster`, а во втором — через устройство с идентификатором `usb_external`. (В файле `.asoundrc`, который я привел выше, данные идентификаторы не определены.  Здесь я их привел лишь для того, чтобы показать, что данные идентификаторы могут быть заданы для дополнительных звуковых устройств и в дальнейшем использованы в командах запуска приложений.)

Запущенные приложения будут выводить звук во-первых одновременно, не конкурируя друг с другом (поскольку мы определили микшер в файле `.asoundrc`), и во-вторых в точности на указанные звуковые устройства.

Отсутствует

 

№516-01-2021 18:18:43

idos
Участник
 
Группа: Members
Зарегистрирован: 17-01-2017
Сообщений: 33
UA: Chrome 85.0

Re: Вывод звука через hdmi (Линукс)

FireForce пишет

$ mpv video1.mkv
$ mpv video2.mkv
$ ALSAPCM=soundblaster mplayer video3.mkv
$ ALSAPCM=usb_external mplayer video4.mkv

Зачем так усложнять? Разве без всяких asoundrc нельзя вот так развлекаться с mpv и с mplayer?:

Выделить код

Код:

mplayer -ao alsa:noblock:device=hw=1.7 video4.mkv

mpv --audio-device=alsa/hdmi:CARD=NVidia,DEV=1 video4.mkv

Для прослушивания идеальный вариант и не надо никаких .asoundrc
Подобное ищу для фаерфокса без всяких asoundrc и т.п.
В конце концов есть asoundconf-gtk. Меня интересует есть ли подобная фича у фаерфокса как у хромиума?

Отредактировано idos (16-01-2021 18:21:27)

Отсутствует

 

№616-01-2021 18:36:30

FireForce
Участник
 
Группа: Members
Зарегистрирован: 18-01-2010
Сообщений: 463
UA: Firefox 84.0

Re: Вывод звука через hdmi (Линукс)

idos Сложностей никаких нет. Настроить один раз по инструкции и потом пользоваться всю оставшуюся жизнь с любыми приложениями, вне зависимости от того есть в них выделенные настройки для выбора звукового устройства или нет.

Отсутствует

 

№717-01-2021 10:04:42

idos
Участник
 
Группа: Members
Зарегистрирован: 17-01-2017
Сообщений: 33
UA: Chrome 86.0

Re: Вывод звука через hdmi (Линукс)

Я неправильно обозвал тему. Надо было как-то так "Вывод звука, используя только опции фаерфокса (Линукс).

FireForce, дело не в удобстве, а в наличии такой возможности как в хроме или в её отсутствии. Это всё, что хотел узнать.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]