Установка AVideo/YouPHPTube на сервер под управлением Ubuntu 20.04

В данном уроке мы рассмотрим, как создать собственный сайт для обмена видео, используя AVideo (ранее известный как YouPHPTube) на Ubuntu 20.04. AVideo представляет собой открытое и саморазмещаемое решение для видеообмена, аналогичное платформам, таким как YouTube и Vimeo. С помощью AVideo пользователи смогут загружать свои видео на ваш сервер и делиться ими в интернете.

Функциональные возможности AVideo

  • Неограниченные и одновременные прямые эфиры, позволяющие подключать любое количество пользователей к каждой трансляции.
  • Загрузка и обработка видео с различных веб-ресурсов прямо из сети.
  • Массовое кодирование из местного видеокаталога.
  • Производство закрытых видеоматериалов.
  • Полная интеграция с YouTube позволяет синхронизировать ваши видео с этой платформой.
  • Преобразование различных мультимедийных форматов в MP4, WebM и MP3.
  • Поддержка Amazon S3 (Услуга Простого Хранения).
  • Адаптивный дизайн сайта. AVideo прекрасно отображается на всех устройствах. (Вы можете выбрать оформление, схожее с YouTube или Netflix.)
  • Индивидуальные каналы и списки воспроизведения.
  • Подписывайтесь на интересующие вас каналы.
  • Следите за результативностью своих видео, используя актуальные показатели и отчеты в AVideo Statistics.
  • Увеличьте возможности вашего сайта, используя плагины.
  • Оптимизировано для поисковых систем.
  • Приложения можно загрузить для платформ iOS и Android.

avideo-self-hosted-alternative-to-youtube-ubuntu-20.04

Условия для сервера AVideo.

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

После этого определите параметры сервера, основываясь на числе пользователей вашего веб-сайта.

  • Если ваша цель — делиться только своими видео, вам потребуется сервер с минимум 2 ядрами процессора и 4 ГБ оперативной памяти. Вы можете приобрести мощный VPS (виртуальный частный сервер) от Contabo по весьма привлекательной цене.
  • Если вы планируете, что на вашем сайте будет несколько десятков пользователей, стоит обратить внимание на VPS от Contabo Extra Large. Этот тариф предлагает 10 ядер процессора, 60 ГБ оперативной памяти, скорость порта 1 Гбит/с и 1,6 ТБ дискового пространства с неограниченным трафиком по цене всего 26,99 евро в месяц.
  • Когда ваш сайт достигнет нового уровня, стоит задуматься о покупке выделенного сервера.

Требования к программному обеспечению для установки AVideo на Ubuntu 20.04

AVideo нуждается в PHP и базе данных MySQL или MariaDB. Перед тем как приступить к этому руководству, необходимо настроить стек LAMP или LEMP. Если вы хотите использовать сервер Apache, рекомендуется установить стек LAMP.

  • Установка стека LAMP (Apache, MariaDB, PHP) на Ubuntu 20.04.

Если вы хотите работать с веб-сервером Nginx, рекомендуем установить стек LEMP.

  • Установка LEMP-стека (Nginx, MariaDB, PHP) на Ubuntu 20.04: пошаговое руководство.

Примечание: Использование AVideo с Nginx является экспериментальным и может вызвать проблемы на вашем сайте.

Также потребуется доменное имя. Я выбрал зарегистрировать свое на NameCheap, так как у них низкие цены и бесплатная защита конфиденциальности whois на весь срок использования.

AVideo делится на две части.

  • Центральный элемент — это видеопотоковый сервер, который дает возможность пользователям просматривать уже доступные видео.
  • Второй компонент представляет собой кодер, который дает возможность пользователям загружать свои видео.

Публичный кодер работает с доменным именем https://encoder1.avideo.com. Если вы хотите предотвратить уход пользователей с вашего сайта во время загрузки видео, вам следует настроить личный кодер. В этой статье я объясню, как это сделать. Приступим без промедлений.

Установка AVideo на сервер с Ubuntu 20.04.

Подключитесь к своему серверу Ubuntu 20.04 с помощью SSH. После этого переместитесь в корневую директорию веб-сервера.

cd /var/www/

Скопируйте репозиторий AVideo streamer с GitHub.

sudo apt install git sudo git clone https://github.com/WWBN/AVideo. git

После этого перейдите в папку.

cd AVideo/

