1

Два приложения Chrome/расширения уловили мой глаз на: Интернет-магазинеHowto: Сохранить скринкаст в видеофайл ChromeOS?

  1. Screencastify
  2. Snagit

Я отдаю себе отчет в chrome.desktopCapture и как я могу использовать getUserMedia(), чтобы захватить живой поток рабочего стола пользователя.

Пример:

navigator.webkitGetUserMedia({ 
    audio: false, 
    video: { 
     mandatory: { 
      chromeMediaSource: 'desktop', 
      chromeMediaSourceId: desktop_id, 
      minWidth: 1280, 
      maxWidth: 1280, 
      minHeight: 720, 
      maxHeight: 720 
     } 
    } 
}, successCallback, errorCallback); 

Я хотел бы создать свое собственное приложение, которое позволяет скринкаст аудиозапись, а также вложение захвата веб-камеры в данном углу видео, как Screencastify.

Я понимаю, что захватил рабочий стол и аудио и видео пользователя, но как вы все вместе и превращаете в видеофайл?

Я предполагаю, что есть способ создать видеофайл из потока getUserMedia() на ChromeOS. Что-то, что только ChromeOS реализовала?

Как это сделать? Заранее благодарю за ваши ответы.

+0

Hi @RickyAYoder Мне интересно видеть окончательный результат, который у вас был, я пытаюсь добиться того же, что вы упомянули –

ответ

2

Фактическое кодирование и сохранение видеофайла не является тем, что было реализовано в Chrome на данный момент. На данный момент Mozilla имеет его в зарождающейся форме. Я не уверен в его состоянии в ChromeOS. Однако я могу дать вам небольшую информацию, которую я почерпнул во время разработки с помощью браузера Chrome.

Два способа кодирования, сохранения и распространения медиапотока в качестве видео являются клиентскими и серверными.

Серверная сторона:
Требуется медиа-сервер. Лучшее, что у меня есть бесплатное/open-source решение, которое я нашел до сих пор, - Kurento. Медиапоток загружается (фрагменты или целые) или передается на медиа-сервер, где он закодирован и сохранен для последующего использования. Это также работает с одноранговым партнером, действуя как посредник, записывая как потоки данных.

На стороне клиента:
Это все о кодировке на основе браузера. В настоящее время есть два рабочих параметра, которые я успешно проверил в Chrome.

  1. Whammy.js:
    Этот метод использует холст хак для сохранения массивов WebP изображений, а затем закодировать их в WebM контейнер. Хотя он медленный, он хорошо работает с видео. Нет поддержки аудио. Я сейчас работаю над этим.
  2. videoconverter.js (был FFmpeg-asm.js):
    Это прямой порт ffmpeg на JavaScript с использованием Emscripten. Он работает как с аудио, так и с видео. Это также гигантский, по сценарию, около 25 МБ несжатого. Другая причина, по которой я не использую его в производстве, - это шаткое лицензионное основание, на котором ffmpeg включен. Он не был оптимизирован настолько, насколько это могло бы быть. Вероятно, это был бы довольно проект, чтобы сделать его надежно готовым к производству.

Надеюсь, это по крайней мере дает вам возможности для исследования.