StreamHouse блогы24/7 трансляция vps

VPS пен басқарылатын бұлттық сервистегі 24/7 трансляция

FFmpeg арқылы VPS-те 24/7 трансляция жүргізу оңай көрінеді — плейлист басынан қайта басталғанша, процесс түнде өліп қалғанша немесе екінші бағыт шығыс трафикті екі есе арттырғанша. Өзіңіз жасаудың шын мәнінде нені білдіретінін және басқарылатын сервис қашан тиімдірек екенін түсіндіреміз.

Оқуға шамамен 6 мин

Осы бетте

FFmpeg көмегімен VPS-те 24/7 трансляция жүргізуге болады: бейнелеріңізді жалға алынған серверге жүктеп, concat плейлистін жазасыз да, оны платформаның RTMP мекенжайына циклмен жібересіз. Бұл жұмыс істейді және жақсы оқу жобасы бола алады. Нақты шығын — сіздің уақытыңыз: ол кодтауға, құлаған процесті қалпына келтіруге, мониторингке және трафикті жоспарлауға кетеді.

Төменде өзіңіз жасаудың шын мәнінде нені қамтитынын және басқарылатын сервис сағаттарыңызды қашан тиімдірек пайдалануға мүмкіндік беретінін талдаймыз.

Негізгі тұжырымдар

  • Қарапайым FFmpeg циклін тез іске қосуға болады; оны айлар бойы тоқтатпай ұстау — негізгі жұмыс.
  • Кадр жиілігі немесе уақыт белгілері сәйкес келмесе, copy режиміндегі плейлист құлап, басынан басталуы мүмкін.
  • FFmpeg өзін-өзі қайта іске қоспайды және сізге ескерту жібермейді.
  • Әрбір қосымша бағыт шығыс трафикке өзінің толық битрейтін қосады.

Өзіңіз құрған VPS жүйесі қалай көрінеді

Өзіңіз орналастыратын әдеттегі жүйе төрт бөліктен тұрады:

  1. Linux VPS — кітапханаңызға жететін диск көлемі және ешқашан тоқтамайтын трансляцияға жететін шығыс трафигі бар сервер.
  2. Бейне файлдарыңыз — SFTP арқылы жүктелген немесе қоймадан синхрондалған.
  3. Плейлист файлы — FFmpeg-тің concat демуксеріне арналған.
  4. FFmpeg командасы — плейлисті нақты уақытта оқып, циклмен қайталап, оны rtmp://a.rtmp.youtube.com/live2 сияқты қабылдау мекенжайына кілтіңізбен бірге жібереді.

Көп нұсқаулықтар stream copy режимін пайдаланады: бұл режимде FFmpeg бейне мен дыбысты қайта кодтамай, сол күйінде өткізеді. Процессор жүктемесі өте аз болады, сондықтан шағын сервер де жетеді, ал алғашқы трансляцияны іске қосу шынымен тез.

Бірақ бір шарты бар: copy режимі барлық файл техникалық тұрғыдан бірдей болғанда ғана тегіс жұмыс істейді, ал ұзақ мерзімді күштің басым бөлігі дәл осыған кетеді.

Кодтау және уақыт белгілері: FFmpeg плейлистері неге басынан басталады

Stream copy режимінде FFmpeg файлдарды бар күйінде біріктіреді, сондықтан бір ғана ерекше файл түйіспелерді бұзады. Жиі кездесетін себептер:

  • Кадр жиілігінің сәйкес келмеуі, мысалы, 30 fps файлдардың жанында 29.97 fps экспорт немесе ауыспалы кадр жиілігімен түсірілген телефон жазбасы.
  • Әртүрлі ажыратымдылық немесе дыбыс форматтары, мысалы, 1080p файлдардың арасындағы 720p клип.
  • Оғаш timebase немесе жоқ уақыт белгілері — кейбір редакторлар мен экран жазғыштар қалдыратын ақаулар.

Белгілері журналдағы ескертулерден бастап қатып қалған бейнеге және FFmpeg-тің толық тоқтауына дейін әртүрлі. Ол қайта іске қосылғанда плейлист бірінші бейнеден басталады, сөйтіп көрермендер сол бір алғашқы сағатты қайта-қайта көреді.

Шешімі — плейлистке кірмес бұрын бәрін бір профильге қайта кодтау: бірдей ажыратымдылық, тұрақты кадр жиілігі, бірдей кілт кадр аралығы және бірдей дыбыс форматы. Толығырақ: 24/7 трансляцияға арналған кодтау параметрлері.

Құлаулар, қайта іске қосу және мониторингті өзіңіз басқару

FFmpeg — керемет құрал, бірақ ол тірі қалуға мән бермейтін жалғыз процесс. Платформа байланысты үзгенде, желі бір сәтке тоқтағанда немесе файл қате тудырғанда, ол жұмысын аяқтайды, ал сіз мыналарды өзіңіз құрмасаңыз, оны ештеңе қайта қоспайды:

  • Супервизор, мысалы, автоматты қайта іске қосылатын systemd сервисі.
  • Позицияны бақылау — қайта іске қосылғанда плейлист ең басынан басталмауы үшін.
  • Денсаулық тексерістері — платформаның бейнені шынымен қабылдап жатқанын растау үшін, өйткені процесс жұмыс істеп тұрса да, арна офлайн көрінуі мүмкін.
  • Телефонға ескертулер — түнгі сағат 3-тегі үзіліс таңғы асқа дейін созылмауы үшін.

Оған қоса техникалық қызмет бар: жаңартулар, қайта жүктеулер, журналдарға толып кететін дискілер және скрипттерде ашық мәтінмен сақталған трансляция кілттері. Бұлардың ешқайсысы жеке алғанда қиын емес, бірақ бәрі бірге жартылай жұмыс күніне тең. Нені бақылау керегін трансляция денсаулығы мен жұмыс уақытын бақылау мақаласынан қараңыз.