Скопируйте репозиторий AVideo encoder с платформы Github.

sudo git clone https://github.com/WWBN/AVideo-Encoder. git

Он будет сохранён под именем AVideo-Encoder, но мы переименуем его в upload, чтобы пользователям было более понятно, для чего этот URL используется при загрузке видео.

sudo mv AVideo-Encoder upload

Следующим шагом необходимо назначить пользователя веб-сервера www-data владельцем основной директории веб-ресурса.

sudo chown www-data:www-data /var/www/AVideo/ - R

Подключение необходимых зависимостей

AVideo применяет FFmpeg для обработки видеофайлов. Установить FFmpeg можно без труда из стандартного репозитория Ubuntu.

sudo apt install ffmpeg

Для чтения и записи метаданных в мультимедийных файлах необходимо установить пакет libimage-exiftool-perl.

sudo apt install libimage-exiftool-perl

Также необходимо установить несколько популярных расширений PHP.

sudo apt install php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-curl php7.4-gd php7.4-xml

Для загрузки видео с различных сайтов необходимо установить YouTube-DL. Несмотря на то, что он доступен в репозитории Ubuntu, версия там устаревшая. Мы будем устанавливать YouTube-DL через Python Package Index, где всегда представлена самая новая версия.

sudo apt install python3-pip sudo - H pip3 install youtube-dl

Крайне необходимо использовать актуальную версию, иначе загрузка видео с других сайтов будет невозможна. Можно настроить Cron-задачу для автоматического обновления и установки последней версии.

Читайте также:  Руководство по ручной установке Arch Linux на KVM VPS с использованием VNC

sudo crontab - e

Чтобы выполнять ежедневные попытки обновления YouTube-DL, добавьте следующую строку в конец файла Crontab.

@daily sudo - H pip3 install --upgrade youtube-dl > /dev/null

Формирование базы данных и учетной записи пользователя в MariaDB.

Для доступа к серверу базы данных MariaDB выполните следующую команду. Так как MariaDB теперь применяет плагин unix_socket для аутентификации пользователей, вводить пароль root больше не требуется. Достаточно просто добавить префикс mysql к команде с помощью sudo.

sudo mysql

Затем вам нужно создать базу данных для AVideo. В этом руководстве она называется AVideo, но вы можете выбрать любое другое название по своему усмотрению.

create database AVideo;

Создайте нового пользователя в базе данных. Вы можете выбрать любое имя для этого пользователя. Не забудьте заменить your-password на пароль, который вы хотите использовать.

create user AVideo@localhost аутентифицирован с помощью 'your-password';

Дайте этому пользователю полный доступ к базе данных AVideo.

grant all privileges on AVideoКонечно! Пожалуйста, предоставь текст, который ты хочешь перефразировать.AVideo@localhost;

Также необходимо разработать отдельную базу данных для кодировщика.

create database AVideoEncoder;

Создайте учетную запись пользователя для данной базы данных.

create user AVideoEncoder@localhost аутентифицирован с помощью 'your-password';

grant all privileges on AVideoEncoderКонечно! Пожалуйста, предоставь текст, который ты хочешь перефразировать.AVideoEncoder@localhost;

Обновите таблицу прав и завершите работу.

flush privileges; exit;

Конфигурация веб-сервера

Можно задействовать веб-серверы Apache или Nginx.

Apache

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

sudo nano /etc/apache2/sites-available/avideo.conf

Поместите указанный текст в файл. Замените выделенный красным текст на ваши реальные данные. В данном руководстве я использую субдомен, но вы можете воспользоваться основным доменным именем по вашему выбору. Убедитесь, что вы создали DNS A запись для доменного имени в вашем DNS-менеджере. Также учтите, что корневая директория документа регистронезависима, и не добавляйте косую черту в конце.

ServerName tube. yourdomain.comКорневая директория документа: /var/www/AVideoDirectoryIndex index.php
Options +FollowSymLinks
AllowOverride All
Require all granted
Ошибка журнала: $/avideo. error.log; Журнал доступа: $/avideo. access.log в объединённом формате.

Сохраните файл и закройте его. После этого активируйте этот виртуальный хост.

sudo a2ensite avideo.conf

Необходимо активировать модуль для переписывания.

sudo a2enmod rewrite

Перезапустите Apache, чтобы новые настройки начали действовать.

sudo systemctl restart apache2

