GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat AVideo/YouPHPTube na server Ubuntu 20.04

Tento tutoriál vám ukáže, jak spustit svůj vlastní web pro sdílení videa pomocí AVideo (dříve YouPHPTube) na Ubuntu 20.04. AVideo je open-source, samostatně hostovaná alternativa k webům pro sdílení videí, jako je YouTube, Vimeo atd. S AVideo mohou uživatelé nahrávat videa na váš server a sdílet je s internetem.

Funkce AVideo

  • Neomezené a simultánní živé přenosy a ke každému živému přenosu můžete mít připojen neomezený počet uživatelů.
  • Importujte a kódujte videa z jiných stránek přímo z internetu
  • Hromadné kódování z místního adresáře videa
  • Vytvářejte soukromá videa
  • Zcela integrovaná funkce s YouTube, synchronizace vašich videí s Youtube
  • Překódujte více formátů multimediálních souborů do souborů MP4, WebM a MP3
  • Podpora Amazon S3 (Simple Storage Service)
  • Responzivní rozvržení webu. AVideo vypadá neuvěřitelně na jakémkoli zařízení. (Můžete si vybrat rozvržení ve stylu YouTube nebo Netfilx.)
  • Uživatelské kanály a uživatelské seznamy videí
  • Přihlaste se k odběru kanálů, které se vám líbí
  • Výkon svých videí můžete sledovat pomocí aktuálních metrik a přehledů v AVideo Statistics.
  • Rozšiřte funkce webu pomocí pluginů.
  • Optimalizováno pro SEO
  • K dispozici jsou aplikace pro iOS a Android

Požadavky na AVideo server

Zaprvé byste měli vědět, že jednojádrový procesor není pro web pro sdílení videa životaschopný, protože proces kódování bude spotřebovávat hodně prostředků CPU.

Poté vyberte specifikace serveru v souladu s počtem uživatelů, které má váš web.

  • Pokud jej chcete používat pouze ke sdílení vlastních videí, potřebujete server s alespoň 2 jádry CPU a 4 GB RAM. Můžete si koupit výkonný VPS (virtuální privátní server) od společnosti Contabo s velmi nízkou cenou.
  • Pokud očekáváte, že váš web bude mít desítky uživatelů, můžete zvážit Contabo extra velký VPS, který má 10 CPU jader, 60 GB RAM, rychlost portu 1 Gbit/s, 1,6 TB místa na disku, neomezený provoz, ale stojí pouhých 26,99 eur/měsíc.
  • Až se vaše stránky rozrostou, měli byste si zakoupit dedikovaný server.

Softwarové požadavky pro instalaci AVideo na Ubuntu 20.04

AVideo vyžaduje PHP a MySQL/MariaDB. Abyste mohli postupovat podle tohoto návodu, měli byste již nastavit zásobník LAMP nebo zásobník LEMP. Pokud dáváte přednost použití webového serveru Apache, nainstalujte si zásobník LAMP.

  • Jak nainstalovat zásobník LAMP (Apache, MariaDB, PHP) na Ubuntu 20.04

Pokud dáváte přednost použití webového serveru Nginx, nainstalujte LEMP stack.

  • Jak nainstalovat zásobník LEMP (Nginx, MariaDB, PHP) na Ubuntu 20.04

Poznámka :Podpora AVideo s Nginx je pouze experimentální. Pokud používáte Nginx, váš web může mít problémy .

Potřebujete také název domény. Zaregistroval jsem své doménové jméno na NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

AVideo se skládá ze dvou částí.

  • Hlavní částí je front-end stream server, který uživatelům umožňuje sledovat existující videa.
  • Druhou částí je kodér, který uživatelům umožňuje nahrávat videa.

Veřejný kodér používá název domény https://encoder1.avideo.com . Pokud nechcete, aby uživatelé při nahrávání videí opouštěli váš web, musíte si nastavit soukromý kodér. Jak na to, vám ukážu v tomto článku. Bez dalších okolků můžeme začít.

