← Cloudflare Stream / stream
Преобразование видео
Вы можете оптимизировать и обрабатывать видео, которые хранятся снаружи Cloudflare Stream с помощью Media Transformations. Преобразованные видео и изображения обслуживаются из одной из ваших зон в Cloudflare.
Чтобы преобразовать видео или изображение, необходимо включить преобразования для вашей зоны. Если в вашей зоне уже включены Image Transformations, вы также можете оптимизировать видео с помощью Media Transformations.
Начало работы
Вы можете динамически оптимизировать и создавать статичные изображения из видео, которые хранятся снаружи Cloudflare Stream с помощью Media Transformations.
Cloudflare автоматически кеширует каждое преобразованное видео или изображение в нашей глобальной сети, поэтому на вашем origin-сервере достаточно хранить только оригинал изображения.
Чтобы включить преобразования для своей зоны:
-
На панели управления Cloudflare перейдите к разделу Преобразования страницу.
Перейдите в Преобразования ↗ -
Найдите зону, в которой нужно включить преобразования.
-
Выберите Включить для зоны.
Преобразование видео по URL
Вы можете конвертировать и изменять размер видео, запрашивая их по специально отформатированному URL, без написания кода. Формат URL:
https://example.com/cdn-cgi/media/<OPTIONS>/<SOURCE-VIDEO>example.com: ваш сайт или зона в Cloudflare с включённой функцией Transformations./cdn-cgi/media/: Префикс, обозначающий специальный путь, который обрабатывается встроенным сервисом преобразования медиа Cloudflare.<OPTIONS>: Список параметров, разделённых запятыми. См. доступные варианты ниже.<SOURCE-VIDEO>: Полный URL-адрес (начинающийся сhttps://илиhttp://) исходного файла, размер которого нужно изменить.
Например, этот URL-адрес получает HD-видео из R2 bucket, обрезает его по длительности, кадрирует и изменяет размер до квадрата, а также удаляет аудио.
https://example.com/cdn-cgi/media/mode=video,time=5s,duration=5s,width=500,height=500,fit=crop,audio=false/https://pub-8613b7f94d6146408add8fefb52c52e8.r2.dev/aus-mobile-demo.mp4Результат представляет собой MP4-файл, который можно использовать в элементе HTML video без библиотеки плеера.
Параметры
mode
Задаёт тип создаваемого выходного файла.
video: Формирует MP4-файл, оптимизированный для H.264/AAC.frame: Формирует статичное изображение.spritesheet: Формирует JPEG-файл с несколькими кадрами.audio: Формирует файл M4A с кодированием AAC.
time
Задаёт момент, с которого начинается извлечение выходных данных из входного файла. Зависит от mode:
- Когда
modeэтоspritesheet,video, илиaudio, определяет временную метку, с которой начинается выходной файл. - Когда
modeэтоframe, определяет временную метку, с которой извлекается статичное изображение. - Форматируется как строка времени, например: 5s, 2m
- Допустимый диапазон: 0-10m
- По умолчанию: 0
duration
Длительность результирующего видео или спрайт-листа. Зависит от mode:
- Когда
modeэтоvideoилиaudio, определяет длительность выходного файла. - Когда
modeэтоspritesheet, определяет временной диапазон, из которого выбираются кадры. - Допустимый диапазон: 1s - 60s (или 1m)
- По умолчанию: длительность входного потока или 60 секунд, в зависимости от того, что меньше
fit
В сочетании с width и height, определяет, как изменять размер и обрезать выходной файл. Если размер выходного файла изменяется, это всегда происходит пропорционально, чтобы содержимое не растягивалось.
contain: С сохранением соотношения сторон масштабирует видео так, чтобы оно полностью помещалось в заданные размеры вывода.scale-down: То же, что и contain, но только уменьшает изображение по размеру, не увеличивая его.cover: С сохранением соотношения сторон масштабирует видео так, чтобы оно полностью покрывало заданные размеры вывода, обрезая остаток по центру.
height
Задаёт максимальную высоту выходного изображения в пикселях. Точное поведение зависит от fit.
- Допустимый диапазон: 10-2000 пикселей
width
Задаёт максимальную ширину изображения в пикселях. Точное поведение зависит от fit.
- Допустимый диапазон: 10-2000 пикселей
audio
Когда mode это video, определяет, включать ли исходное аудио в выходной файл.
true: Включает исходный звук.false: Результат будет без звука.- По умолчанию:
true
Когда mode это audio, audio не может иметь значение false.
format
Если mode это frame, определяет формат выходного изображения.
- Допустимые варианты:
jpg,png
Если mode это audio, определяет формат выходного аудио.
- Допустимые варианты:
m4a(по умолчанию)
filename
Задаёт имя файла, которое будет использовано в заголовке ответа Content-Disposition. Если не указано, имя файла будет определено на основе исходного URL-адреса.
- Допустимые значения:
- Максимальная длина составляет 120 символов.
- Может содержать только строчные латинские буквы (a-z), цифры (0-9), дефисы (-), символы подчёркивания (_) и необязательное расширение. Допустимое имя соответствует следующему регулярному выражению:
^[a-zA-Z0-9-_]+.?[a-zA-Z0-9-_]+$.
- Примеры:
default.mp4,shortened-clip_5s
Требования к исходному видео
- Исходное видео должно быть меньше 100 МБ.
- Исходное видео должно быть в формате MP4 с видеокодеком H.264 и аудиокодеком AAC или MP3. Другие форматы могут работать, но не были протестированы.
- Источник должен поддерживать запросы HTTP HEAD и Range-запросы, а также возвращать заголовок Content-Range.
Ограничения
- Максимальный размер исходного файла составляет 100 МБ. Максимальная продолжительность исходного видео составляет 10 минут.
- Media Transformations несовместимы с Использование собственного IP (BYOIP).
- Исходное видео должно быть в формате MP4 с видеокодеком H.264 и аудиокодеком AAC или MP3, либо анимированным GIF. Другие форматы могут работать, но не были протестированы.
При использовании Media Transformations из Cloudflare Worker рекомендуем использовать привязки. В противном случае, если Worker вызывает Media Transformations в той же зоне, которая используется как его триггер, примените global_fetch_strictly_public флаг совместимости, чтобы избежать ошибок 404 на /cdn-cgi/media путей.
Цены
С 1 ноября 2025 года Media Transformations и Image Transformations будут использовать общие подписки и метрики использования.
- Создание статичного кадра (одного изображения) из видео засчитывается как 1 трансформация.
- Создание оптимизированного видео или извлечение аудио засчитывается как 1 трансформация за секунду выходного видео контент.
- Каждое уникальное преобразование, определяемое входными данными и уникальным набором флагов, оплачивается только один раз в календарный месяц.
- Все операции Media Transformations и Image Transformations стоят $0.50 за 1,000 уникальных трансформаций в месяц, при этом первые 5,000 предоставляются бесплатно каждый месяц.