ВОЙТИ
    opened image

    Как можно легко запустить круглосуточную трансляцию YouTube на linux транслируя свои видео? Почему linux? Почему нельзя просто установить OBS studio и с помощью неё запускать трансляцию? Одна з причин, это то, что при работе OBS studio требуется больше мощностей для запуска и трансляции, при этом, стабильной и плавной прямой трансляции может и не быть. Если получится запустить, то не на само слабом сервер и при этом, FPS может быть не более 20 кадров/с. По этом нам потребуется сервер с OS Linux.

    Что потребуется:

    Сервер с системой 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