Krok 1:Stáhněte si AVideo na serveru Ubuntu 20.04

Přihlaste se ke svému serveru Ubuntu 20.04 přes SSH. Poté přejděte do kořenového adresáře webu.

cd /var/www/

Klonujte úložiště streamerů AVideo z Github.

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

Poté přejděte do adresáře.

cd AVideo/

Klonujte úložiště kodéru AVideo z Github.

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

Bude uložen jako AVideo-Encoder . Přejmenujeme jej na upload , takže uživatelé mohou mít při nahrávání videí lepší představu o tom, k čemu tato adresa URL slouží.

sudo mv AVideo-Encoder upload

Dále musíme udělat z www-data (uživatele webového serveru) vlastníka webového kořenového adresáře.

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

Krok 2:Instalace závislostí

AVideo používá FFmpeg pro kódování videí. FFmpeg můžeme snadno nainstalovat z výchozího úložiště Ubuntu.

sudo apt install ffmpeg

Abychom mohli číst a zapisovat metainformace v multimediálních souborech, musíme nainstalovat libimage-exiftool-perl balíček.

sudo apt install libimage-exiftool-perl

Musíte také nainstalovat některá běžná rozšíření 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

Abychom mohli načítat videa z jiných webů, musíme nainstalovat YouTube-DL. Přestože je součástí úložiště Ubuntu, je zastaralý. Nainstalujeme YouTube-DL z Python Package Index, který vždy obsahuje nejnovější verzi YouTube-DL.

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

Je velmi důležité, abyste používali nejnovější verzi, jinak možná nebudete moci stahovat videa z jiných stránek. Můžeme vytvořit úlohu Cron pro automatickou kontrolu a instalaci nejnovější verze.

sudo crontab -e

Přidejte následující řádek na konec souboru Crontab a zkuste denně aktualizovat YouTube-DL.

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

Krok 3:Vytvořte databázi a uživatele v MariaDB

Přihlaste se k databázovému serveru MariaDB pomocí následujícího příkazu. Protože MariaDB nyní používá unix_socket plugin pro ověření přihlášení uživatele, není nutné zadávat root heslo MariaDB. Potřebujeme pouze předponu mysql příkaz pomocí sudo .

sudo mysql

Poté vytvořte databázi pro AVideo. Tento tutoriál pojmenuje databázi AVideo . Můžete použít jakékoli jméno.

create database AVideo;

Vytvořte uživatele databáze. Opět můžete pro tohoto uživatele použít preferované jméno. Nahraďte your-password s vaším preferovaným heslem.

create user AVideo@localhost identified by 'your-password';

Udělte tomuto uživateli všechna oprávnění k AVideo databáze.

grant all privileges on AVideo.* to AVideo@localhost;

Potřebujeme také vytvořit samostatnou databázi pro kodér.

create database AVideoEncoder;

Vytvořte uživatele pro tuto databázi.

create user AVideoEncoder@localhost identified by 'your-password';

Udělit oprávnění.

grant all privileges on AVideoEncoder.* to AVideoEncoder@localhost;

Vyprázdněte tabulku oprávnění a ukončete.

flush privileges;

exit;

Krok 4:Nastavení webového serveru

Můžeme použít webový server Apache nebo Nginx.

Apache

Pokud dáváte přednost Apache, vytvořte virtuální hostitelský soubor pro AVideo pomocí textového editoru příkazového řádku, jako je Nano.

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

Do souboru vložte následující text. Nahraďte červeně zbarvený text svými skutečnými daty. V tomto tutoriálu používám subdoménu. Pokud chcete, můžete použít hlavní název domény. Nezapomeňte vytvořit záznam DNS A pro název domény ve správci záznamů DNS. Všimněte si také, že kořenový adresář dokumentu rozlišuje velká a malá písmena a na konec byste neměli přidávat lomítko.

<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>

Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele.

sudo a2ensite avideo.conf