Теперь перейдите на tube. yourdomain.com, и вы попадете на страницу мастера установки (tube. yourdomain.com/install/index.php). Если вместо мастера установки открывается страница по умолчанию Apache, вам следует отключить стандартный виртуальный хост.

sudo a2dissite 000-default.conf

Запустите Apache заново.

Перед тем как вносить какие-либо данные в установочный мастер, необходимо активировать HTTPS.

Nginx

Если вам больше нравится Nginx, создайте файл avideo.conf в папке /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/avideo.conf

Сохраните следующий текст в файл. Замените текст, выделенный красным, на свои реальные данные. В этом руководстве я использую поддомен, но вы можете применить основное доменное имя по своему усмотрению. Не забудьте добавить запись типа A в DNS для вашего доменного имени в вашем DNS-менеджере. Также учтите, что корневая директория документов учитывает регистр символов.

server < listen 80; server_name tube. yourdomain.comroot /var/www/AVideo;
index index.php index. html index. htm;
charset utf-8;
client_max_body_size 2G;
access_log /var/log/nginx/avideo. access.log;
error_log /var/log/nginx/avideo. error.log;
location~ \.php$ < fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; >Конвертация правил перенаправления из. htaccess для использования в Nginx location /< rewrite ^/$ /view/ last; >расположение /bootstrap< rewrite ^/bootstrap/(.+)$ /view/bootstrap/$1 last; >Расположение /js< rewrite ^/js/(.+)$ /view/js/$1 last; >Директива для пути /css< rewrite ^/css/(.+)$ /view/css/$1 last; >Расположение /img< rewrite ^/img/(.+)$ /view/img/$1 last; >расположение /страница< rewrite ^/page/([0-9]+)/?$ /view/?page=$1 last; >Расположение /videoOnly< rewrite ^/videoOnly/?$ /view/?type=video last; >Расположение /audioOnly< rewrite ^/audioOnly/?$ /view/?type=audio last; >Местоположение = /загрузка< rewrite ^(.*)$ /view/downloadExternalVideo.php last; >Местоположение = /загрузитьСейчас< rewrite ^(.*)$ /objects/downloadVideo.php last; >Расположение = /getDownloadProgress< rewrite ^(.*)$ /objects/downloadVideoProgress.php last; >Местоположение = /about< rewrite ^(.*)$ /view/about.php last; >местоположение = /контакт< rewrite ^(.*)$ /view/contact.php last; >местоположение = /отправитьEmail< rewrite ^(.*)$ /objects/sendEmail.json.php last; >местоположение = /капча< rewrite ^(.*)$ /objects/getCaptcha.php last; >местоположение /монитор< rewrite ^/monitor/(.+)$ /objects/ServerMonitor/$1 last; >расположение /кот< rewrite ^/cat/([A-Za-z0-9-]+)/?$ /view/?catName=$1 last; >местоположение /видео< rewrite ^/video/([A-Za-z0-9-_.]+)/?$ /view/?videoName=$1 last; >расположение /видеовстраивание< rewrite ^/videoEmbeded/([A-Za-z0-9-_.]+)/?$ /view/videoEmbeded.php? videoName=$1 last; >местоположение = /загрузка< rewrite ^(.*)$ /view/mini-upload-form/ last; >местоположение = /загрузкаФайла< rewrite ^(.*)$ /view/mini-upload-form/upload.php last; >местоположение /uploadStatu< rewrite ^/uploadStatus /view/mini-upload-form/videoConversionStatus.php last; >местоположение = /пользователь< rewrite ^(.*)$ /view/user.php last; >местоположение = /пользователи< rewrite ^(.*)$ /view/managerUsers.php last; >местоположение = /users. json< rewrite ^(.*)$ /objects/users. json.php last; >местоположение = /обновитьПользователя< rewrite ^(.*)$ /objects/userUpdate. json.php last; >местоположение = /сохранитьФото< rewrite ^(.*)$ /objects/userSavePhoto.php last; >местоположение = /добавитьНовогоПользователя< rewrite ^(.*)$ /objects/userAddNew. json.php last; >местоположение = /удалитьПользователя< rewrite ^(.*)$ /objects/userDelete. json.php last; >местоположение = /восстановитьПароль< rewrite ^(.*)$ /objects/userRecoverPass.php last; >местоположение = /сохранитьВосстановлениеПароля< rewrite ^(.*)$ /objects/userRecoverPassSave. json.php last; >местоположение = /signUp< rewrite ^(.*)$ /view/signUp.php last; >местоположение = /создатьПользователя< rewrite ^(.*)$ /objects/userCreate. json.php last; >местоположение = /пользователиГруппы< rewrite ^(.*)$ /view/managerUsersGroups.php last; >местоположение = /usersGroups. json< rewrite ^(.*)$ /objects/usersGroups. json.php last; >местоположение = /добавитьНовыеГруппыПользователей< rewrite ^(.*)$ /objects/userGroupsAddNew. json.php last; >местоположение = /удалитьГруппыПользователей< rewrite ^(.*)$ /objects/userGroupsDelete. json.php last; >местоположение = /реклама< rewrite ^(.*)$ /view/managerAds.php last; >местоположение = Картинка добавитьНовоеОбъявление< rewrite ^(.*)$ /objects/video_adsAddNew. json.php last; >местоположение = /ads. json< rewrite ^(.*)$ /objects/video_ads. json.php last; >местоположение = /удалитьВидеоРекламу< rewrite ^(.*)$ /objects/video_adDelete. json.php last; >местоположение /adClickLo< rewrite ^/adClickLog /objects/video_adClickLog.php last; >местоположение = /категории< rewrite ^(.*)$ /view/managerCategories.php last; >местоположение = /категории. json< rewrite ^(.*)$ /objects/categories. json.php last; >местоположение = /добавитьНовуюКатегорию< rewrite ^(.*)$ /objects/categoryAddNew. json.php last; >местоположение = /удалитьКатегорию< rewrite ^(.*)$ /objects/categoryDelete. json.php last; >местоположение = /orphanFiles< rewrite ^(.*)$ /view/orphanFiles.php last; >местоположение = /mvideos< rewrite ^(.*)$ /view/managerVideos.php last; >местоположение = /videos. json< rewrite ^(.*)$ /objects/videos. json.php last; >местоположение = /удалитьВидео< rewrite ^(.*)$ /objects/videoDelete. json.php last; >местоположение = /добавитьНовоеВидео< rewrite ^(.*)$ /objects/videoAddNew. json.php last; >местоположение = /обновитьВидео< rewrite ^(.*)$ /objects/videoRefresh. json.php last; >местоположение = /установитьСтатусВидео< rewrite ^(.*)$ /objects/videoStatus. json.php last; >местоположение = /пере kodirovatVideo< rewrite ^(.*)$ /objects/videoReencode. json.php last; >местоположение = /добавитьКоличествоПросмотровВидео< rewrite ^(.*)$ /objects/videoAddViewCount. json.php last; >местоположение = /сохранитьКомментарий< rewrite ^(.*)$ /objects/commentAddNew. json.php last; >местоположение /комментарии< rewrite ^/comments. json/([0-9]+)$ /objects/comments. json.php? video_id=$1 last; >местоположение = /вход< rewrite ^(.*)$ /objects/login. json.php last; >местоположение = /выход< rewrite ^(.*)$ /objects/logoff.php last; >местоположение = /like< rewrite ^(.*)$ /objects/like. json.php? like=1 last; >местоположение = /не_нравится< rewrite ^(.*)$ /objects/like. json.php? like=-1 last; >местоположение /обновление< rewrite ^/update/?$ /update/update.php last; >местоположение = /siteConfigurations< rewrite ^(.*)$ /view/configurations.php last; >местоположение = /обновитьКонфигурацию< rewrite ^(.*)$ /objects/configurationUpdate. json.php last; >местоположение = /charts< rewrite ^(.*)$ /view/charts.php last; >местоположение = /upload/index.php< rewrite ^(.*)$ /upload/view/index.php last; >местоположение = /upload/isAdmin< rewrite ^(.*)$ /upload/view/isAdmin.php last; >местоположение = /upload/deleteStreamer< rewrite ^(.*)$ /upload/view/removeStreamer.php last; >местоположение = /upload/priority< rewrite ^(.*)$ /upload/view/priority.php last; >местоположение = /upload/status< rewrite ^(.*)$ /upload/view/status.php last; >местоположение = /upload/serverStatus< rewrite ^(.*)$ /upload/ view/status.php? serverStatus=1 last; >местоположение = /upload/upload< rewrite ^(.*)$ /upload/view/upload.php last; >местоположение = /upload/listFiles. json< rewrite ^(.*)$ /upload/view/listFiles. json.php last; >местоположение = /upload/deleteQueue< rewrite ^(.*)$ /upload/view/deleteQueue.php last; >местоположение = /upload/saveConfig< rewrite ^(.*)$ /upload/view/saveConfig.php last; >местоположение = /upload/youtubeDl. json< rewrite ^(.*)$ /upload/view/youtubeDl. json.php last; >местоположение = /upload/send. json< rewrite ^(.*)$ /upload/view/send. json.php last; >местоположение = /upload/streamers. json< rewrite ^(.*)$ /upload/view/streamers. json.php last; >местоположение = /upload/queue. json< rewrite ^(.*)$ /upload/view/queue. json.php last; >местоположение = /upload/queue< rewrite ^(.*)$ /upload/view/queue.php last; >местоположение = /загрузить/вход< rewrite ^(.*)$ /upload/objects/login. json.php last; >местоположение = /upload/logoff< rewrite ^(.*)$ /upload/objects/logoff. json.php last; >местоположение /загрузка/< rewrite "^/getImage/([A-Za-z0-9=/]+)/([A-Za-z0-9])$" /upload/objects/getImage.php? base64Url=$1&format=$2 last; rewrite "^/getImageMP4/([A-Za-z0-

