Google Chrome Безголовая ошибка «Не поддерживается» При использовании getDisplayMedia при попытке записи экрана с вкладки Chrome в Puppeteer - PullRequest
0 голосов
/ 26 марта 2020

Я использую последнюю версию Puppeteer с Chromium 80, и я пытаюсь записать видео со страницы в chrome без заголовка и включил все эти флаги:

{
  headless: true,
  devtools: false,
  args: [
    '--no-sandbox',
    '--allow-insecure-localhost',
    '--enable-usermedia-screen-capturing',
    '--use-fake-ui-for-media-stream', // In headless: false it will capture display rather than tab and in headless: true doesn't work
    '--auto-select-desktop-capture-source=[RECORD]', //[RECORD] is the title of my localhost page trying to screen capture
    '--remote-debugging-port=9222',
    '--window-size=1440,900',
  ],
  ignoreDefaultArgs: [
    '--mute-audio',
    '--disable-media-session-api',
  ]
}

Вкл. windows, если это headless : false захватит вкладку chrome (иногда происходит сбой). Но если это headless : true даже на Windows, то это говорит, что это Not supported. Если флаг --use-fake-ui-for-media-stream включен, то это уже другая история, и он будет захватывать один из моих дисплеев независимо от того, является ли headless истиной или ложью.

Теперь я хочу использовать это на моем linux сервере, где есть не отображается, и я просто хочу, чтобы chrome headless : true захватил мою вкладку chrome. Я знаю, что это возможно, потому что я вижу экран в режиме headless : true в DevTools. Если он создает отображение в DevTools, он ДОЛЖЕН иметь возможность создавать отображение на снимке экрана. Я предполагаю, что на Puppeteer должны быть включены другие флаги, так что это разрешено. Я использую navigator.mediaDevices.getDisplayMedia для получения данных экрана.

Я также пробовал эту конфигурацию видео, и она не работала (сбой) и, очевидно, работает только с расширениями, и мне нужно получить исходный идентификатор из Справочная информация:

screenStream = await navigator.mediaDevices.getDisplayMedia({
        video: {
            //mandatory: {
            //    chromeMediaSource: 'tab', // Not using this!
            //}
        },
        audio: false
});

Есть ли кто-нибудь, кто знает, какие флаги следует также учитывать в Кукольнике?

Обратите внимание, что я не хочу использовать xvfb и Selenium (WebDrive) или любые расширения в моем chrome безголовом.

...