Musíme povolit modul přepisování.

sudo a2enmod rewrite

Restartujte Apache, aby se změny projevily.

sudo systemctl restart apache2

Nyní navštivte tube.yourdomain.com a budete přesměrováni na stránku průvodce nastavením (tube.yourdomain.com/install/index.php ). Pokud místo průvodce nastavením vidíte výchozí stránku Apache, musíte výchozí virtuální hostitel zakázat.

sudo a2dissite 000-default.conf

A restartujte Apache.

Před zadáním jakýchkoli informací do průvodce nastavením musíme povolit HTTPS.

Nginx

Pokud dáváte přednost Nginx, vytvořte avideo.conf soubor v /etc/nginx/conf.d/ adresář.

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

Do souboru vložte následující text. Nahraďte červeně zbarvený text svými skutečnými daty. V tomto tutoriálu používám subdoménu. Pokud chcete, můžete použít hlavní název domény. Nezapomeňte vytvořit záznam DNS A pro název domény ve správci záznamů DNS. Všimněte si také, že kořenový adresář dokumentu rozlišuje malá a velká písmena.

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;
  }

}

Uložte a zavřete soubor. Poté otestujte konfiguraci Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

Nyní navštivte tube.yourdomain.com a budete přesměrováni na stránku průvodce nastavením (tube.yourdomain.com/install/index.php ). Před zadáním jakýchkoli informací do průvodce nastavením musíme povolit HTTPS.

Krok 5:Povolení HTTPS

Pro šifrování HTTP provozu můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na server Ubuntu 20.04.

sudo apt install certbot

Pokud používáte Apache, musíte si také nainstalovat plugin Certbot Apache.

sudo apt install python3-certbot-apache

A spusťte tento příkaz, abyste získali a nainstalovali certifikát TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com

Pokud používáte Nginx, nainstalujte si plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com

Kde

  • --nginx :Použijte plugin nginx.
  • --apache :Použijte plugin Apache.
  • --agree-tos :Souhlas se smluvními podmínkami.
  • --redirect :Vynutit HTTPS přesměrováním 301.
  • --hsts :Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.
  • --staple-ocsp :Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.

Certifikát by nyní měl být získán a automaticky nainstalován.

Krok 6:Dokončete instalaci pomocí průvodce nastavením

Nyní přejděte na tube.yourdomain.com a zobrazí se průvodce nastavením. Na levé straně můžete vidět, zda váš server splňuje požadavky.

Pokud používáte Nginx, můžete následující zprávu ignorovat.

Your server is nginx/1.14.2, you must install Apache.

Jak můžete vidět, PHP post_max_size by měla být alespoň 100 milionů a upload_max_filesize by měla být alespoň 100 mil. Musíme upravit php.ini soubor pro změnu dvou hodnot. Pokud používáte webový server Apache, pak

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

Pokud používáte Nginx s PHP-FPM, musíte upravit verzi FPM souboru php.ini.

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

Najděte následující dva řádky.

post_max_size = 8M
upload_max_filesize = 2M

Změňte hodnoty podle velikosti souboru videa, který se chystáte nahrát. Pokud například povolíte nahrávání souboru videa 1G, pak

post_max_size = 1024M
upload_max_filesize = 1024M

Uložte a zavřete soubor. Restartujte Apache, aby se změny projevily.

sudo systemctl restart apache2

Pokud používáte Nginx s PHP-FPM, restartujte PHP-FPM.

sudo systemctl restart php7.4-fpm

Nyní obnovte stránku průvodce instalací AVideo. Váš server by měl splňovat všechny požadavky. Nyní na pravé straně můžete zadat název stránky s videem a nastavit heslo správce systému. Zadejte název databáze AVideo, uživatele a heslo, které jste vytvořili dříve. (Poznámka:Měli byste použít hlavní databázi, nikoli databázi kodéru. Také si uvědomte, že se rozlišují velká a malá písmena.)