Сохраните файл и закройте его. После этого проверьте настройки Nginx.

sudo nginx - t

После успешного прохождения теста, перезапустите Nginx, чтобы изменения начали действовать.

sudo systemctl reload nginx

Теперь перейдите на tube. yourdomain.com, и вы окажетесь на странице установки (tube. yourdomain.com/install/index.php). Прежде чем вносить какие-либо данные в мастере установки, необходимо активировать HTTPS.

Активация HTTPS

Для шифрования HTTP-трафика можно включить HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующую команду, чтобы установить клиента Let’s Encrypt (certbot) на сервере Ubuntu 20.04.

sudo apt install certbot

Если вы работаете с Apache, необходимо установить плагин Certbot для этого веб-сервера.

sudo apt install python3-certbot-apache

Исполните данную команду для получения и установки TLS-сертификата.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d tube. yourdomain.com

Если вы работаете с Nginx, рекомендуется установить плагин Certbot, предназначенный для Nginx.

sudo apt install python3-certbot-nginx

После этого выполните следующую команду для получения и установки TLS-сертификата.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d tube. yourdomain.com

  • --nginx : Применять плагин для nginx.
  • --apache: Применить плагин Apache.
  • --согласие-условия : Принять условия предоставления услуг.
  • --перенаправление: Обязательный переход на HTTPS с использованием перенаправления 301.
  • --hsts: Включить заголовок Strict-Transport-Security в каждый ответ HTTP. Это заставляет браузер постоянно применять TLS для данного домена, обеспечивая защиту от атак SSL/TLS Stripping.
  • --staple-ocsp: Активирует OCSP Stapling. Во время TLS к сертификату, который сервер предоставляет, добавляется действительный ответ OCSP.

