Аудио Импульса Alsa не может открыть импульс аудиоустройства (Никакой такой файл или каталог) импульс: ошибка ввода/вывода

Эта команда изящно выходит из дерева хромированных процессов во всех оконных менеджерах:

pkill --oldest chrome

или, если вы предпочитаете:

/usr/bin/pkill --oldest --signal TERM -f chrome    

Подробности:

  • изящно означает: избегайте видеть "Google Chrome выключился некорректно". Чтобы открыть заново ..." при следующем запуске хромированного браузера
  • chrome (например, версия 39.0.2171. 95) ловушки и изящно обрабатывает сигнал SIGTERM
  • -корень дерева процессов хрома, следовательно -старейший
  • SIGTERM такой же, как и сигнал 15, следовательно -сигнал TERM, или просто пропустите это, так как SIGTERM - это сигнал по умолчанию
  • wmctrl работает с Unity и некоторыми другими, но он работает не со всеми оконными менеджерами
  • wmctrl -c закрывает по одному окну за раз, так что чтобы закрыть все хромированные окна, нужно что-то вроде , в то время как wmctrl -c 'Google Chrome'; спать 0. 2; done
0
06.03.2014, 08:13
3 ответа

(надеюсь) IMPROVED CODE AT BOTTOM

  1. Читая скрипт, предоставленный в вашем собственном ответе, я пришел к следующим выводам о вашем решении. Пожалуйста, исправьте меня по любым/всем ошибкам, которые я мог сделать.
  2. Вы добавляете [112910]xwinfo $GAME_WINDOW[112911]-специфический набор данных в [112912]tmp[112913]-файловый дамп после указания геометрии [112914]$GAME_WINDOW[112915] через [112916]wmctl[112917]. Перед инициализацией дампа вы фактически усекаете ваш [112918]tmp[112919]файл до 0 байт с помощью [112920]rm -f[112921], что предположительно происходит только один раз за сессию, либо потому, что поток специфичен для сессии, либо во избежание роста файла [112922]tmp[112923]слишком большого размера, хотя, опять же, я предполагаю и то, и другое. Я основываю вышеприведенные выводы на этих трех строках:
  3. Хотя я не знаком ни с [112924]wmctl[112925], ни с [112926]xwinfo[112927], я знаю, что это общие [112928]xorg[112929] утилиты для автоматизации различных [112930]X[112931] поведений окна. Я предполагаю, что вы передаете этот набор данных только для того, чтобы быть в курсе любых изменений, которые могут произойти, чтобы [112932]ffmpeg[112933] мог делать правильные вещи со своим транскодом, а не накачивать фактические графические/звуковые исходные данные через следующие две [112934]переменные окружения[112935], так как я очень сомневаюсь, что последнее поведение будет работать больше нескольких секунд, если вообще:
  4. Here you:

Откройте два подоболочки [113088]$(подстановка команд)[113089], по одной для присвоения значения [113090]$TOPXY[113091] и [113092]$INRES[113093]. [12176] Для [112938]$TOPXY[112939] вы: [12177]Con[113094]cat[113095]enate your [113096]tmp[113097]file with [113098]stdin[113099] and anonymously [113100]|pipe[113101] results to [113102]grep[113103]'s [113104]stdin[113105] who then . ...[12178]oEe[113107] опускает любую строку и любую часть любой строки, которая таким образом не содержит строку: [12179]"[113182]углы:[113183]", за которым следует ...[12178]oEe[113107] ... [12180]на [113184]+[113185] по крайней мере один [113186]\s[113187] символ пробела, затем ...[12181]a [113188]\+[113189] буквенный знак плюс, затем .... [12182] на [113190]+[113191] по крайней мере одна [113192][0-9][113193] цифра ...[12183] другая [113194] \+[113195] буквенный плюс ...[12184] и, наконец, по крайней мере [113196]+[113197] еще одна [113198][0-9][113199] цифра. ...[12185] Результат анонимно [113110] |piped[113111] до другого экземпляра [113112] grep[113113], который впоследствии [113114]-oEe[113115] опускает все до того, как ваш первый захваченный [113116][0-9][113117] разряд, а затем анонимно [113118] |pipe[113119] его результат до . ...[12186]sed[113121], который [113122]tr[113123]ansforms all literal [113124]\+[113125] pluses it gets to [113126],[113127] commas and dumps to his [113128]stdout[113129] which is ... [12187]наконец захвачен и сохранен в [113130]$TOPXY[113131] с помощью [113132]$(команда подставлена)[113133] присвоения переменных подоболочки.[12188]Процесс для [112950]$INRES[112951] кажется во многом таким же, если немного менее сложным. [12189]Наиболее примечательным для меня является то, что весь файл [112952]tmp[112953] является con[112954]cat[112955]enated как минимум [112956]дважды [112957] для каждого вызова, не говоря уже обо всех [112958]|pipes[112959]. Возможно, есть много способов сделать это, но я не могу представить, что это будет одним из лучших из них. После этого вы вызываете [112960]ffmpeg[112961], ссылаясь на две переменные, указанные выше, и на различные другие опции, в том числе и на другие переменные окружения, которые вы также указали: [12191]PROBABLY MORE DIRECT[12192] Что далее включает в себя отсутствие файлов [112964]tmp[112965], единственный [112966]|pipe[112967], вызов только одного вызова [112968]sed[112969] и единственной подоболочки [112970]подстановки команд [112971] для разбора настроек геометрии, и содержится в одной функции. Все переменные окружения определены в [112972]here-документах [112973], переданных в его [112974]stdin[112975] и, следовательно, эффективно локально скопированы. Они также определяются через [112976]-подстановку параметров[112977] и, следовательно, могут быть сконфигурированы. Например, чтобы изменить значение [112978]$FPS[112979] для одного вызова, нужно всего лишь:[12193]Однако, я все же думаю, что [112980]vlc[112981] сделает гораздо лучший вариант. [12194]

