Ось покрокова інструкція, заснована на вашому README:
Щоб додати новий контент так, як це вже налаштовано у вашій системі, вам потрібно діяти за алгоритмом «підготовки та додавання». Система очікує, що всі файли будуть абсолютно однаковими за параметрами(роздільна здатність, бітрейт, кодеки), інакше стрім «розсиплеться».
Ось покрокова інструкція:
Система не вміє "на льоту" підганяти різні файли. Ви повинні підготувати їх до того, як закинете в робочу папку.
Зберіть файли: Візьміть ваші .mp4 (відео) та .mp3 (аудіо).
Закиньте у папку: Помістіть їх у /mnt/musicvideo.
Важливо: Якщо ви хочете, щоб аудіо йшло з певним відео, вони мають бути в одній папці або оброблені скриптом adopt_media.sh.
Це критичний крок. Скрипт folder_process.sh перетворить ваші файли на формат, який "розуміє" ffmpeg всередині вашого стрімера.
Виконайте в терміналі команду:
Bash
./folder_process.sh /mnt/musicvideo mp4 adopt_media.sh ts
Що відбувається в цей момент:
Скрипт проходить по всіх файлах у папці.
adopt_media.sh бере кожен файл і перекодовує його у стандарт .ts (Transport Stream), який використовується для стрімінгу.
Тепер у вас у папці будуть файли з розширенням .ts.
Після успішного завершення роботи скрипта:
Видаліть оригінали: Видаліть .mp4 та .mp3, залишивши лише готові .ts файли (вони вже адаптовані під ваш стрім).
Перезапустіть систему: Контейнери повинні побачити нові файли в черзі.
Bash
sudo docker compose restart
Ваш сервіс працює за принципом «конвеєра»:
Ctl (Controller) — це "диригент", він каже, який файл грати наступним.
Feeder (A-D) — це "виконавці", кожен з них зчитує свій файл.
Concat — це "склеювач", він бере шматочки з фідерів і з'єднує їх в один безперервний потік (pipe_v).
Muxer — це "відправник", він бере склеєний потік і шле його на YouTube через RTMP.
Однаковість: Якщо один відеофайл буде 720p, а інший 1080p, стрім на YouTube може зупинитися. Переконайтеся, що всі файли мають однакову роздільну здатність та частоту кадрів (наприклад, усі 1080p, 25 fps).
Назви: Якщо система очікує файли в алфавітному порядку або за певною логікою API контролера, називайте файли відповідним чином (наприклад, 01_video.ts, 02_video.ts).
Логи: Якщо після додавання файлів стрім не стартує, перевіряйте логи контейнера ctl, саме він відповідає за чергу: sudo docker logs stream-musicvideo-backup-ctl-1
Чи потрібно вам допомогти перевірити, які саме налаштування якості (роздільна здатність/бітрейт) зараз задані у скрипті adopt_media.sh?