Как сделать так, чтобы это была трансляция именно видео-файлов? Чтобы она шла 24/7, была гибкой, максимально автономной и при этом никак не зависела от компьютера. Об этом дальше и пойдет речь.
Идеальным решением станет аренда виртуального сервера. Вы можете выбрать VPS/VDS из линейки предложенных тарифов на нашем сайте. Цены - демократичные. Качество - высокое.
После создания сервера первым делом необходимо подключиться к нему по SSH. Можно использовать приложение Secure Shell App, которое запускается в Google Chrome. После этого необходимо изменить имя хоста, настроить синхронизацию времени, обновить систему, настроить iptables
и выполнить еще ряд действий. Хотя эти действия не обязательны, но мне было интересно настраивать сервер и получать удовлетворение от успешного выполнения задач.
Есть несколько конкретных шагов, которые необходимо выполнить:
EPEL
.vsftp
).ffmpeg
.ffmpeg
- свободный набор библиотек с открытым исходным кодом, который позволяет записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах.
Используя ffmpeg
, можно вытянуть звук из видео, вырезать фрагмент видео без перекодирования, сконвертировать из одного формата в другой и выполнить множество других действий. Например, файл может быть преобразован в поток и перенаправлен на YouTube.
Необходимо выполнить некоторые конкретные шаги и использовать соответствующие инструменты, чтобы настроить сервер для трансляции и конвертации видео.
Дальше создаем трансляцию на YouTube, для этого нам потребуется ссылка и ключ трансляции, которые нам необходимо будет использовать на этапе настройки трансляции. Проще всего их быстро найти на странице YouTube, где создается трансляция.
Далее необходимо загрузить видео-файлы, которые мы хотим транслировать, на сервер. Если у вас есть более удобный способ загрузки файлов, то FTP-сервер поднимать не обязательно.
Для запуска трансляции необходимо запустить ffmpeg
с несколькими атрибутами. Создание короткой команды для этой цели было довольно сложным процессом, но если все сделано правильно, YouTube должен успешно обнаружить передаваемый поток.
Как только YouTube обнаружит поток, нажмите кнопку "Начать трансляцию" в панели управления, и трансляция будет успешно запущена.
Приведённый скрипт поможет вам создать круглосуточную трансляцию из видео-файлов. Важно запускать процесс в фоновом режиме с помощью команды 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 $
Желаем вам успешной трансляции!
Выполним донастройку для лучшей трансляции
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 1lecture2.mp4
Lecture 2lecture3.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
для добавления текста на видео.
Таким образом, теперь у нас есть трансляция с названиями лекций, что сделает её более удобной для зрителей и позволит им легче находить нужный контент.