1
28.01.2020, 02:37

Итак, у вас определенно установлен pulseaudio, но вам явно не хватает драйверов эмуляции ALSA pulseaudio. Pulseaudio взаимодействует с клиентскими приложениями по-разному, но наиболее распространенным является то, что приложения обращаются к ALSA, а pulseaudio для перехвата. Alsamixer evern работает таким образом в правильно настроенной системе. Здесь - очень полезная страница для понимания того, как работает pulseaudio. В частности, в module-alsa-stream сказано следующее:

Вам (почти) никогда не придется загружать этот модуль вручную.

Возможно, вас заинтересует модуль, пара строк вверху, модуль-конвейер- {приемник, источник} :

Предоставляет простой тест {приемник, источник}, который {пишет, читает} аудиоданные {в, из} FIFO ...

С этой целью, если у вас есть VLC или вы можете его получить, вы можете попробовать потоковое воспроизведение с ним:

pacmd list-source-outputs

должен содержать выходной адрес примерно такой Я вставил ниже для вашего фиктивного источника:

cvlc pulse://alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor \
    --sout '#transcode{acodec=mpga,ab=128,channels=2}:\
     standard{access=http,dst=0.0.0.0:8080/pc.mp3}' &

О, и, возможно, вас также интересует pacat , и вы, вероятно, уже получили его. Это единственный исполняемый файл, на который ссылаются как parec , так и paplay .

Еще немного о Pulse / ALSA (хотя документация по этому поводу довольно хороша):

Pulseaudio пытается имитировать ALSA для любого приложения, которое еще не было обновлено для взаимодействия с ним. По сути, теория гласит, что если приложение не оборудовано для работы с dbus с помощью pulse, Pulse все равно будет посредником ALSA через интерфейс плагина module-alsa-stream , о котором я упоминал ранее.Фактически, то же самое верно для OSS и Esound и их соответствующих модулей, если они потребуются.

Но, возможно, вы слишком много думаете об этом - простейшую потоковую передачу звука можно выполнить с помощью mkfifo или даже просто cat, если хотите. В зависимости от требований к пропускной способности и задержке netcat может быть здесь весьма полезен. Вы также можете заглянуть в Sox - он предлагает интерфейс, похожий на pacat.

Какой у вас дистрибутив Linux? Я понимаю, что это в контейнере, но здесь, вероятно, требуется проверка, что вы обновили все соответствующие пакеты, особенно если Pulse не работает. Попробуйте следующее:

pulseaudio --start

Если он запустится, попробуйте это, возможно, лучше намекните на ваш источник:

pacmd list-source-outputs | grep 'source:'
1
28.01.2020, 02:37
[112462] Решил проблему сам, Нижеприведенная схема идеально работает даже без звуковой карты на вашем VPS, она обеспечивает потоковое воспроизведение как аудио, так и видео на рабочем столе.
  • 0
    28.01.2020, 02:37

    Теги

    Похожие вопросы