Как MediaConverter.io конвертирует файлы, не загружая их на сервер
Когда вы конвертируете видео- или аудиофайл на MediaConverter.io, вся работа выполняется во вкладке браузера, на вашем собственном компьютере или телефоне. Файл никогда не отправляется на наши серверы. На этой странице сначала простыми словами объясняется, что это значит, а затем приводятся технические подробности для тех, кому они интересны.
Если коротко
Обычный онлайн-конвертер загружает ваш файл на сервер, конвертирует его там и отправляет результат обратно. MediaConverter.io обходится без этого пути туда и обратно: код конвертации скачивается в ваш браузер, как и любая другая часть страницы, а работу выполняет ваше устройство.
- На вашем устройстве
Вы выбираете файл
Когда вы перетаскиваете файл на страницу или выбираете его в диалоговом окне, эта вкладка браузера получает возможность прочитать именно этот файл. На сервер ничего не копируется.
- В вашем браузере
Страница его читает
Инструмент анализирует файл прямо во вкладке: его формат, кодеки, длительность, разрешение, аудиодорожки и дорожки субтитров.
- На вашем устройстве
Ваше устройство его конвертирует
Встроенный медиадвижок браузера или копия FFmpeg, работающая внутри страницы, декодирует файл и кодирует его в новый формат.
- На вашем устройстве
Вы сохраняете результат
Готовый файл попадает из памяти вкладки прямо в загрузки браузера. Если закрыть вкладку, всё несохранённое пропадёт; на нашей стороне удалять нечего.
Что это значит для вас
Конфиденциальность. Ваша запись, фильм или голосовая заметка остаются на вашем устройстве. На наших серверах нет копии, которая могла бы утечь, храниться дольше, чем вы ожидали, или которую потом пришлось бы удалять. Как и большинство сайтов, мы собираем статистику использования сайта с помощью Google Analytics и Microsoft Clarity: посещённые страницы, клики и события, например какие форматы конвертировались и размер файла, округлённый до ближайшего мегабайта. Сам файл эти инструменты никогда не получают.
Скорость. Не нужно ждать ни загрузки файла на сервер, ни скачивания результата, а для большого видео это может занять больше времени, чем сама конвертация. Скорость самой конвертации зависит от вашего устройства. Если браузер может задействовать видеооборудование, встроенное в ваш компьютер или телефон, всё происходит быстро; если инструменту приходится переключаться на FFmpeg, всю работу выполняет процессор и конвертация идёт медленнее.
Ограничения. Поскольку всё происходит в памяти вашего устройства, практический предел определяется тем, сколько памяти может использовать браузер, а не числом, которое задаём мы. Конвертеры загружают весь исходный файл в память (у самого движка FFmpeg, который они используют, предел — около 2 GB), поэтому практический потолок — примерно 2 GB на файл, а файлы большего размера могут не открыться. У телефонов меньше памяти и более медленные процессоры, чем у компьютеров, поэтому они работают дольше и упираются в этот предел раньше. Не закрывайте вкладку, пока конвертация не завершится: если её закрыть, конвертация остановится, а результат будет потерян.
Как это устроено: WebCodecs, mediabunny и FFmpeg
Чтение файла. Выбранный вами файл становится доступен странице как браузерный объект File. Анализ выполняется на месте: mediabunny считывает только нужные ему диапазоны байтов, а ffprobe из FFmpeg читает сведения о файле через ленивое монтирование, не копируя файл. Затем этапы конвертации, в которых используется FFmpeg, копируют весь файл в память FFmpeg — отсюда и потолок примерно в 2 GB на файл.
Быстрый путь: WebCodecs. WebCodecs — это API браузера, который даёт веб-страницам прямой доступ к видео- и аудиодекодерам и кодировщикам, уже встроенным в браузер; там, где это возможно, они задействуют видеооборудование вашего устройства. Инструменты работают с ним через mediabunny — библиотеку на TypeScript с открытым исходным кодом, которая читает файлы MP4, MOV, Matroska (MKV и WebM), MPEG-TS, WAV, Ogg, FLAC, MP3 и ADTS AAC, пропускает кадры через WebCodecs и записывает MP4, MOV, MKV, WebM и распространённые аудиоконтейнеры.
Запасной вариант: FFmpeg, скомпилированный в WebAssembly. Для всего, что не умеет быстрый путь, страница запускает ffmpeg.wasm — ядро FFmpeg 0.12.10, скомпилированное в WebAssembly. Оно загружается с нашего собственного домена (а не со сторонней CDN), работает на процессоре в одном потоке и используется только для того, чего не умеет WebCodecs: для записи файлов AVI, FLV и TS и чтения FLV (при этом изображение переносится между контейнерами, а не кодируется), для конвертации файлов AVI и видео, которое ваш браузер не может декодировать (DivX, Xvid, MPEG-2 и подобные), а также для кодирования большинства аудиоформатов. Оно медленнее WebCodecs, но одинаково работает в любом браузере.
| Задача | Движок |
|---|---|
| Чтение сведений о файле при его добавлении | FFmpeg (ffprobe), чтение файла на месте, без копирования |
| Перекодирование видео из MP4, MOV, M4V, MKV, WebM, MPEG-TS и FLV с H.264 — в том числе когда на выходе AVI, FLV или TS | WebCodecs через mediabunny, с аппаратным ускорением, если браузер его предоставляет |
| Аудиодорожки и дорожки субтитров в инструменте «Конвертер видео» | FFmpeg, после конвертации видео |
| «Конвертер аудио» и сохранение звука из видео в аудиофайл | FFmpeg |
| «Компрессор видео» (видео и звук) | WebCodecs через mediabunny, с FFmpeg в качестве запасного варианта |
| Запись файлов AVI, FLV и TS и чтение FLV с H.264 | FFmpeg, который только переносит изображение между контейнерами до и после WebCodecs |
| Изображение H.264 без изменений из FLV или в AVI, FLV или TS (из AVI — только в другой AVI) | Копируется FFmpeg; ничего не перекодируется |
| Конвертация AVI в другой формат (AVI хранит время кадров только в порядке декодирования, поэтому перекодируется даже его H.264) и видео, которое браузер не может декодировать (DivX/Xvid, MPEG-2, Sorenson Spark и VP6) | FFmpeg для всего файла |
Выбор пути. Перед конвертацией «Конвертер видео» и «Компрессор видео» спрашивают у mediabunny, может ли он открыть файл, декодировать его видео и записать целевой формат. Если хотя бы один ответ отрицательный или браузеру пришлось бы отбросить видеодорожку, вся задача передаётся FFmpeg, поэтому неподдерживаемый кодек означает более медленную конвертацию, а не испорченный файл.
Результат. Сконвертированный файл собирается в памяти и передаётся браузеру в виде локальной ссылки blob: — именно она и попадает в папку загрузок. Если инструмент предлагает «Скачать все», ZIP-архив тоже собирается на странице.
Какие части сайта всё же используют серверы
Бесплатные инструменты, перечисленные ниже, и все страницы конвертации из формата в формат, например MP4 в MP3, обрабатывают файлы только на вашем устройстве. Наши серверы отдают веб-страницы, код инструментов и движок FFmpeg — как и любой другой сайт.
Две функции работают иначе и не относятся к инструментам конвертации, о которых рассказывает эта страница:
- ИИ-студия (наш ИИ-ассистент, который также доступен как ToolGPT) отправляет ваши сообщения в чате ИИ-моделям, работающим на серверах. Большая часть работы с файлами выполняется в вашем браузере, как и в здешних инструментах, но удаление шума и отделение голоса или музыки выполняются в облачном сервисе: после вашего разрешения звук загружается на сервер для обработки.
- Автоматические субтитры в видеоредакторе с таймлайном отправляют звук проекта в сервис транскрибации, чтобы создать субтитры.
Попробуйте инструменты
- Конвертер видео Меняйте формат, кодек, разрешение или частоту кадров видео.
- Конвертер аудио Конвертируйте между MP3, WAV, FLAC, M4A, AAC, OGG и другими форматами.
- Компрессор видео Уменьшайте видео до нужного размера или битрейта.
- Обрезка видео Оставляйте или удаляйте фрагмент видео.
- Разделение видео Разделяйте одно видео на несколько клипов.
- Поворот видео Поворачивайте или отражайте видео.
Частые вопросы
01
02
03
04
05
06