Я пытаюсь запустить безголовый браузер на экземпляре EC2/Ubuntu 20.04, а затем выводить полученный аудиопоток в приемник Pulseaudio по умолчанию (который затем подхватывается DarkIce/Icecast). Я хочу запустить только одну веб-страницу (мою, размещенную на другом сервере, требующую jQuery и Howler.js), и полученный браузер/поток должен оставаться открытым 24/7.
Мне удалось получить аудиофайл на экземпляре для воспроизведения в Icecast (используя ogg123), поэтому ogg123>Pulseaudio>Darkice>Icecast2 работает. Я создал раковину по умолчанию, как показано ниже.
pactl load-module module-null-sink имя_приемника=радио
pacmd update-sink-proplist радиоустройство.description=радио
pacmd set-default-sink радио
и сделал Pulseaudio драйвером по умолчанию, создав ~/.asoundrc для включения
импульс по умолчанию
ctl.default импульс
Я не уверен, что правильный подход заключается в том, чтобы заставить браузер хорошо играть. Я пробовал (как в google-chome, так и в chromium) указывать непосредственно как на аудиофайл, так и на страницу с js, которая воспроизводит звук (с намерением в конечном итоге запустить его на экране), оба из которых, похоже, находят контент, ни подход воспроизводит любой звук. Например,
google-chrome-stable --headless --disable-gpu --autoplay-policy=no-user-gesture-required --user-data-dir=/home/ubuntu/chromeUser --disable-accelerated-video-decode - -disable-software-rasterizer --enable-logging=stderr --v=1 https://domain.name/stream.html
генерирует следующее
[0608/102421.257217:INFO:cpu_info.cc(53)] Доступное количество ядер: 1
[0608/102421.258656:INFO:cpu_info.cc(53)] Доступное количество ядер: 1
[0608/102421.258861:VERBOSE1:zygote_main_linux.cc(217)] ZygoteMain: инициализация 0 делегатов ветвления
[0608/102421.259318:VERBOSE1:zygote_main_linux.cc(217)] ZygoteMain: инициализация 0 делегатов ветвления
[0608/102421.271947:VERBOSE1:webrtc_internals.cc(118)] Не удалось получить каталог загрузки.
[0608/102421.280120:VERBOSE1:breakpad_linux.cc(2071)] Включен аварийный дамп без браузера для: gpu-process
[0608/102421.283276:ОШИБКА:gpu_init.cc(440)] Проход не поддерживается, GL отключен
[0608/102421.286107:VERBOSE1:breakpad_linux.cc(2071)] Включен аварийный дамп без браузера для: renderer
[0608/102421.288099:VERBOSE1:sandbox_linux.cc(69)] Активирована песочница seccomp-bpf для типа процесса: gpu-process.
[0608/102421.293815:VERBOSE1:sandbox_linux.cc(69)] Активирована песочница seccomp-bpf для типа процесса: визуализатор.
[0608/102421.303930:VERBOSE1:device_data_manager_x11.cc(216)] X Расширение ввода недоступно
[0608/102421.356750:VERBOSE1:configured_proxy_resolution_service.cc(852)] Поддержка PAC отключена, так как отсутствует системная реализация
[0608/102421.357514:VERBOSE1:configured_proxy_resolution_service.cc(852)] Поддержка PAC отключена, так как отсутствует системная реализация
[0608/102421.359494:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://domain.name/stream.html
[0608/102421.411474:VERBOSE1:document.cc(3974)] Document::DispatchUnloadEvents() URL = <null>
[0608/102421.411727:VERBOSE1:document.cc(4054)] Фактическая отправка события UnloadEvent: URL = <null>
[0608/102421.421675:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: /path/to/jquery.min.js
[0608/102421.424968:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: /path/to/jquery-ui.min.js
[0608/102421.429480:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: /path/to/howler.min.js
Это правильный подход, чтобы заставить это работать (и если да, то почему это не так?), или я должен использовать Selenium/Puppeteer/что-то еще?
Спасибо, Крис
[в сторону: я пробовал количество вещей попытаться удалить ошибку «Проход не поддерживается, GL является быстрым шейдером», но безуспешно, хотя, похоже, это не мешает браузеру получить доступ к странице]