Теперь сертификат необходимо получить и установить автоматически.

install-youphptube-on-ubuntu-20.04

Завершение инсталляции через мастер настройки.

Теперь зайдите на tube. yourdomain.com, и откроется мастер настройки. Слева вы сможете проверить, удовлетворяет ли ваш сервер необходимым требованиям.

avideo-requirements

Если вы работаете с Nginx, можете не обращать внимания на данное сообщение.

Ваш сервер nginx/1.14.2, вам нужно установить Apache.

Параметры post_max_size и upload_max_filesize в PHP рекомендуется устанавливать на уровне не менее 100M. Чтобы внести изменения в эти значения, необходимо отредактировать файл php. ini. Если вы работаете с веб-сервером Apache, то...

sudo nano /etc/php/7.4/apache2/php. ini

При работе с Nginx и PHP-FPM необходимо внести изменения в файл php. ini, который используется для FPM.

sudo nano /etc/php/7.4/fpm/php. ini

Установите местонахождение следующих двух строк.

post_max_size = 8M upload_max_filesize = 2M

Подкорректируйте параметры в зависимости от объема видеофайла, который планируете загрузить. К примеру, если разрешаете загрузку видео размером 1 ГБ, то

post_max_size = 1024M upload_max_filesize = 1024M

Сохраните файл и закройте его. Затем перезапустите Apache, чтобы изменения начали действовать.

