Видеорегистратор с камеры

Записывайте видео с веб-камеры и микрофона прямо в браузере, затем скачивайте файл — без загрузки и сервера.

Записывайте видео с веб-камеры и микрофона прямо в браузере, затем скачивайте файл — без загрузки и сервера. Записывайте видео с веб-камеры и микрофона прямо в браузере, затем скачивайте файл — без загрузки и сервера.

00:00

Справка

Как работает запись в браузере

Запись в браузере — это конвейер из трёх шагов. Сначала getUserMedia() захватывает MediaStream с камеры и микрофона после того, как вы дадите разрешение — браузеры всегда спрашивают и требуют защищённого контекста (HTTPS или localhost). Затем MediaRecorder потребляет этот поток и кодирует поступающие кадры в контейнер, например WebM, нарезая данные на фрагменты по ходу дела. Наконец, при остановке фрагменты собираются в единый Blob, который можно воспроизвести и скачать. Ничего не передаётся: кодирование происходит на вашем устройстве, поэтому браузерный рекордер может создать файл даже при отключённой сети.

Контейнеры и кодеки

Контейнер и кодек зависят от вашего браузера и платформы. WebM с видео VP8 или VP9 и аудио Opus — самый надёжный вариант и работает в Chrome, Firefox, Edge и Safari. MP4 предлагается, когда браузер сообщает о его поддержке, что на новых устройствах встречается всё чаще, но не везде. Если вы выберете формат, который браузер не может закодировать, страница автоматически переключится на WebM. Когда запись завершается, появляется кнопка скачивания с корректным расширением (.webm или .mp4) в соответствии с тем, что было фактически создано.

Приватность и разрешения

Перед началом потока браузер показывает запрос разрешения, где можно выбрать, какие камеру и микрофон предоставить — выпадающие списки устройств на этой странице заполняются из enumerateDevices(), и вы можете переключать устройства и заново открывать поток. Вся обработка локальна: видеобайты никогда не покидают ваше устройство, и сама страница ничего не сохраняет. Когда вы останавливаете запись, индикатор камеры гаснет, а дорожки потока освобождаются, поэтому после завершения ресурсы не удерживаются. На некоторых системах индикатор камеры остаётся включённым, пока страница удерживает любой поток, даже при выключенном звуке.

Практические замечания

Предпросмотр корректно зеркалится (беззвучное воспроизведение исключает эхо), а таймер отсчитывает прошедшее время во время записи. Для длинных записей учтите, что хранимые в памяти фрагменты растут с длительностью, поэтому очень долгие сессии потребляют больше памяти. Если нужно записывать экран, а не камеру, это требует другого API (getDisplayMedia) и здесь не рассматривается. Если запрос разрешения был однажды отклонён, браузеры обычно блокируют выбор, пока вы не сбросите настройки сайта.

Создано внутренними силами на нативных API браузера getUserMedia и MediaRecorder. Запись происходит локально; ничего не загружается.

Часто задаваемые вопросы

Почему страница запрашивает доступ к камере/микрофону?
getUserMedia() всегда требует явного согласия пользователя ради приватности. Браузер показывает запрос с точным перечнем устройств, которыми будут делиться; можно дать разрешение один раз, и поток начнётся сразу после этого.
Почему моя запись сохраняется как .webm?
WebM (VP8/VP9 + Opus) — контейнер, который может закодировать любой основной браузер. MP4 предлагается только там, где браузер сообщает о поддержке; иначе страница автоматически переключается на WebM.
Моё видео загружается на сервер?
Нет. Кодирование происходит локально через MediaRecorder, а результат — это Blob в памяти вашего браузера. Ничего не передаётся, и страница ничего не хранит; можно записывать при отключённой сети.
Почему индикатор камеры не гаснет?
Индикатор означает, что страница удерживает активный поток камеры. Он гаснет при остановке записи и освобождении дорожек. На некоторых системах индикатор остаётся включённым, пока активен любой поток, даже при выключенном звуке или без записи.
Можно ли сменить устройства в середине сессии?
Да. Выберите другую камеру или микрофон в выпадающих списках и начните новую запись; страница заново согласует поток с новым выбором устройств при следующем запуске.
Что нужно для работы рекордера?
Браузер с поддержкой getUserMedia и MediaRecorder (любой современный), камера и микрофон, а также защищённый контекст: HTTPS или localhost. Если поддержки нет, вместо элементов управления показывается уведомление.