Klikněte na Install now a AVideo by mělo být úspěšně nainstalováno.

Nyní musíme odstranit /var/www/AVideo/install/ adresář.

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

Klikněte na Go to the main page a zobrazí se hlavní stránka AVideo.

Můžete kliknout na rozbalovací nabídku vlevo a přihlásit se jako admin uživatele a s heslem, které jste před chvílí nastavili.

Krok 7:Nastavení kodéru

Přejděte na https://tube.yourdomain.com/upload/ . Budete přesměrováni na průvodce nastavením kodéru. Pokud nebudete automaticky přesměrováni, můžete ručně zadat adresu URL průvodce nastavením.

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

Na levé straně se zobrazí, zda váš server splňuje požadavky AVideo Encoder.

Pokud používáte Nginx, můžete následující zprávu ignorovat.

Your server is nginx/1.14.2, you must install Apache.

Jak můžete vidět PHP max_execution_time by mělo být alespoň 7200 a PHP memory_limit by mělo být alespoň 512 milionů. Musíme upravit php.ini soubor pro změnu dvou hodnot. Pokud používáte webový server Apache, pak

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

Pokud používáte Nginx s PHP-FPM, musíte upravit verzi FPM souboru php.ini.

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

Najděte následující dva řádky.

max_execution_time = 30
memory_limit = 128M

Změňte hodnoty.

max_execution_time = 7200
memory_limit = 512M

Pamatujte, že pokud se později kódování videa zastaví v polovině, musíte zvýšit max_execution_time nebo upgradujte svůj CPU.

Uložte a zavřete soubor. Restartujte Apache, aby se změny projevily.

sudo systemctl restart apache2

Pokud používáte Nginx s PHP-FPM, restartujte PHP-FPM.

sudo systemctl restart php7.4-fpm

Nyní obnovte stránku průvodce instalací AVideo Encoder. Váš server by měl splňovat všechny požadavky. Nyní na pravé straně musíte zadat název databáze AVideoEncoder, uživatele a heslo, které jste vytvořili dříve. Dejte pozor, aby se rozlišovala malá a velká písmena a zadejte heslo správce webu streameru.

Klikněte na tlačítko Install Now a AVideo Encoder se nainstaluje.

Odeberte instalační adresář.

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

A přejděte na hlavní stránku.

Krok 8:Změňte adresu URL kodéru

Ve výchozím nastavení používá AVideo pro nahrávání videí veřejný kodér. Chcete-li použít svůj vlastní kodér, přihlaste se jako správce v AVideo (nikoli AVideo Encoder) a přejděte na panel správce z levého postranního panelu.

Přejděte do settings -> site settings -> advanced configuration . Změňte adresu URL kodéru na https://tube.yourdomain.com/upload/ . Uložte nastavení, vymažte adresář mezipaměti a vygenerujte novou mapu webu.

Nyní se odhlaste a znovu přihlaste. Pokud kliknete na encode video and audio tlačítko v pravém horním rohu, budete přesměrováni do svého vlastního kodéru, kde můžete nahrát videa. Je třeba poznamenat, že rychlost kódování závisí na výkonu CPU vašeho serveru. Nevyžaduje mnoho paměti RAM, protože kodér zkopíruje video do dočasného souboru v adresáři pro nahrávání (/var/www/AVideo/upload/videos ).

Krok 9:Konfigurace SMTP

Chcete-li odesílat e-maily (jako je registrace účtu, resetování hesla atd.), musíte nakonfigurovat server SMTP. Chcete-li k odesílání e-mailů klientům používat svůj vlastní poštovní server, přečtěte si prosím následující článek o nastavení vlastního poštovního serveru. Poznámka že vřele doporučuji provozovat poštovní server iRedMail na čerstvém čistém OS. Instalace iRedMail na OS, který má jiné webové aplikace, může selhat a pravděpodobně přerušit stávající aplikace.

  • Jak snadno nastavit e-mailový server na Ubuntu 20.04 pomocí iRedMail