Трафик және бір серверден бірнеше бағытқа тарату

Тоқтаусыз трансляция адамдар күткеннен көбірек дерек жұмсайды. 30 күн бойы жұмыс істейтін бір 6 Mbps трансляция шамамен 1.9 TB жібереді. Оны үш платформаға жіберсеңіз, сервер тәулік бойы шамамен 18 Mbps итереді, бұл айына 6 TB-қа жуық. Провайдеріңіздің шығыс трафик лимитін және одан асқан жағдайдағы шарттарды тексеріңіз.

Бірнеше бағытқа тарататын FFmpeg-тің де өз ерекшеліктері бар. Әр платформаға бір процесс дегеніңіз — бақылау керек бірнеше процесс. FFmpeg-тің tee муксері бір кірісті бірнеше шығысқа жібереді, бірақ әр шығыс ақауға төзімді етіп бапталмаса, бір ғана істен шыққан бағыт, мысалы, ескірген кілтті қабылдамаған платформа, бүкіл процесті құлатуы мүмкін.

Платформалардың ерекшеліктері де сіздің мойныңызда, мысалы, YouTube-тың 12 сағаттық мұрағат шегі, оны қарапайым цикл ескермейді.

Өзіңіз құрған VPS трансляциясы қашан дұрыс таңдау

Мыналардың көбі сізге сәйкес келсе, өз серверіңізде орналастыру лайық:

  • Linux командалық жолында еркін жұмыс істейсіз және жүйелерді күтіп-баптағанды ұнатасыз.
  • Бір бағытқа ғана трансляция жасайсыз немесе бірнеше бағыт үшін ақауларды өңдеуді өзіңіз әзірлеуге дайынсыз.
  • Кітапханаңыз шағын әрі тұрақты, әр файлдың қалай экспортталатынын өзіңіз бақылайсыз.
  • Плейлистің анда-санда басынан қайта басталуы аудиторияңыз үшін үлкен мәселе емес.
  • Стриминг ішкі жағынан қалай жұмыс істейтінін үйренгіңіз келеді.

Трансляция табысқа немесе брендке қызмет етсе, бейнелерді жиі қоссаңыз, бірнеше платформа керек болса немесе уақытыңызды контентке жұмсаған тиімдірек болса, басқарылатын сервис ақылға қонымдырақ. Әділ салыстыру мынадай: сервер шоты плюс баптау мен түнгі жөндеулерге кеткен сағаттар — осы мәселелерді әлдеқашан шешкен сервиске қарсы.

Сол 24/7 циклін StreamHouse-та жүргізу

StreamHouse сол жүйенің әрбір бөлігін алмастырады. Жүктелген файлдар алдын ала бір тұрақты кодтау профиліне дайындалады, бұл битрейт пен уақыт белгілерін тұрақты ұстайды, сондықтан сәйкес келмейтін файл плейлистіңізді басынан бастатпайды. Плейлисті браузерде құрып, YouTube, Twitch, Rumble, Facebook, custom RTMP немесе SRT сияқты бағыттарды қосыңыз да, Start түймесін басыңыз немесе уақытын жоспарлаңыз.

Цикл бұлтта 24/7 жұмыс істейді және платформа мен желідегі іркілістерден кейін автоматты түрде қайта қосылады. Эфир жүріп жатқанда бейнелерді қосуға, алып тастауға немесе ретін өзгертуге болады; өзгерістер келесі бейнеден бастап күшіне енеді. Қосымша бағыттар қосымша трансляция слоттарын жұмсамайды, ал қосылған YouTube арнасы үшін жазбаны қорғау функциясы алғашқы эфирді өзіңіз таңдаған сәтте жауып, плейлисті қайта бастамай-ақ жаңа эфирде жалғастыра алады.

Жазылымдар мен pay-as-you-go кредиттерін баға бетінде салыстырыңыз.

Жиі қойылатын сұрақтар

VPS-те FFmpeg арқылы 24/7 YouTube трансляциясын жүргізуге бола ма?

Иә. YouTube-тың RTMP мекенжайына бағытталған циклдік FFmpeg командасы арнаны эфирде ұстап тұрады. Қиыны — оны апталар бойы сау күйде сақтау: тұрақты кодтау, автоматты қайта іске қосу, мониторинг және ұзақ эфирлерді мұрағаттау толығымен сіздің мойныңызда.

FFmpeg плейлистім неге қайта-қайта басынан басталады?

Әдетте бір файл қалғандарына сәйкес келмейді: кадр жиілігі, ажыратымдылығы немесе дыбыс форматы басқаша. Copy режимінде уақыт белгілері бұзылып, FFmpeg тоқтайды да, бірінші бейнеден қайта басталады. Әр файлды бір тұрақты профильге қайта кодтаңыз.

24/7 трансляция айына қанша трафик жұмсайды?

30 күн бойы тоқтаусыз жұмыс істейтін бір 6 Mbps трансляция шамамен 1.9 TB жұмсайды, ал битрейт жоғарыласа немесе бағыттар қосылса, пропорционалды түрде көбірек. Сол битрейтпен үш платформа 6 TB-қа жуық береді, сондықтан алдымен сервердің трафик лимитін тексеріңіз.

24/7 трансляция үшін қуатты VPS керек пе?

Файлдарды алдын ала кодтап, stream copy қолдансаңыз, керек емес — оған процессор өте аз жұмсалады. Серверде 1080p-ны нақты уақытта кодтау — басқа әңгіме: оған бөлінген ядролар қажет, ал шағын ортақ тарифтер көбіне нақты уақыт жылдамдығына ілесе алмайды.

Әрі қарай