Трансляція 24/7 на VPS чи керований хмарний сервіс: що обрати
Цілодобова трансляція на VPS з FFmpeg здається простою, доки плейлист не почне перезапускатися, процес не впаде вночі або друга платформа не подвоїть вихідний трафік. Розповідаємо, що насправді означає зробити все самостійно і коли керований сервіс вигідніший.
Приблизно 6 хв читання
На цій сторінці
Трансляцію 24/7 на VPS з FFmpeg запустити цілком реально: завантажуєте відео на орендований сервер, складаєте concat-плейлист і зациклюєте його на RTMP-адресу платформи. Це працює і може стати гарним навчальним проєктом. Справжня ціна — ваш час, який іде на кодування, відновлення після збоїв, моніторинг і планування трафіку.
Розповідаємо, що насправді означає зробити все самостійно і коли керований сервіс — краще вкладення ваших годин.
Головне
- Базовий цикл FFmpeg налаштовується швидко; справжня робота — підтримувати його місяцями.
- Невідповідність частоти кадрів або часових міток може обвалити плейлист у режимі copy і повернути його на початок.
- FFmpeg не перезапуститься сам і не надішле вам сповіщення.
- Кожна додаткова платформа додає свій повний бітрейт до вихідного трафіку.
Як виглядає самостійне налаштування на VPS
Типовий самостійно розгорнутий стек складається з чотирьох частин:
- Linux VPS з місцем на диску для вашої бібліотеки та вихідним трафіком для трансляції, яка ніколи не зупиняється.
- Ваші відеофайли, завантажені через SFTP або синхронізовані зі сховища.
- Файл плейлиста для concat-демуксера FFmpeg.
- Команда FFmpeg, яка читає плейлист у реальному часі, зациклює його та надсилає на адресу прийому, наприклад
rtmp://a.rtmp.youtube.com/live2, разом із вашим ключем.
Більшість інструкцій використовують режим stream copy, у якому FFmpeg передає відео та аудіо без перекодування. Навантаження на процесор мінімальне, тож невеликий сервер справляється, а перша трансляція справді запускається швидко.
Підступ у тому, що режим copy працює стабільно лише тоді, коли всі файли технічно однакові, — і саме на це йдуть довгострокові зусилля.
Кодування і часові мітки: чому плейлисти FFmpeg перезапускаються
У режимі stream copy FFmpeg склеює файли такими, як вони є, тож один нетиповий файл ламає стики. Найчастіші винуватці:
- Різна частота кадрів, наприклад експорт у 29,97 fps поруч із файлами 30 fps або запис із телефона зі змінною частотою кадрів.
- Різні роздільні здатності чи аудіоформати, як-от 720p-кліп серед файлів 1080p.
- Нестандартні timebase або відсутні часові мітки, які залишають деякі редактори та програми запису екрана.
Симптоми — від попереджень у логах до застиглого відео чи завершення роботи FFmpeg. Після перезапуску плейлист починається знову з першого відео, і глядачі раз по раз бачать ту саму першу годину.
Рішення — перекодувати все в один профіль ще до того, як файл потрапить у плейлист: однакова роздільна здатність, постійна частота кадрів, однаковий інтервал ключових кадрів і однаковий аудіоформат. Дивіться налаштування кодування для трансляцій 24/7.
Збої, перезапуски та моніторинг власними силами
FFmpeg чудовий, але це один процес, якому байдуже, чи він працює далі. Коли платформа розриває з'єднання, мережа на мить зникає або файл викликає помилку, процес завершується, і ніщо його не поверне, якщо ви не створили:
- Супервізор, наприклад сервіс systemd з автоматичним перезапуском.
- Відстеження позиції, щоб після перезапуску плейлист не починався з самого початку.
- Перевірки стану, які підтверджують, що платформа отримує відео, адже запущений процес усе одно може показувати офлайн.
- Сповіщення на телефон, щоб збій о 3 ночі не тривав до сніданку.
А ще обслуговування: оновлення, перезавантаження, диски, що заповнюються логами, і ключі трансляції відкритим текстом у скриптах. Окремо нічого з цього не складне, але разом це робота на пів ставки. Що саме відстежувати, дивіться в статті про моніторинг стану та аптайму трансляції.
Трафік і кілька платформ з одного сервера
Безперервна трансляція споживає більше даних, ніж зазвичай очікують. Один стрім на 6 Мбіт/с за 30 днів передає приблизно 1,9 ТБ. Надсилайте його на три платформи — і сервер цілодобово віддає близько 18 Мбіт/с, тобто майже 6 ТБ на місяць. Перевірте ліміт вихідного трафіку у вашого провайдера та умови оплати перевищення.
FFmpeg для кількох платформ має свої особливості. Окремий процес на кожну платформу означає кілька процесів під наглядом. Tee-муксер FFmpeg надсилає один вхід на кілька виходів, але одна проблемна платформа, наприклад та, що відхиляє застарілий ключ, може обвалити весь процес, якщо кожен вихід не налаштовано на стійкість до збоїв.
Особливості платформ теж на вас, як-от 12-годинний ліміт архіву YouTube, який простий цикл ігнорує.
Коли самостійна трансляція на VPS — правильний вибір
Власний хостинг підходить, якщо більшість цих пунктів про вас:
- Ви впевнено почуваєтеся в командному рядку Linux і любите адмініструвати системи.
- Ви транслюєте на одну платформу або готові самі розробити обробку збоїв для кількох.
- Ваша бібліотека невелика й стабільна, і ви контролюєте експорт кожного файлу.
- Випадковий перезапуск плейлиста з початку не є проблемою для вашої аудиторії.
- Ви хочете розібратися, як стрімінг влаштований зсередини.
Керований сервіс доцільніший, коли трансляція приносить дохід або підтримує бренд, ви часто додаєте відео, вам потрібні кілька платформ або ваш час краще витратити на контент. Чесне порівняння — це рахунок за сервер плюс години налаштування й нічних виправлень проти сервісу, який уже розв'язав ці проблеми.
Той самий цикл 24/7, але на StreamHouse
StreamHouse замінює кожну частину цього стеку. Завантажені файли заздалегідь готуються за одним узгодженим профілем кодування, що тримає бітрейт і часові мітки стабільними, тож невідповідний файл не перезапустить ваш плейлист. Зберіть плейлист у браузері, додайте платформи, як-от YouTube, Twitch, Rumble, Facebook, власний RTMP або SRT, і натисніть «Старт» або заплануйте час.
Цикл працює 24/7 у хмарі й автоматично перепідключається після збоїв платформи чи мережі. Додавайте, видаляйте або змінюйте порядок відео прямо під час ефіру; зміни застосовуються з наступного відео. Додаткові платформи не займають додаткових слотів трансляцій, а для підключеного YouTube-каналу захист запису може закрити першу трансляцію у вибраний вами момент і продовжити в новій без перезапуску плейлиста.
Порівняйте підписки та кредити з оплатою за використання на сторінці цін.
Поширені запитання
Чи можна вести трансляцію 24/7 на YouTube за допомогою FFmpeg на VPS?
Так. Зациклена команда FFmpeg, спрямована на RTMP-адресу YouTube, тримає канал в ефірі. Складніше підтримувати її в робочому стані тижнями: узгоджене кодування, автоматичні перезапуски, моніторинг і архівування довгих трансляцій — усе на вас.
Чому мій плейлист FFmpeg постійно перезапускається з початку?
Зазвичай один файл не збігається з рештою: інша частота кадрів, роздільна здатність або аудіоформат. У режимі copy часові мітки ламаються, FFmpeg завершує роботу й починає знову з першого відео. Перекодуйте кожен файл в один постійний профіль.
Скільки трафіку споживає трансляція 24/7 за місяць?
Близько 1,9 ТБ для одного стріму на 6 Мбіт/с, що працює без зупинки 30 днів, і пропорційно більше для вищого бітрейту чи додаткових платформ. Три платформи з таким бітрейтом — це майже 6 ТБ, тож спершу перевірте ліміт трафіку вашого сервера.
Чи потрібен потужний VPS для трансляції 24/7?
Ні, якщо ви заздалегідь кодуєте файли й використовуєте stream copy, що потребує дуже мало процесорних ресурсів. Кодування 1080p у реальному часі на сервері — інша справа: для цього потрібні виділені ядра, а невеликі спільні тарифи часто не встигають за реальним часом.


