У changelog Cloudflare описано оновлення: генерація MP4 для завантаження з Cloudflare Stream стала до 40 % швидшою, причому розробникам не потрібно змінювати існуючу інтеграцію. Найбільший виграш стосується відео тривалістю понад 1 хвилину.
Що саме прискорили і для яких сценаріїв це помітно
Cloudflare оптимізувала бекендову обробку для створення завантажуваних MP4 файлів з відео, що зберігаються в Stream. У вихідному матеріалі немає технічних деталей оптимізації, але зафіксовано орієнтовний ефект: до 40 % швидше час генерації MP4.
Найбільша практична різниця очікувана для on-demand (VOD) відео, що тривають більше 1 хвилини. Для дуже коротких роликів виграш часу буде меншим у відносних величинах, а для довших відео користувачі швидше дочекаються готового файлу для завантаження.
Як запустити генерацію MP4 через Cloudflare Dashboard
Автори changelog нагадують, що найпростіший варіант для частини команд — скористатися панеллю керування Cloudflare:
- зайти в Cloudflare Dashboard;
- відкрити розділ Stream і вибрати потрібне відео за UID;
- у блоці для завантажень запустити створення MP4 (типово профіль називається
default).
Цей шлях підходить, якщо ви епізодично готуєте окремі завантаження та не автоматизуєте процес.
Генерація MP4 через Cloudflare CLI (cf)
Для автоматизації Cloudflare пропонує використовувати CLI cf. У вихідному прикладі команда створює завантаження з профілем default для конкретного відео:
cf stream videos downloads create default --identifier "$VIDEO_UID"
Ключові параметри:
stream videos downloads create— команда для створення завантаження;default— ім'я профілю завантаження (можливо, у вашій конфігурації будуть інші профілі, якщо ви їх налаштовували окремо);--identifier "$VIDEO_UID"— у змінній$VIDEO_UIDмає бути UID відео в Stream.
Після виконання CLI повертає JSON з полями статусу обробки і URL майбутнього MP4 файлу.
Генерація MP4 через REST API (curl приклад)
Той самий процес можна запустити через HTTP API. У changelog наведено curl запит до Cloudflare API:
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/stream/$IDENTIFIER/downloads/default" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Що тут важливо для інтеграції:
$ACCOUNT_ID— ідентифікатор вашого акаунта Cloudflare;$IDENTIFIER— UID відео в Stream, той самий, що використовується в CLI прикладі;Authorization: Bearer $CLOUDFLARE_API_TOKEN— потрібен токен з достатніми правами на роботу зі Stream відео в цьому акаунті.
Метод POST до /downloads/default запускає створення завантаження для профілю default. Якщо у вас декілька профілів, у шляху можна буде використати іншу назву профілю відповідно до документації Cloudflare Stream.
Як прочитати відповідь API і відстежити прогрес
І CLI, і пряме API звернення повертають JSON з інформацією про статус обробки і URL для завантаження. Автори changelog показують типовий приклад відповіді:
{
"result": {
"default": {
"status": "inprogress",
"percentComplete": 75.0,
"url": "https://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/downloads/default.mp4"
}
},
"success": true,
"errors": [],
"messages": []
}
Корисні поля у result.default:
status— в наведеному прикладі значення"inprogress". Коли обробка завершиться, статус, за документацією, зміниться (актуальні значення статусів варто звіряти в офіційному гайді Cloudflare);percentComplete— відсоток готовності. У прикладі це75.0, тобто обробка виконана приблизно на ¾. Це поле можна використати для індикатора прогресу на фронтенді або для повторних перевірок у бекенд-процесах;url— повний URL майбутнього MP4 файлу, наприкладhttps://customer-<CODE>.cloudflarestream.com/<VIDEO_UID>/downloads/default.mp4. Саме цей URL зручно зберігати в системі і показувати користувачу після завершення обробки.
Поля success, errors, messages відповідають загальному формату Cloudflare API. Варто перевіряти success і, у випадку false, аналізувати вміст errors замість того, щоб покладатися тільки на status всередині result.
Практичний вплив оновлення на бекенд і UX
Хоча в changelog немає вимірювань для конкретних таймінгів, описане прискорення до 40 % може бути помітним у таких сценаріях:
- якщо ваш застосунок автоматично готує MP4 версію кожного завантаженого відео для офлайн роздачі;
- якщо користувач чекає в інтерфейсі, поки з'явиться доступний для завантаження файл, і ви періодично опитуєте API за
percentComplete; - якщо ви пакетно генеруєте MP4 для архіву роликів (у цьому разі загальний час обробки партії скоротиться пропорційно прискоренню окремих відео).
Важливе обмеження: оновлення не змінює API контракти. Ви й надалі працюєте через ті самі ендпоїнти і CLI команди, описані в документації Cloudflare Stream. Будь-які додаткові профілі завантажень, власні політики доступу або обмеження пропускної здатності треба перевіряти за офіційними гайдами.
Де подивитися деталі і статусні значення
Для повної картини щодо полів відповіді, підтримуваних статусів і додаткових параметрів автори changelog відсилають до документації Cloudflare Stream: Generate downloadable MP4 files. Там можна уточнити:
- які ще профілі завантаження, крім
default, доступні і як ними керувати; - які статуси може мати поле
statusі як правильно обробляти помилки; - чи є обмеження на розмір або тривалість відео для генерації MP4.
Оновлення з прискоренням генерації вже діє, тому існуючі інтеграції автоматично отримують виграш у часі без зміни коду.
Джерело: Cloudflare Changelog