Что работает в вашем браузере
Весь код сжатия выполняется на вашем устройстве. Свой код сайта мы пишем сами; для чтения и сборки видеофайлов используем открытые библиотеки ниже. Внешних серверов с кодом нет: всё отдаётся с videorazmer.ru.
Mediabunny 1.60.0 — Mozilla Public License 2.0
Читает MP4, MOV, WebM и MKV, управляет кодером браузера и собирает итоговый MP4.
Лицензия файлового уровня: изменения в файлах самой библиотеки публикуются под той же лицензией. Мы библиотеку не меняли, она отдаётся в сборке как есть.
Исходный код: https://github.com/Vanilagy/mediabunny
@mediabunny/aac-encoder 1.60.0 — Mozilla Public License 2.0; внутри — AAC-кодер из FFmpeg (LGPL 2.1 или новее)
Кодирует звук в AAC в браузерах, где своего кодера нет (Firefox, Chrome на Linux). Загружается только там.
Исходный код кодера FFmpeg доступен на ffmpeg.org; сборка используется без изменений.
Исходный код: https://github.com/Vanilagy/mediabunny
@ffmpeg/core 0.12.10 (ffmpeg.wasm, однопоточное ядро) — GNU GPL 2.0 или новее
Запасной способ сжатия: FFmpeg n5.1.4 с кодером x264, собранный в WebAssembly. Загружается только в браузерах, где встроенный кодер недоступен или не читает формат ролика (например, HEVC в Firefox), — это файл ffmpeg-core.wasm, 32 МБ (10 МБ при передаче).
Ядро распространяется под GPL 2.0 или новее (в сборку входит x264). Исходный код ровно этой версии и скрипты её сборки (Dockerfile, каталог build) — по ссылке ниже, тег v12.15; исходники самого FFmpeg — тег n5.1.4 на github.com/FFmpeg/FFmpeg. Файл отдаётся без изменений. Текст лицензии: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html. Ядро работает отдельной программой в фоновом потоке браузера; остальной код сайта с ним не смешивается.
Исходный код: https://github.com/ffmpegwasm/ffmpeg.wasm/tree/v12.15
@ffmpeg/ffmpeg 0.12.15 (ffmpeg.wasm, обёртка) — MIT
Запускает ядро FFmpeg в фоновом потоке браузера и передаёт ему команды. Загружается вместе с ядром.
Отдаётся без изменений.
Исходный код: https://github.com/ffmpegwasm/ffmpeg.wasm/tree/v12.15
Ролики-примеры
Видео для кнопки «Попробуйте на примере» — «парк» (10 с) и «аллея в парке» (30 с) — взяты из библиотеки тестовых файлов samplelib.com. Её лицензия разрешает делать с файлами что угодно: «меняйте, дополняйте, используйте как душе угодно». Мы перепаковали ролики без перекодирования, заменили служебные метки файла своими и отдаём их со своего сервера, как просит библиотека.
Кодеки
Обычно кодирование видео в H.264 выполняет кодер, встроенный в ваш браузер или операционную систему; сайт его не поставляет. Исключение — запасной способ: там кодирует x264 внутри ffmpeg.wasm (см. выше). Форматы H.264 и AAC патентованы, их лицензирование для встроенных кодеров обеспечивают производители браузеров и систем.