Реалізація Video CDN для стримінгу відео на сайті

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація Video CDN для стримінгу відео на сайті
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Настройка Video CDN та стримінгу

Відео — найважчий тип контенту. Пряма раздача з сервера вбиває пропускну здатність. Video CDN розв'язує доставку, транскодування в різні якості та адаптивний бітрейт (ABR).

Cloudflare Stream

# Завантаження відео через API
curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/stream" \
  -H "Authorization: Bearer {token}" \
  -F [email protected] \
  -F meta='{"name":"Product Demo"}'

# Response:
# {
#   "uid": "abc123",
#   "thumbnail": "https://videodelivery.net/abc123/thumbnails/thumbnail.jpg",
#   "playback": {
#     "hls": "https://videodelivery.net/abc123/manifest/video.m3u8",
#     "dash": "https://videodelivery.net/abc123/manifest/video.mpd"
#   }
# }
// React компонент з Cloudflare Stream плеєром
import { Stream } from '@cloudflare/stream-react';

export function VideoPlayer({ videoId }: { videoId: string }) {
  return (
    <Stream
      src={videoId}
      controls
      responsive
      preload="metadata"
      poster={`https://videodelivery.net/${videoId}/thumbnails/thumbnail.jpg?time=5s&width=640`}
    />
  );
}

Переваги Cloudflare Stream:

  • Автоматичне транскодування у 360p/480p/720p/1080p/1440p
  • HLS + DASH адаптивний бітрейт
  • Глобальний CDN без додаткової настройки
  • Захист від скачування (signed URLs)

Mux: професійна платформа

// Node.js SDK
import Mux from '@mux/mux-node';

const mux = new Mux({
  tokenId: process.env.MUX_TOKEN_ID!,
  tokenSecret: process.env.MUX_TOKEN_SECRET!,
});

// Створення Asset з URL
const asset = await mux.video.assets.create({
  input: [{ url: 'https://storage.mysite.com/raw/video.mp4' }],
  playback_policy: ['public'],
  encoding_tier: 'baseline', // або 'smart' для умного кодування
  mp4_support: 'standard',   // для скачування
});

console.log(asset.playback_ids?.[0]?.id);
// → playback_id для плеєра
// Mux Player (вбудований плеєр)
import MuxPlayer from '@mux/mux-player-react';

<MuxPlayer
  playbackId={playbackId}
  streamType="on-demand"
  accentColor="#FF0000"
  thumbnailTime={15}
  metadata={{
    video_title: 'Product Demo',
    viewer_user_id: userId,
  }}
/>
// Signed URLs для приватного контенту
const token = await mux.jwt.signPlaybackId(playbackId, {
  type: 'video',
  expiration: '6h',
  params: {
    aud: 'v', // video
  },
});

// URL з підписом
const signedUrl = `https://stream.mux.com/${playbackId}.m3u8?token=${token}`;

Власний HLS-пайплайн через FFmpeg + S3

Настройка Cloudflare Stream або Mux з плеєром — 1–2 робочих дні. Власний HLS-пайплайн з FFmpeg та S3 — 3–5 днів.