sudo systemctl restart apache2

Если вы применяете Nginx в связке с PHP-FPM, не забудьте перезапустить PHP-FPM.

sudo systemctl restart php7.4-fpm

Теперь обновите страницу установки AVideo. Ваш сервер должен соответствовать всем необходимым требованиям. Справа вы можете ввести название вашего видеопортала и задать пароль для администратора системы. Укажите название базы данных AVideo, имя пользователя и пароль, которые вы создали ранее. (Обратите внимание: используйте основную базу данных, а не базу данных кодировщика. Также учтите, что регистр не имеет значения.)

avideo-create-database-and-tables

Нажмите на кнопку «Установить сейчас», чтобы успешно завершить установку AVideo.

Теперь необходимо удалить каталог /var/www/AVideo/install/.

sudo rm /var/www/AVideo/install/ - r

Кликните на кнопку, чтобы вернуться на главную страницу, и перед вами откроется основное окно AVideo.

главная страница avideo

Чтобы войти в систему как администратор, вы можете открыть выпадающее меню слева и ввести пароль, который вы установили всего несколько минут назад.

вход для администраторов youphptube

Конфигурация кодировщика

Посетите https://tube.yourdomain.com/upload/. Вы окажетесь в интерфейсе настройки кодировщика. Если перенаправление не произошло автоматически, вы можете самостоятельно ввести URL для доступа к мастеру настройки.

https://tube. yourdomain.com/upload/install/index.php/

Слева вы сможете проверить, удовлетворяет ли ваш сервер требованиям AVideo Encoder.

avideo-encoder-requirements

Если вы применяете Nginx, можете не обращать внимания на это сообщение.

Ваш сервер nginx/1.14.2, вам необходимо установить Apache.

Чтобы обеспечить правильную работу PHP, максимальное время выполнения должно составлять не менее 7200 секунд, а лимит памяти — не менее 512M. Для изменения этих параметров необходимо отредактировать файл php. ini. Если вы работаете с веб-сервером Apache, то...

sudo nano /etc/php/7.4/apache2/php. ini

При использовании Nginx с PHP-FPM необходимо внести изменения в версию файла php. ini, предназначенного для FPM.

sudo nano /etc/php/7.4/fpm/php. ini

Установите местонахождение следующих двух строк.

max_execution_time = 30 memory_limit = 128M

Измените параметры.

max_execution_time = 7200 memory_limit = 512M

Учтите, что если процесс кодирования видео прерывается, стоит увеличить значение max_execution_time или обновить ваш процессор.

Сохраните файл и закройте его. Затем перезапустите Apache, чтобы изменения начали действовать.

sudo systemctl restart apache2

Если вы применяете Nginx в связке с PHP-FPM, не забудьте перезапустить PHP-FPM.

sudo systemctl restart php7.4-fpm

Теперь обновите страницу установки AVideo Encoder. Ваш сервер должен удовлетворять всем требованиям. С правой стороны введите имя базы данных AVideoEncoder, а также имя пользователя и пароль, которые вы создали ранее. Обратите внимание на регистр, а также введите пароль администратора стримингового сайта.

avideo-encoder-setup-wizard-database

Нажмите на кнопку "Установить сейчас", чтобы начать установку AVideo Encoder.

Очистите папку с установленной программой.

sudo rm /var/www/AVideo/upload/install/ - r

Перейдите на основную страницу.

вход администратора в кодировщик youphptube

Настройте кодировщик URL.

AVideo по умолчанию применяет публичный кодировщик для загрузки видео. Для использования собственного кодировщика необходимо войти в систему как администратор AVideo (не через AVideo Encoder) и открыть панель администратора в левой боковой панели.

avideo-admin-panel

Перейдите в настройки -> настройки сайта ->Расширенные настройки. Обновите URL кодировщика до https://tube.yourdomain.com/upload/. Сохраните изменения, очистите кэш и создайте новую карту сайта.

avideo-private-encoder-url

Теперь выйдите из аккаунта и зайдите снова. Нажав на кнопку для кодирования видео и аудио в правом верхнем углу, вы попадете на собственный кодировщик для загрузки видео. Обратите внимание, что скорость кодирования зависит от производительности процессора вашего сервера. Процесс требует минимального объема оперативной памяти, так как кодировщик сохраняет видео во временный файл в папке загрузки (/var/www/AVideo/upload/videos).

