Что потребуется:
Сервер с системой Linux. Сегодня рассмотрим установку на сервере с ОС CentOS 7.
Также установленный python. В большинство современных образов, python 2 установлен в систему из коробки.
Установка:
1. Подключаемся к серверу по SSH. Если не знаете как подключится к серверу, можете воспользоваться инструкцией
2. Устанавливаем дополнительно ПО для запуска трансляции.
Для этого подключаем дополнительный репозиторий чтобы можно установить ПО для работы трансляции. Для этого пропишем следующую команду в консоли
yum install epel-release -y
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm -y
3. Производим установку ffmpeg. Для установки пишем в консоли команду:
yum install ffmpeg ffmpeg-devel -y
4. Чтобы проверить, установился ли ffmpeg, пишем команду
ffmpeg -version
Если ffmpeg установлен, будет следующий результат как на рисунку ниже.
5. После установки ffmpeg создаём директорию в которой у нас будут храниться видео. В нашем случаю директория которая будет хранить видео, имеет расположение /root/YouTube/video. Чтобы создать данную директорию, напишем следующую команду:
mkdir -p /root/YouTube/video
После того как директория была создана, загружаем видео с расширением mp4 в данную директорию. После загрузки видео в указанную директорию, можем приступить к следящему действию.
6. Следующим шагом будет создания и редактирование файла/скрипта, который будет отвечать за работу прямой трансляции на YouTube. Напишем команду
vim /root/YouTube/YouTube.py
После написаний откроется файл YouTube.py в который нужно написать следующий код:
import os
dirname = "/root/YouTube/video/"
key = 'rtmp://a.rtmp.youtube.com/live2/0xx0-xxxx-x000-x0x0-xxxx'
while True:
files = os.listdir(dirname)
for f in files:
if ".mp4" in f:
cmd = "ffmpeg -threads 3 -re -i " + dirname + f + " -c:v libx264 -preset ultrafast -crf 24 -g 3 -f flv " + key
os.system(cmd)
Параметр dirname имеет путь к директории с видео, который будут транслироваться в прямой трансляции.
Если нужно установить свою директорию, в которой находятся видео, замените "/root/YouTube/video/" на свой полный путь.
Чтобы установить свой ключ трансляции, меняете "rtmp://a.rtmp.youtube.com/live2/0xx0-xxxx-x000-x0x0-xxxx" на значение своего ключа.
Параметры:
-threads - количество потоков, которые может обрабатывать ffmpeg
-preset - насколько сильно будет нагружен CPU
Есть следующие параметры:
- ultrafast
- superfast
- veryfast
- faster
- fast
- medium
- slow
- slower
- veryslow
В зависимости, от мощности CPU устанавливаем нужный параметр. Для наилучшего результата, проверим каждый параметр, как с ним производится трансляция и в зависимости от скорости работы устанавливаем тот или иной параметр.
-crf - коэффициент, который отвечает за качество картинки. По умолчанию установлен 23. Данный коэффициент может иметь значения от 0 до 51. Чем значение больше, тем качество лучше. Значение 0 - качество равно качеству самого видео. Значение 51 - самое хуже качество.
-g - коэффициент, который указывает явное количество ключевых кадров.
-re - указывает, что файл необходимо конвертировать в поток.
-i - указывает, что файл нужно воспроизвести.
-f - указывает, в какой формат должен быть конвертирован файл. Для YouTube нужен формат "flv"
Если все нужные настройки были завершены, можно приступить к запуску скрипта.
7. Чтобы запустить скрипт в фоновом режиме, нужно установить дополнительный пакет screen. Для этого прописывает следующую команду:
yum install screen -y
После установки данного пакета переходим в режим "скрина". Для этого прописываем следующую команду:
screen
После написания данной команды, Вам нужно запустить данный скрипт. Для этого прописываем следующее:
python /root/YouTube/YouTube.py
Можем увидеть, что запустился скрипт. Пример можете увидеть на следующем скриншоте.
Чтобы отключится от сервера безопасно, при этом, оставить работать прямую трансляцию, требуется нажать на CTRL+A, после чего на клавишу D. Работа скрипта перейдёт в фоновый режим, а трансляцию продолжить свою работу. После этого можете отключиться от сервера. Или можно закрыть окно ssh-клиента - через кнопку закрытия окна (крестик), сессия не прервется.
Если требуется остановить работу скрипта или проверить его работу, нужно в консоли сервера прописать следующую команду
screen -r
После ввода данной команды открыться наш скрипт. Остановить его можно используя комбинации клавиш CTRL+Z