Как конвертировать видео в Base64
- Перетащите видеофайл в поле или выберите его через диалог. Подходят MP4, WebM, MOV и другие форматы, которые распознаёт ваша система.
- Посмотрите его в плеере предпросмотра и убедитесь, что это нужный ролик.
- Формат вывода уже стоит на Data URI. Для API выберите Чистый Base64 или JSON.
- Короткий ролик скопируйте кнопкой Скопировать результат, большой сохраните через Сохранить как .txt.
Как узнать видео в Base64
| Контейнер | MIME-тип | Base64 начинается с |
|---|---|---|
| MP4 | video/mp4 | AAAA + один символ + GZ0eXB, например AAAAIGZ0eXBpc29t |
| MOV (QuickTime) | video/quicktime | AAAAFGZ0eXBxdCAg (бренд qt) |
| WebM, MKV | video/webm, video/x-matroska | GkXfo |
| AVI | video/x-msvideo | UklGR (RIFF, как WAV и WebP) |
По контейнеру видно, какой тип указать в data URI. Сможет ли браузер воспроизвести ролик, зависит от кодека внутри: H.264, HEVC, VP9 или AV1.
Когда видео в Base64 оправдано
- Крошечные зацикленные ролики в HTML-странице из одного файла: анимация продукта или демо интерфейса на секунду-другую. Добавьте
autoplay muted loop playsinline: автозапуск со звуком браузеры обычно блокируют. - Тестовые данные для проверки загрузки, перекодирования или воспроизведения, которые лежат рядом с тестами.
- API, принимающие короткое видео прямо в запросе. Так работают некоторые мультимодальные API и сервисы обработки медиа: ролик идёт в Base64 внутри JSON. Размер у них ограничен, а для более длинных файлов обычно можно передать ссылку на файл в хранилище.
Во всех остальных случаях лучше обычный видеофайл. Браузер может запрашивать его диапазонами, начинать воспроизведение до окончания загрузки и кешировать. Data URI нужно скачать и декодировать целиком, и он раздувает HTML, CSS или JSON, в котором лежит, на размер видео плюс треть. Если в веб-приложении файл уже есть в памяти, URL.createObjectURL(blob) даст пригодный для воспроизведения URL вообще без Base64.
Уменьшите ролик перед кодированием
Размер видео определяют в основном разрешение, частота кадров и битрейт. Трёхсекундный тестовый ролик 1280×720 весом 69 243 байта ужался до 17 281 байта после масштабирования до 480 пикселей в ширину и удаления звуковой дорожки:
ffmpeg -i clip.mp4 -vf scale=480:-2 -c:v libx264 -crf 28 -an -movflags +faststart small.mp4
-crf 28 жертвует частью качества ради размера (чем больше, тем меньше файл), -an убирает звук, а scale=480:-2 сохраняет пропорции с чётной высотой. Результат кодируйте здесь. Подробности про MP4 на странице MP4 в Base64; Base64 в видео воспроизводит строку Base64 обратно.
Вопросы и ответы
Можно ли встроить видео в HTML через Base64?
Да: <video src="data:video/mp4;base64,..." controls></video>. Для коротких роликов это работает. Длинное видео делает страницу огромной и не воспроизводится потоком: браузеру нужен весь data URI целиком, прежде чем начать воспроизведение.
Видео какой длины можно конвертировать?
Жёсткого ограничения в инструменте нет: большие файлы кодируются по частям и сохраняются в .txt. Результат больше примерно 48 МБ скопировать не получится. На практике data URI размером больше нескольких мегабайт на веб-странице уже плохая идея.
Какой формат видео лучше кодировать?
MP4 с видео H.264 воспроизводится во всех современных браузерах. WebM (VP9 или AV1) часто получается меньше и тоже широко поддерживается. MOV с телефонов может быть в HEVC, который многие браузеры, кроме Safari, не воспроизводят.