Способы оплаты Abuse

Как сделать трансляцию своих видео на YouTube при помощи VPS

21.06.2023, 18:55

Как сделать так, чтобы это была трансляция именно видео-файлов? Чтобы она шла 24/7, была гибкой, максимально автономной и при этом никак не зависела от компьютера. Об этом дальше и пойдет речь.

Шаг 1 - выбор сервера

Идеальным решением станет аренда виртуального сервера. Вы можете выбрать VPS/VDS из линейки предложенных тарифов на нашем сайте. Цены - демократичные. Качество - высокое. 

Шаг 2 - настройка сервера

После создания сервера первым делом необходимо подключиться к нему по SSH. Можно использовать приложение Secure Shell App, которое запускается в Google Chrome. После этого необходимо изменить имя хоста, настроить синхронизацию времени, обновить систему, настроить iptables и выполнить еще ряд действий. Хотя эти действия не обязательны, но мне было интересно настраивать сервер и получать удовлетворение от успешного выполнения задач.

Есть несколько конкретных шагов, которые необходимо выполнить:

  1. Подключить репозиторий EPEL.
  2. Установить FTP-сервер (vsftp).
  3. Установить ffmpeg.

ffmpeg - свободный набор библиотек с открытым исходным кодом, который позволяет записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах.

Используя ffmpeg, можно вытянуть звук из видео, вырезать фрагмент видео без перекодирования, сконвертировать из одного формата в другой и выполнить множество других действий. Например, файл может быть преобразован в поток и перенаправлен на YouTube.

Необходимо выполнить некоторые конкретные шаги и использовать соответствующие инструменты, чтобы настроить сервер для трансляции и конвертации видео.

Шаг 3 - настройка трансляции

Дальше создаем трансляцию на YouTube, для этого нам потребуется ссылка и ключ трансляции, которые нам необходимо будет использовать на этапе настройки трансляции. Проще всего их быстро найти на странице YouTube, где создается трансляция. 

Далее необходимо загрузить видео-файлы, которые мы хотим транслировать, на сервер. Если у вас есть более удобный способ загрузки файлов, то FTP-сервер поднимать не обязательно.

Для запуска трансляции необходимо запустить ffmpeg с несколькими атрибутами. Создание короткой команды для этой цели было довольно сложным процессом, но если все сделано правильно, YouTube должен успешно обнаружить передаваемый поток. 

Как только YouTube обнаружит поток, нажмите кнопку "Начать трансляцию" в панели управления, и трансляция будет успешно запущена.

Шаг 4 - автономность

Приведённый скрипт поможет вам создать круглосуточную трансляцию из видео-файлов. Важно запускать процесс в фоновом режиме с помощью команды nohup bash. Теперь вы можете настроить свою трансляцию и позволить ей работать независимо от вашего присутствия. Не забывайте, что ключ к вашей трансляции должен быть прописан в соответствующей команде.

Команда 1... (запуск трансляции файла lecture1.mp4)

Команда 2... (запуск трансляции файла lecture2.mp4)

Команда 3... (запуск трансляции файла lecture3.mp4) bash start.sh

Версия скрипта:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
ffmpeg -re -i lecture2.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
ffmpeg -re -i lecture3.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY% nohup bash start.sh $

Желаем вам успешной трансляции!

Шаг 5 - донастройка ffmpeg

Выполним донастройку для лучшей трансляции

ffmpeg -re -i lecture1.mp4 -vf "drawtext=text='Lecture 1':x=(w-text_w)/2:y=(h-text_h)/2:fontcolor=white:fontsize=30:box=1:boxcolor=black@0.5" -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%

В данном примере, текст "Lecture 1" будет наложен на центр видео. Размер шрифта составляет 30 пикселей. Фон текста будет прозрачным с черным обводкой.

Для каждой лекции нужно будет менять текст в команде. А чтобы автоматизировать этот процесс и избавиться от ручного ввода, нужно будет создать .sh-файл со списком всех лекций и их именами. Вот так:

lecture1.mp4 Lecture 1
lecture2.mp4 Lecture 2
lecture3.mp4 Lecture 3

Далее нужно написать скрипт, который будет считывать этот файл и автоматически добавлять текст на видео.

Вот такой скрипт:

while read line; do
    file=$(echo $line | cut -d' ' -f1)
    text=$(echo $line | cut -d' ' -f2-)
    ffmpeg -re -i $file -vf "drawtext=text='$text':x=(w-text_w)/2:y=(h-text_h)/2:fontcolor=white:fontsize=30:box=1:boxcolor=black@0.5" -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
done < lectures.txt

В данном скрипте мы считываем каждую строку из файла lectures.txt, выделяя имя файла и название лекции. Затем используем команду ffmpeg для добавления текста на видео.

Таким образом, теперь у нас есть трансляция с названиями лекций, что сделает её более удобной для зрителей и позволит им легче находить нужный контент.