Конфигурация SMTP

Чтобы отправлять электронные письма, такие как уведомления о регистрации или сбросе пароля, необходимо настроить SMTP-сервер. Если вы хотите использовать собственный почтовый сервер для отправки сообщений своим клиентам, ознакомьтесь с соответствующей статьей по настройке. Обратите внимание, что я рекомендую устанавливать почтовый сервер iRedMail на чистую операционную систему. Установка iRedMail на ОС с уже работающими веб-приложениями может привести к сбоям и повредить существующие сервисы.

  • Как просто установить почтовый сервер на Ubuntu 20.04 с помощью iRedMail.

Если вы планируете воспользоваться сервисом реле SMTP, рекомендую обратить внимание на Mailjet. Вы можете использовать приведенное ниже руководство для настройки реле SMTP на вашем сервере AVideo.

  • Настройка реле SMTP Postfix на Ubuntu с использованием Mailjet.

Вы можете протестировать отправку электронной почты, перейдя в панель администратора -> Настройки -> Настройки сайта ->Расширенные настройки, в которых расположены параметры SMTP. Примените указанные ниже значения.

  • Активировать SMTP.
  • Активировать аутентификацию для SMTP.
  • Применять TLS для обеспечения безопасности SMTP.
  • Применяйте порт 587 для SMTP.
  • Укажите имя хоста вашего почтового сервера.
  • Укажите логин и пароль для SMTP.

Нажмите на кнопку "Сохранить", чтобы сохранить изменения, а затем выберите "Проверить электронную почту", чтобы убедиться, что всё функционирует правильно.

Конфигурация электронной почты для avideo

Активируйте TCP BBR.

Рекомендуется активировать алгоритм управления перегрузками TCP BBR в ядре Linux для сервера потокового видео, следуя указанным в статье рекомендациям.

  • Как просто улучшить производительность сети в Ubuntu, активировав TCP BBR.

Приложения для мобильных устройств

Чтобы загрузить бесплатное приложение для Android или iOS, просто выполните поиск по запросу AVideo в Google Play Store или YPT Mobile в Apple Store. Учтите, что использование белой метки мобильного приложения подразумевает приобретение платной лицензии.

Диагностика неисправностей

Если на вашей главной странице AVideo не были загружены определённые ресурсы CSS и JavaScript,

youphptube не удалось загрузить ресурсы.

Возможно, вы случайно добавили лишний прямой слэш в настройках виртуального хоста Apache или Nginx для веб-корневого каталога. Вместо использования

DocumentRoot /var/www/AVideo/

DocumentRoot /var/www/AVideo

Если основной веб-сайт функционирует некорректно, рекомендуется просмотреть файл журнала по пути /var/www/AVideo/videos/youphptube.log. В случае проблем с кодировщиком, следует проверить файл журнала, расположенный по адресу /var/www/AVideo/upload/videos/youphptube.log.

Альтернативные записи

При создании видео вы имеете возможность выбирать различные разрешения (низкое, SD, HD). Если вы используете AVideo для личного стриминга, я рекомендую выбирать HD-разрешение только для того, чтобы сократить время кодирования и сэкономить место на диске. Если вы уже закодировали видео в трех разрешениях, вы можете перейти в каталог AVideo (/var/www/AVideo/videos) и удалить видео с низким и SD-разрешениями.

cd /var/www/AVideo/videos/ sudo rm *Low. mp4 sudo rm *SD. mp4

Как загрузить все видеоматериалы с вашего сайта?

Для загрузки всех видео воспользуйтесь командной строкой youtube-dl. Сначала откройте панель управления AVideo, затем перейдите к списку видео и прокрутите страницу до конца. Там нажмите кнопку для скачивания вашего списка видео (файл в формате permalink. txt). В результате вы получите список URL-адресов для всех видео.

После этого откройте терминал и создайте текстовый файл с помощью текстового редактора. Скопируйте URL-адреса с веб-страницы и вставьте их в этот файл. Далее выполните следующую команду для загрузки видео, заменив video-list. txt на имя вашего файла.

youtube-dl - a video-list. txt

Заключение

Надеюсь, данное руководство оказалось для вас полезным при установке AVideo на сервер с Ubuntu 20.04. Если вы считаете эту статью ценной, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций.