Dieses Tutorial zeigt Ihnen, wie Sie Ihre eigene Video-Sharing-Website mit AVideo (früher YouPHPTube) unter Ubuntu 20.04 betreiben. AVideo ist eine selbst gehostete Open-Source-Alternative zu Video-Sharing-Websites wie YouTube, Vimeo usw. Mit AVideo können Benutzer Videos auf Ihren Server hochladen und mit dem Internet teilen.
AVideofunktionen
- Unbegrenzte und gleichzeitige Live-Streams und Sie können unbegrenzt viele Benutzer mit jedem Live-Stream verbinden.
- Importieren und codieren Sie Videos von anderen Websites direkt aus dem Internet
- Massencodierung aus lokalem Videoverzeichnis
- Private Videos erstellen
- Voll integrierte Funktion mit Youtube, synchronisieren Sie Ihre Videos mit Youtube
- Transkodieren Sie mehrere Formate von Multimediadateien in MP4-, WebM- und MP3-Dateien
- Unterstützung von Amazon S3 (Simple Storage Service)
- Responsives Website-Layout. AVideo sieht auf jedem Gerät unglaublich aus. (Sie können das Layout im YouTube- oder Netfilx-Stil wählen.)
- Nutzerkanäle und Nutzer-Playlists
- Abonniere Kanäle, die dir gefallen
- Sie können die Leistung Ihrer Videos mit aktuellen Messwerten und Berichten in AVideo Statistics überwachen.
- Erweitern Sie Website-Funktionalitäten mit Plugins.
- SEO-optimiert
- iOS- und Android-Apps verfügbar
AVideoserver-Anforderungen
Zunächst sollten Sie wissen, dass eine Single-Core-CPU für eine Video-Sharing-Website nicht geeignet ist, da der Kodierungsprozess viele CPU-Ressourcen beansprucht.
Wählen Sie dann die Serverspezifikationen entsprechend der Anzahl der Benutzer Ihrer Website aus.
- Wenn Sie es nur zum Teilen Ihrer eigenen Videos verwenden möchten, benötigen Sie einen Server mit mindestens 2 CPU-Kernen und 4 GB RAM. Einen leistungsstarken VPS (Virtual Private Server) können Sie bei Contabo günstig erwerben.
- Wenn Sie davon ausgehen, dass Ihre Website Dutzende von Benutzern hat, können Sie den extra großen VPS von Contabo in Betracht ziehen, der 10 CPU-Kerne, 60 GB RAM, 1 Gbit/s Portgeschwindigkeit, 1,6 TB Festplattenspeicher und unbegrenzten Datenverkehr hat, aber nur 26,99 kostet Euro/Monat.
- Wenn Ihre Website darüber hinauswächst, sollten Sie einen dedizierten Server kaufen.
Softwareanforderungen für die Installation von AVideo auf Ubuntu 20.04
AVideo erfordert PHP und MySQL/MariaDB. Um diesem Tutorial zu folgen, sollten Sie bereits einen LAMP-Stack oder LEMP-Stack eingerichtet haben. Wenn Sie den Apache-Webserver bevorzugen, installieren Sie den LAMP-Stack.
- So installieren Sie den LAMP-Stack (Apache, MariaDB, PHP) unter Ubuntu 20.04
Wenn Sie den Nginx-Webserver bevorzugen, installieren Sie den LEMP-Stack.
- So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP) unter Ubuntu 20.04
Hinweis :AVideo-Unterstützung mit Nginx ist nur experimentell. Ihre Website kann Probleme haben, wenn Sie Nginx verwenden .
Außerdem benötigen Sie einen Domänennamen. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz lebenslang kostenlos bieten.
Ein Video besteht aus zwei Teilen.
- Der Hauptteil ist der Front-End-Stream-Server, der es Benutzern ermöglicht, vorhandene Videos anzusehen.
- Der andere Teil ist der Encoder, mit dem Benutzer ihre Videos hochladen können.
Der öffentliche Encoder verwendet den Domänennamen https://encoder1.avideo.com
. Wenn Sie nicht möchten, dass Benutzer Ihre Website beim Hochladen von Videos verlassen, müssen Sie Ihren privaten Encoder einrichten. Wie das geht, zeige ich dir in diesem Artikel. Fangen wir ohne weiteres an.
Schritt 1:AVideo auf Ubuntu 20.04 Server herunterladen
Melden Sie sich über SSH bei Ihrem Ubuntu 20.04-Server an. Wechseln Sie dann in das Web-Root-Verzeichnis.
cd /var/www/
Klonen Sie das AVideo-Streamer-Repository von Github.
sudo apt install git sudo git clone https://github.com/WWBN/AVideo.git
Gehen Sie dann in das Verzeichnis.
cd AVideo/
Klonen Sie das AVideo-Encoder-Repository von Github.
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
Es wird als AVideo-Encoder
gespeichert . Wir benennen es in upload
um , damit Nutzer beim Hochladen von Videos eine bessere Vorstellung davon bekommen, wofür diese URL dient.
sudo mv AVideo-Encoder upload
Als nächstes müssen wir www-data (den Benutzer des Webservers) zum Besitzer des Webstammverzeichnisses machen.
sudo chown www-data:www-data /var/www/AVideo/ -R
Schritt 2:Abhängigkeiten installieren
AVideo verwendet FFmpeg
Videos zu codieren. Wir können FFmpeg einfach aus dem Standard-Ubuntu-Repository installieren.
sudo apt install ffmpeg
Um Metainformationen in Multimediadateien zu lesen und zu schreiben, müssen wir das libimage-exiftool-perl
installieren Paket.
sudo apt install libimage-exiftool-perl
Sie müssen auch einige gängige PHP-Erweiterungen installieren.
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
Um Videos von anderen Seiten abzurufen, müssen wir YouTube-DL installieren. Es ist zwar im Ubuntu-Repository enthalten, aber veraltet. Wir werden YouTube-DL aus dem Python-Paketindex installieren, der immer die neueste Version von YouTube-DL enthält.
sudo apt install python3-pip sudo -H pip3 install youtube-dl
Es ist sehr wichtig, dass Sie die neueste Version verwenden, da Sie sonst möglicherweise keine Videos von anderen Websites herunterladen können. Wir können einen Cron-Job erstellen, um automatisch die neueste Version zu prüfen und zu installieren.
sudo crontab -e
Fügen Sie die folgende Zeile am Ende der Crontab-Datei hinzu, um zu versuchen, YouTube-DL täglich zu aktualisieren.
@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null
Schritt 3:Datenbank und Benutzer in MariaDB erstellen
Melden Sie sich mit dem folgenden Befehl beim MariaDB-Datenbankserver an. Da MariaDB jetzt unix_socket
verwendet Plugin für die Benutzeranmeldung zur Authentifizierung müssen Sie das MariaDB-Root-Passwort nicht eingeben. Wir müssen nur mysql
voranstellen Befehl mit sudo
.
sudo mysql
Erstellen Sie dann eine Datenbank für AVideo. Dieses Tutorial nennt die Datenbank AVideo
. Sie können einen beliebigen Namen verwenden.
create database AVideo;
Erstellen Sie den Datenbankbenutzer. Auch hier können Sie Ihren bevorzugten Namen für diesen Benutzer verwenden. Ersetzen Sie your-password
mit Ihrem bevorzugten Passwort.
create user AVideo@localhost identified by 'your-password';
Gewähren Sie diesem Benutzer alle Berechtigungen für AVideo
Datenbank.
grant all privileges on AVideo.* to AVideo@localhost;
Wir müssen auch eine separate Datenbank für den Encoder erstellen.
create database AVideoEncoder;
Erstellen Sie einen Benutzer für diese Datenbank.
create user AVideoEncoder@localhost identified by 'your-password';
Berechtigungen erteilen.
grant all privileges on AVideoEncoder.* to AVideoEncoder@localhost;
Leeren Sie die Berechtigungstabelle und beenden Sie.
flush privileges; exit;
Schritt 4:Webserver einrichten
Wir können Apache- oder Nginx-Webserver verwenden.
Apache
Wenn Sie Apache bevorzugen, erstellen Sie eine virtuelle Hostdatei für AVideo mit einem Befehlszeilen-Texteditor wie Nano.
sudo nano /etc/apache2/sites-available/avideo.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den rot eingefärbten Text durch Ihre tatsächlichen Daten. In diesem Tutorial verwende ich eine Subdomain. Sie können Ihren Hauptdomänennamen verwenden, wenn Sie dies bevorzugen. Vergessen Sie nicht, in Ihrem DNS-Eintragsmanager einen DNS-A-Eintrag für den Domainnamen zu erstellen. Beachten Sie auch, dass beim Dokumentenstammverzeichnis die Groß-/Kleinschreibung beachtet wird und Sie am Ende keinen Schrägstrich hinzufügen sollten.
<VirtualHost *:80> ServerName tube.yourdomain.com DocumentRoot /var/www/AVideo <Directory /var/www/AVideo> DirectoryIndex index.php Options +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/avideo.error.log CustomLog ${APACHE_LOG_DIR}/avideo.access.log combined </VirtualHost>
Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.
sudo a2ensite avideo.conf
Wir müssen das Rewrite-Modul aktivieren.
sudo a2enmod rewrite
Starten Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl restart apache2
Besuchen Sie nun tube.yourdomain.com
und Sie werden zur Seite des Einrichtungsassistenten weitergeleitet (tube.yourdomain.com/install/index.php
). Wenn Sie die Apache-Standardseite anstelle des Setup-Assistenten sehen, müssen Sie den standardmäßigen virtuellen Host deaktivieren.
sudo a2dissite 000-default.conf
Und Apache neu starten.
Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.
Nginx
Wenn Sie Nginx bevorzugen, erstellen Sie eine avideo.conf
Datei in /etc/nginx/conf.d/
Verzeichnis.
sudo nano /etc/nginx/conf.d/avideo.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den rot eingefärbten Text durch Ihre tatsächlichen Daten. In diesem Tutorial verwende ich eine Subdomain. Sie können Ihren Hauptdomänennamen verwenden, wenn Sie dies bevorzugen. Vergessen Sie nicht, in Ihrem DNS-Eintragsmanager einen DNS-A-Eintrag für den Domainnamen zu erstellen. Beachten Sie auch, dass beim Dokumentstammverzeichnis die Groß- und Kleinschreibung beachtet wird.
server { listen 80; server_name tube.yourdomain.com; root /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; } # translating Apache rewrite rules in the .htaccess file to Nginx rewrite rules location / { rewrite ^/$ /view/ last; } location /bootstrap { rewrite ^/bootstrap/(.+)$ /view/bootstrap/$1 last; } location /js { rewrite ^/js/(.+)$ /view/js/$1 last; } location /css { rewrite ^/css/(.+)$ /view/css/$1 last; } location /img { rewrite ^/img/(.+)$ /view/img/$1 last; } location /page { rewrite ^/page/([0-9]+)/?$ /view/?page=$1 last; } location /videoOnly { rewrite ^/videoOnly/?$ /view/?type=video last; } location /audioOnly { rewrite ^/audioOnly/?$ /view/?type=audio last; } location = /download { rewrite ^(.*)$ /view/downloadExternalVideo.php last; } location = /downloadNow { rewrite ^(.*)$ /objects/downloadVideo.php last; } location = /getDownloadProgress { rewrite ^(.*)$ /objects/downloadVideoProgress.php last; } location = /about { rewrite ^(.*)$ /view/about.php last; } location = /contact { rewrite ^(.*)$ /view/contact.php last; } location = /sendEmail { rewrite ^(.*)$ /objects/sendEmail.json.php last; } location = /captcha { rewrite ^(.*)$ /objects/getCaptcha.php last; } location /monitor { rewrite ^/monitor/(.+)$ /objects/ServerMonitor/$1 last; } location /cat { rewrite ^/cat/([A-Za-z0-9-]+)/?$ /view/?catName=$1 last; } location /video { rewrite ^/video/([A-Za-z0-9-_.]+)/?$ /view/?videoName=$1 last; } location /videoEmbeded { rewrite ^/videoEmbeded/([A-Za-z0-9-_.]+)/?$ /view/videoEmbeded.php?videoName=$1 last; } location = /upload { rewrite ^(.*)$ /view/mini-upload-form/ last; } location = /fileUpload { rewrite ^(.*)$ /view/mini-upload-form/upload.php last; } location /uploadStatu { rewrite ^/uploadStatus /view/mini-upload-form/videoConversionStatus.php last; } location = /user { rewrite ^(.*)$ /view/user.php last; } location = /users { rewrite ^(.*)$ /view/managerUsers.php last; } location = /users.json { rewrite ^(.*)$ /objects/users.json.php last; } location = /updateUser { rewrite ^(.*)$ /objects/userUpdate.json.php last; } location = /savePhoto { rewrite ^(.*)$ /objects/userSavePhoto.php last; } location = /addNewUser { rewrite ^(.*)$ /objects/userAddNew.json.php last; } location = /deleteUser { rewrite ^(.*)$ /objects/userDelete.json.php last; } location = /recoverPass { rewrite ^(.*)$ /objects/userRecoverPass.php last; } location = /saveRecoverPassword { rewrite ^(.*)$ /objects/userRecoverPassSave.json.php last; } location = /signUp { rewrite ^(.*)$ /view/signUp.php last; } location = /createUser { rewrite ^(.*)$ /objects/userCreate.json.php last; } location = /usersGroups { rewrite ^(.*)$ /view/managerUsersGroups.php last; } location = /usersGroups.json { rewrite ^(.*)$ /objects/usersGroups.json.php last; } location = /addNewUserGroups { rewrite ^(.*)$ /objects/userGroupsAddNew.json.php last; } location = /deleteUserGroups { rewrite ^(.*)$ /objects/userGroupsDelete.json.php last; } location = /ads { rewrite ^(.*)$ /view/managerAds.php last; } location = /addNewAd { rewrite ^(.*)$ /objects/video_adsAddNew.json.php last; } location = /ads.json { rewrite ^(.*)$ /objects/video_ads.json.php last; } location = /deleteVideoAd { rewrite ^(.*)$ /objects/video_adDelete.json.php last; } location /adClickLo { rewrite ^/adClickLog /objects/video_adClickLog.php last; } location = /categories { rewrite ^(.*)$ /view/managerCategories.php last; } location = /categories.json { rewrite ^(.*)$ /objects/categories.json.php last; } location = /addNewCategory { rewrite ^(.*)$ /objects/categoryAddNew.json.php last; } location = /deleteCategory { rewrite ^(.*)$ /objects/categoryDelete.json.php last; } location = /orphanFiles { rewrite ^(.*)$ /view/orphanFiles.php last; } location = /mvideos { rewrite ^(.*)$ /view/managerVideos.php last; } location = /videos.json { rewrite ^(.*)$ /objects/videos.json.php last; } location = /deleteVideo { rewrite ^(.*)$ /objects/videoDelete.json.php last; } location = /addNewVideo { rewrite ^(.*)$ /objects/videoAddNew.json.php last; } location = /refreshVideo { rewrite ^(.*)$ /objects/videoRefresh.json.php last; } location = /setStatusVideo { rewrite ^(.*)$ /objects/videoStatus.json.php last; } location = /reencodeVideo { rewrite ^(.*)$ /objects/videoReencode.json.php last; } location = /addViewCountVideo { rewrite ^(.*)$ /objects/videoAddViewCount.json.php last; } location = /saveComment { rewrite ^(.*)$ /objects/commentAddNew.json.php last; } location /comments { rewrite ^/comments.json/([0-9]+)$ /objects/comments.json.php?video_id=$1 last; } location = /login { rewrite ^(.*)$ /objects/login.json.php last; } location = /logoff { rewrite ^(.*)$ /objects/logoff.php last; } location = /like { rewrite ^(.*)$ /objects/like.json.php?like=1 last; } location = /dislike { rewrite ^(.*)$ /objects/like.json.php?like=-1 last; } location /update { rewrite ^/update/?$ /update/update.php last; } location = /siteConfigurations { rewrite ^(.*)$ /view/configurations.php last; } location = /updateConfig { rewrite ^(.*)$ /objects/configurationUpdate.json.php last; } location = /charts { rewrite ^(.*)$ /view/charts.php last; } location = /upload/index.php { rewrite ^(.*)$ /upload/view/index.php last; } location = /upload/isAdmin { rewrite ^(.*)$ /upload/view/isAdmin.php last; } location = /upload/removeStreamer { rewrite ^(.*)$ /upload/view/removeStreamer.php last; } location = /upload/priority { rewrite ^(.*)$ /upload/view/priority.php last; } location = /upload/status { rewrite ^(.*)$ /upload/view/status.php last; } location = /upload/serverStatus { rewrite ^(.*)$ /upload/view/status.php?serverStatus=1 last; } location = /upload/upload { rewrite ^(.*)$ /upload/view/upload.php last; } location = /upload/listFiles.json { rewrite ^(.*)$ /upload/view/listFiles.json.php last; } location = /upload/deleteQueue { rewrite ^(.*)$ /upload/view/deleteQueue.php last; } location = /upload/saveConfig { rewrite ^(.*)$ /upload/view/saveConfig.php last; } location = /upload/youtubeDl.json { rewrite ^(.*)$ /upload/view/youtubeDl.json.php last; } location = /upload/send.json { rewrite ^(.*)$ /upload/view/send.json.php last; } location = /upload/streamers.json { rewrite ^(.*)$ /upload/view/streamers.json.php last; } location = /upload/queue.json { rewrite ^(.*)$ /upload/view/queue.json.php last; } location = /upload/queue { rewrite ^(.*)$ /upload/view/queue.php last; } location = /upload/login { rewrite ^(.*)$ /upload/objects/login.json.php last; } location = /upload/logoff { rewrite ^(.*)$ /upload/objects/logoff.json.php last; } location /upload/ { rewrite "^/getImage/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})$" /upload/objects/getImage.php?base64Url=$1&format=$2 last; rewrite "^/getImageMP4/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})/([0-9.]+)$" /upload/objects/getImageMP4.php?base64Url=$1&format=$2&time=$3 last; } location /upload/getSpiritsFromVideo { rewrite ^/getSpiritsFromVideo/([A-Za-z0-9=/]+)/([0-9]+)/([0-9]+)$ /upload/objects/getSpiritsFromVideo.php?base64Url=$1&tileWidth=$2&totalClips=$3 last; } location /upload/getLinkInfo { rewrite ^/getLinkInfo/([A-Za-z0-9=/]+)$ /upload/objects/getLinkInfo.json.php?base64Url=$1 last; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginx
Besuchen Sie nun tube.yourdomain.com
und Sie werden zur Seite des Einrichtungsassistenten weitergeleitet (tube.yourdomain.com/install/index.php
). Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.
Schritt 5:HTTPS aktivieren
Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 20.04-Server zu installieren.
sudo apt install certbot
Wenn Sie Apache verwenden, müssen Sie auch das Certbot-Apache-Plugin installieren.
sudo apt install python3-certbot-apache
Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com
Wenn Sie Nginx verwenden, installieren Sie das Certbot Nginx-Plugin.
sudo apt install python3-certbot-nginx
Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com
Wo
--nginx
:Verwenden Sie das nginx-Plugin.--apache
:Verwenden Sie das Apache-Plugin.--agree-tos
:Nutzungsbedingungen akzeptieren.--redirect
:HTTPS durch 301-Umleitung erzwingen.--hsts
:Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.--staple-ocsp
:Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.
Das Zertifikat sollte nun abgerufen und automatisch installiert werden.
Schritt 6:Beenden Sie die Installation mit dem Einrichtungsassistenten
Gehen Sie nun zu tube.yourdomain.com
und der Einrichtungsassistent wird angezeigt. Auf der linken Seite sehen Sie, ob Ihr Server die Anforderungen erfüllt.
Wenn Sie Nginx verwenden, können Sie die folgende Meldung ignorieren.
Your server is nginx/1.14.2, you must install Apache.
Wie Sie sehen können, ist die PHP post_max_size
sollte mindestens 100 MB und upload_max_filesize
sein sollte mindestens 100M betragen. Wir müssen die php.ini
bearbeiten Datei, um die beiden Werte zu ändern. Wenn Sie den Apache-Webserver verwenden, dann
sudo nano /etc/php/7.4/apache2/php.ini
Wenn Sie Nginx mit PHP-FPM verwenden, müssen Sie die FPM-Version der Datei php.ini bearbeiten.
sudo nano /etc/php/7.4/fpm/php.ini
Suchen Sie die folgenden zwei Zeilen.
post_max_size = 8M upload_max_filesize = 2M
Ändern Sie die Werte entsprechend der Videodateigröße, die Sie hochladen möchten. Wenn Sie beispielsweise das Hochladen von 1G-Videodateien zulassen, dann
post_max_size = 1024M upload_max_filesize = 1024M
Speichern und schließen Sie die Datei. Starten Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl restart apache2
Wenn Sie Nginx mit PHP-FPM verwenden, starten Sie PHP-FPM neu.
sudo systemctl restart php7.4-fpm
Aktualisieren Sie nun die Seite des AVideo-Installationsassistenten. Ihr Server sollte alle Anforderungen erfüllen. Jetzt können Sie auf der rechten Seite einen Titel für Ihre Videoseite eingeben und ein Systemadministratorpasswort festlegen. Geben Sie den Namen, den Benutzer und das Passwort der AVideo-Datenbank ein, die Sie zuvor erstellt haben. (Hinweis:Sie sollten die Hauptdatenbank verwenden, nicht die Encoder-Datenbank. Achten Sie auch auf Groß- und Kleinschreibung.)
Klicken Sie auf Install now
Button und AVideo sollten erfolgreich installiert werden.
Jetzt müssen wir /var/www/AVideo/install/
entfernen Verzeichnis.
sudo rm /var/www/AVideo/install/ -r
Klicken Sie auf Go to the main page
und Sie sehen die AVideo-Hauptseite.
Sie können auf das Dropdown-Menü links klicken und sich als admin
anmelden Benutzer und mit dem Passwort, das Sie gerade festgelegt haben.
Schritt 7:Richten Sie den Encoder ein
Gehen Sie zu https://tube.yourdomain.com/upload/
. Sie werden zum Encoder-Einrichtungsassistenten weitergeleitet. Wenn Sie nicht automatisch umgeleitet werden, können Sie die URL des Einrichtungsassistenten manuell eingeben.
https://tube.yourdomain.com/upload/install/index.php/
Auf der linken Seite wird Ihnen angezeigt, ob Ihr Server die Anforderungen von AVideo Encoder erfüllt.
Wenn Sie Nginx verwenden, können Sie die folgende Meldung ignorieren.
Your server is nginx/1.14.2, you must install Apache.
Wie Sie sehen können, ist PHP max_execution_time
sollte mindestens 7200 und PHP memory_limit
sein sollte mindestens 512 MB betragen. Wir müssen die php.ini
bearbeiten Datei, um die beiden Werte zu ändern. Wenn Sie den Apache-Webserver verwenden, dann
sudo nano /etc/php/7.4/apache2/php.ini
Wenn Sie Nginx mit PHP-FPM verwenden, müssen Sie die FPM-Version der Datei php.ini bearbeiten.
sudo nano /etc/php/7.4/fpm/php.ini
Suchen Sie die folgenden zwei Zeilen.
max_execution_time = 30 memory_limit = 128M
Ändern Sie die Werte.
max_execution_time = 7200 memory_limit = 512M
Beachten Sie, dass Sie max_execution_time
erhöhen müssen, wenn die spätere Videocodierung auf halbem Weg stoppt , oder aktualisieren Sie Ihre CPU.
Speichern und schließen Sie die Datei. Starten Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl restart apache2
Wenn Sie Nginx mit PHP-FPM verwenden, starten Sie PHP-FPM neu.
sudo systemctl restart php7.4-fpm
Aktualisieren Sie nun die Seite des AVideo Encoder-Installationsassistenten. Ihr Server sollte alle Anforderungen erfüllen. Jetzt müssen Sie auf der rechten Seite den Namen, den Benutzer und das Passwort der AVideoEncoder-Datenbank eingeben, die Sie zuvor erstellt haben. Achten Sie auf Groß- und Kleinschreibung und geben Sie das Admin-Passwort der Streamer-Site ein.
Klicken Sie auf die Schaltfläche Jetzt installieren und AVideo Encoder wird installiert.
Entfernen Sie das Installationsverzeichnis.
sudo rm /var/www/AVideo/upload/install/ -r
Und gehen Sie zur Hauptseite.
Schritt 8:Ändern Sie die Encoder-URL
Standardmäßig verwendet AVideo den öffentlichen Encoder zum Hochladen von Videos. Um Ihren eigenen Encoder zu verwenden, melden Sie sich als Administrator bei AVideo (nicht AVideo Encoder) an und gehen Sie über die linke Seitenleiste zum Admin-Bereich.
Gehen Sie zu settings
-> site settings
-> advanced configuration
. Ändern Sie die Encoder-URL in https://tube.yourdomain.com/upload/
. Speichern Sie die Einstellungen, löschen Sie das Cache-Verzeichnis und erstellen Sie eine neue Sitemap.
Melden Sie sich jetzt ab und wieder an. Wenn Sie auf encode video and audio
klicken Schaltfläche in der oberen rechten Ecke, werden Sie zu Ihrem eigenen Encoder weitergeleitet, um Videos hochzuladen. Es sollte beachtet werden, dass die Codierungsgeschwindigkeit von der CPU-Leistung Ihres Servers abhängt. Es benötigt nicht viel RAM, da der Encoder das Video in eine temporäre Datei im Upload-Verzeichnis kopiert (/var/www/AVideo/upload/videos
).
Schritt 9:SMTP konfigurieren
Um E-Mails zu versenden (z. B. Kontoregistrierung, Passwortzurücksetzung usw.), müssen Sie einen SMTP-Server konfigurieren. Wenn Sie Ihren eigenen Mailserver verwenden möchten, um E-Mails an Clients zu senden, lesen Sie bitte den folgenden Artikel, um Ihren eigenen Mailserver einzurichten. Hinweis dass ich dringend empfehle, den iRedMail-Mailserver auf einem frischen, sauberen Betriebssystem auszuführen. Die Installation von iRedMail auf einem Betriebssystem mit anderen Webanwendungen kann fehlschlagen und wahrscheinlich vorhandene Anwendungen beschädigen.
- So richten Sie mit iRedMail ganz einfach einen E-Mail-Server unter Ubuntu 20.04 ein
Wenn Sie einen SMTP-Relay-Dienst verwenden möchten, empfehle ich Mailjet. Sie können dem nachstehenden Tutorial folgen, um SMTP-Relay auf Ihrem AVideo-Server einzurichten.
- So richten Sie Postfix SMTP-Relay auf Ubuntu mit Mailjet ein
Sie können den E-Mail-Versand testen, indem Sie zum admin panel
gehen -> settings
-> site settings
-> Advanced Configuration
finden Sie die SMTP-Konfiguration. Verwenden Sie die folgenden Einstellungen.
- SMTP aktivieren.
- SMTP-Authentifizierung aktivieren
- Verwenden Sie
tls
in SMTP Secure. - Verwenden Sie
587
als SMTP-Port. - Geben Sie den Hostnamen Ihres Mailservers ein.
- Geben Sie einen SMTP-Benutzernamen und ein Kennwort ein.
Klicken Sie auf Save
Schaltfläche, um die Einstellungen zu speichern, und klicken Sie dann auf Test Email
um zu sehen, ob es funktioniert.
TCP-BBR aktivieren
Für einen Video-Streaming-Server wird empfohlen, den TCP BBR-Überlastungskontrollalgorithmus im Linux-Kernel zu aktivieren, indem Sie die Anweisungen im folgenden Artikel befolgen.
- Wie man die Ubuntu-Netzwerkleistung einfach steigert, indem man TCP BBR aktiviert
Mobile Apps
Sie können die kostenlose Android-App oder iOS-App herunterladen, indem Sie nach AVideo
suchen im Google Play Store oder YPT Mobile
im Apple-Store. Mobile White-Label-Apps erfordern eine kostenpflichtige Lizenz.
Fehlerbehebung
Wenn Ihre AVideo-Hauptseite einige CSS- und JavaScript-Ressourcen nicht laden konnte,
Wahrscheinlich haben Sie einen zusätzlichen Schrägstrich in der virtuellen Apache- oder Nginx-Hostdatei für das Web-Root-Verzeichnis hinzugefügt. Anstelle von
DocumentRoot /var/www/AVideo/
Sie sollten
verwendenDocumentRoot /var/www/AVideo
Wenn die Hauptwebsite nicht ordnungsgemäß funktioniert, können Sie die Protokolldatei unter /var/www/AVideo/videos/youphptube.log
überprüfen . Wenn Ihr Encoder nicht ordnungsgemäß funktioniert, können Sie die Protokolldatei unter /var/www/AVideo/upload/videos/youphptube.log
überprüfen .
Andere Leckerbissen
Beim Codieren von Videos können Sie Auflösungen auswählen (niedrig, SD, HD). Wenn Sie AVideo als persönliche Video-Streaming-Site verwenden, empfehle ich, nur die HD-Auflösung zu wählen, um die Kodierungszeit zu verkürzen und Speicherplatz zu sparen. Wenn Sie bereits Videos mit allen 3 Auflösungen kodiert haben, können Sie zum AVideo-Videoverzeichnis (/var/www/AVideo/videos) gehen und Videos mit niedriger Auflösung und SD-Auflösung löschen.
cd /var/www/AVideo/videos/ sudo rm *Low.mp4 sudo rm *SD.mp4
So laden Sie alle Videos von Ihrer Video-Site herunter
Sie können das youtube-dl
verwenden Befehlszeilenprogramm zum Herunterladen aller Videos. Zuerst müssen Sie zum AVideo-Dashboard gehen, dann zur Videolistenseite gehen und nach unten scrollen, auf Ihre Videoliste herunterladen (permalink .txt-Datei) klicken Taste. Sie sehen eine Liste mit URLs für alle Videos.
Öffnen Sie als nächstes ein Terminal und erstellen Sie eine txt-Datei mit einem Texteditor, kopieren Sie die URLs von der Webseite und fügen Sie sie in die Datei ein. Dann können Sie den folgenden Befehl ausführen, um die Videos herunterzuladen. Ersetzen Sie video-list.txt
mit dem eigenen Dateinamen.
youtube-dl -a video-list.txt