Pokud byste chtěli využít službu přenosu SMTP, doporučuji Mailjet. Chcete-li nastavit přenos SMTP na serveru AVideo, postupujte podle níže uvedeného návodu.

  • Jak nastavit přenos Postfix SMTP na Ubuntu s Mailjet

Odesílání e-mailů můžete otestovat na admin panel -> Setttings -> Site Settings -> Advanced Configuration , najdete konfiguraci SMTP. Použijte následující nastavení.

  • Povolte SMTP.
  • Povolte ověření SMTP.
  • Použijte tls v SMTP Secure.
  • Použijte 587 jako port SMTP.
  • Zadejte název hostitele poštovního serveru.
  • Zadejte uživatelské jméno a heslo SMTP.

Klikněte na Save uložte nastavení a poté klikněte na Test Email abyste zjistili, zda to funguje.

Povolit TCP BBR

U serveru pro streamování videa se doporučuje povolit algoritmus řízení přetížení TCP BBR v jádře Linuxu podle pokynů v článku níže.

  • Jak snadno zvýšit výkon sítě Ubuntu povolením TCP BBR

Mobilní aplikace

Bezplatnou aplikaci pro Android nebo iOS si můžete stáhnout vyhledáním AVideo v Obchodě Google Play nebo YPT Mobile v Apple Store. Mobilní aplikace s bílým štítkem vyžaduje placenou licenci.

Odstraňování problémů

Pokud se hlavní stránce AVideo nepodařilo načíst některé zdroje CSS a JavaScript,

Je pravděpodobné, že jste přidali další lomítko do souboru virtuálního hostitele Apache nebo Nginx pro kořenový webový adresář. Místo použití

DocumentRoot /var/www/AVideo/

Měli byste použít

DocumentRoot /var/www/AVideo

Pokud hlavní web nefunguje správně, můžete zkontrolovat soubor protokolu na adrese /var/www/AVideo/videos/youphptube.log . Pokud váš kodér nefunguje správně, můžete zkontrolovat soubor protokolu na adrese /var/www/AVideo/upload/videos/youphptube.log .

Další informace

Při kódování videí si můžete vybrat rozlišení (nízká, SD, HD). Pokud používáte AVideo jako osobní web pro streamování videa, doporučuji zvolit rozlišení HD pouze pro zkrácení doby kódování a úsporu místa na disku. Pokud jste již zakódovali videa do všech 3 rozlišení, můžete přejít do adresáře videa AVideo (/var/www/AVideo/videos) a smazat videa s nízkým rozlišením a rozlišením SD.

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

Jak stáhnout všechna videa z vašeho webu

Můžete použít youtube-dl nástroj příkazového řádku ke stažení všech videí. Nejprve musíte přejít na řídicí panel AVideo, poté přejít na stránku se seznamem videí a posouvat se dolů a kliknout na stáhnout seznam videí (soubor .txt s trvalým odkazem) knoflík. Zobrazí se seznam adres URL všech videí.

Dále otevřete terminál a vytvořte soubor txt pomocí textového editoru, zkopírujte adresy URL z webové stránky a vložte je do souboru. Poté můžete spustit následující příkaz ke stažení videí. Nahraďte video-list.txt s vaším vlastním názvem souboru.

youtube-dl -a video-list.txt

Ubuntu
  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Jak nainstalovat Minecraft Server na Ubuntu 18.04

  3. Jak nainstalovat Zimbru 8.6 na server Ubuntu 14.04

  1. Jak nainstalovat Nginx na Ubuntu 20.04

  2. Jak nainstalovat MariaDB na Ubuntu 20.04

  3. Jak nainstalovat VNC Server na Ubuntu 14.04

  1. Jak nainstalovat OpenSIPS Server na Ubuntu 15.04

  2. Jak nainstalovat Consul Server na Ubuntu 16.04

  3. Jak nainstalovat Zabbix na Ubuntu 18.04