このチュートリアルでは、Ubuntu 18.04でAVideo(以前のYouPHPTube)を使用して独自のビデオ共有Webサイトを実行する方法を説明します。 AVideoは、YouTubeやVimeoなどの動画共有ウェブサイトに代わるオープンソースのセルフホスト型です。AVideoを使用すると、ユーザーは動画をサーバーにアップロードしてインターネットと共有できます。
AVideoの機能
- 無制限の同時ライブストリーム。各ライブストリームに無制限のユーザーを接続できます。
- インターネットから直接他のサイトからビデオをインポートしてエンコードする
- ローカルビデオディレクトリからのバルクエンコーディング
- プライベート動画を作成する
- Youtubeと完全に統合された機能、Youtubeとの動画の同期
- マルチメディアファイルの複数の形式をMP4、WebM、およびMP3ファイルにトランスコードします
- Amazon S3(シンプルストレージサービス)をサポートする
- レスポンシブサイトのレイアウト。 AVideoはどのデバイスでも信じられないほどに見えます。 (YouTubeまたはNetfilxスタイルのレイアウトを選択できます。)
- ユーザーチャンネルとユーザープレイリスト
- 好きなチャンネルに登録する
- AVideo Statisticsの最新の指標とレポートを使用して、動画のパフォーマンスを監視できます。
- プラグインを使用してサイトの機能を拡張します。
- SEO最適化
- 利用可能なiOSおよびAndroidアプリ
AVideoサーバーの要件
まず、エンコードプロセスは大量のCPUリソースを使用するため、シングルコアCPUはビデオ共有Webサイトでは実行できないことを知っておく必要があります。
次に、サイトのユーザー数に応じてサーバーの仕様を選択します。
- 自分の動画を共有するためだけに使用する場合は、少なくとも2つのCPUコアと4GBのRAMを搭載したサーバーが必要です。非常に少ないコストで、Contaboから強力なVPS(仮想プライベートサーバー)を購入できます。
- サイトに数十人のユーザーがいると予想される場合は、10個のCPUコア、60 GBのRAM、1 Gbit / sのポート速度、1.6 TBのディスク容量、無制限のトラフィック、わずか26.99のContabo特大VPSを検討できます。ユーロ/月。
- サイトがそれを超えて成長した場合は、専用サーバーを購入する必要があります。
Ubuntu18.04にAVideoをインストールするためのソフトウェア要件
AVideoにはPHPとMySQL/MariaDBが必要です。このチュートリアルに従うには、LAMPスタックまたはLEMPスタックをすでに設定している必要があります。 Apache Webサーバーを使用する場合は、LAMPスタックをインストールします。
- Ubuntu 18.04にLAMP(Apache、MariaDB、PHP)スタックをインストールする方法
Nginx Webサーバーを使用する場合は、LEMPスタックをインストールしてください。
- Ubuntu 18.04にLEMP(Nginx、MariaDB、PHP)スタックをインストールする方法
注 :NginxでのAVideoのサポートは実験的なものにすぎません。 Nginxを使用すると、サイトで問題が発生する可能性があります 。
ドメイン名も必要です。ドメイン名をNameCheapに登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。
AVideoは2つの部分で構成されています。
- 主要部分はフロントエンドストリームサーバーであり、ユーザーは既存の動画を視聴できます。
- もう1つの部分は、ユーザーが動画をアップロードできるようにするエンコーダーです。
パブリックエンコーダーはドメイン名https://encoder1.avideo.com
を使用します 。動画をアップロードするときにユーザーがサイトを離れたくない場合は、プライベートエンコーダーを設定する必要があります。この記事でその方法を紹介します。面倒なことはせずに、始めましょう。
ステップ1:Ubuntu18.04サーバーにAVideoをダウンロードする
SSH経由でUbuntu18.04サーバーにログインします。次に、Webルートディレクトリに移動します。
cd /var/www/
GithubからAVideoストリーマーリポジトリのクローンを作成します。
sudo apt install git sudo git clone https://github.com/WWBN/AVideo.git
次に、ディレクトリに移動します。
cd AVideo/
GithubからAVideoエンコーダリポジトリのクローンを作成します。
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
AVideo-Encoder
として保存されます 。名前をupload
に変更します 、そのため、ユーザーは動画をアップロードするときにこのURLが何のためにあるのかをよりよく理解できます。
sudo mv AVideo-Encoder upload
次に、www-data(Webサーバーユーザー)をWebルートの所有者にする必要があります。
sudo chown www-data:www-data /var/www/AVideo/ -R
ステップ2:依存関係をインストールする
AVideoはFFmpeg
を使用します ビデオをエンコードします。デフォルトのUbuntuリポジトリからFFmpegを簡単にインストールできます。
sudo apt install ffmpeg
マルチメディアファイルでメタ情報を読み書きするには、 libimage-exiftool-perl
をインストールする必要があります パッケージ。
sudo apt install libimage-exiftool-perl
また、いくつかの一般的なPHP拡張機能をインストールする必要があります。
sudo apt install php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-curl php7.2-gd php7.2-xml
他のサイトから動画を取得するには、YouTube-DLをインストールする必要があります。 Ubuntuリポジトリに含まれていますが、古くなっています。 YouTube-DLは、常に最新バージョンのYouTube-DLが含まれているPythonPackageIndexからインストールします。
sudo apt install python3-pip sudo -H pip3 install youtube-dl
最新バージョンを使用することが非常に重要です。そうしないと、他のサイトからビデオをダウンロードできない可能性があります。最新バージョンを自動的にチェックしてインストールするCronジョブを作成できます。
sudo crontab -e
Crontabファイルの最後に次の行を追加して、YouTube-DLを毎日アップグレードしてみてください。
@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null
ステップ3:MariaDBでデータベースとユーザーを作成する
データベースとユーザーを作成する前に、MariaDBのいくつかの設定を変更する必要があります。構成ファイルを編集します。
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
AVideoは大きなインデックスキープレフィックスを使用します データベース内。ただし、 MariaDB 10.1 COMPACT
を使用します 大きなインデックスキープレフィックスをサポートしない行形式。 DYNAMIC
を使用するようにMariaDBを構成できます InnoDB
に次の行を追加することにより、新しいバージョンのMariaDBのデフォルト設定である行形式 [mysqld]
の下のセクション ファイル内のユニット。
# The Antelope file format doesn't support dynamic row format, we must use the # Barracuda file format. innodb_file_format = Barracuda innodb_file_format_max = Barracuda # Dynamic row format is only supported if innodb_file_per_table is set to ON. innodb_file_per_table = ON # Set dynamic as the default row format, which supports large index key prefix. innodb_default_row_format = dynamic # Enable large prefix innodb_large_prefix = ON
ファイルを保存して閉じます。次に、MariaDBを再起動します。
sudo systemctl restart mariadb
次のコマンドを使用して、MariaDBデータベースサーバーにログインします。 MariaDBは現在unix_socket
を使用しているため ユーザーログインを認証するプラグイン。MariaDBのrootパスワードを入力する必要はありません。 mysql
のプレフィックスを付ける必要があります sudo
を使用したコマンド 。
sudo mysql
次に、AVideoのデータベースを作成します。このチュートリアルでは、データベースに AVideo
という名前を付けます 。好きな名前を使用できます。
create database AVideo;
データベースユーザーを作成します。この場合も、このユーザーの好みの名前を使用できます。 your-password
を置き換えます ご希望のパスワードを使用してください。
create user AVideo@localhost identified by 'your-password';
このユーザーにAVideo
に対するすべての権限を付与します データベース。
grant all privileges on AVideo.* to AVideo@localhost;
また、エンコーダー用に別のデータベースを作成する必要があります。
create database AVideoEncoder;
このデータベースのユーザーを作成します。
create user AVideoEncoder@localhost identified by 'your-password';
特権を付与します。
grant all privileges on AVideoEncoder.* to AVideoEncoder@localhost;
特権テーブルをフラッシュして終了します。
flush privileges; exit;
ステップ4:Webサーバーのセットアップ
ApacheまたはNginxWebサーバーを使用できます。
Apache
Apacheが必要な場合は、Nanoなどのコマンドラインテキストエディタを使用してAVideoの仮想ホストファイルを作成します。
sudo nano /etc/apache2/sites-available/avideo.conf
次のテキストをファイルに入れます。赤い色のテキストを実際のデータに置き換えます。このチュートリアルではサブドメインを使用します。必要に応じて、メインドメイン名を使用できます。 DNSレコードマネージャーでドメイン名のDNSAレコードを設定することを忘れないでください。また、ドキュメントのルートディレクトリでは大文字と小文字が区別されるため、末尾にスラッシュを追加しないでください。
<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>
ファイルを保存して閉じます。次に、この仮想ホストを有効にします。
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
次のテキストをファイルに入れます。赤い色のテキストを実際のデータに置き換えます。このチュートリアルではサブドメインを使用します。必要に応じて、メインドメイン名を使用できます。 DNSレコードマネージャーでドメイン名のDNSAレコードを設定することを忘れないでください。また、ドキュメントのルートディレクトリでは大文字と小文字が区別されることに注意してください。
server { listen 80; 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.2-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; } }
ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
次に、 tube.yourdomain.com
にアクセスします セットアップウィザードページ( tube.yourdomain.com/install/index.php
)にリダイレクトされます )。セットアップウィザードに情報を入力する前に、HTTPSを有効にする必要があります。
ステップ5:HTTPSを有効にする
HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu18.04サーバーにインストールします。
sudo apt install certbot
Apacheを使用する場合は、CertbotApacheプラグインもインストールする必要があります。
sudo apt install python3-certbot-apache
そして、このコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com
Nginxを使用する場合は、CertbotNginxプラグインをインストールしてください。
sudo apt install python3-certbot-nginx
次に、次のコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com
どこ
-
-nginx
:nginxプラグインを使用してください。 -
-apache
:Apacheプラグインを使用してください。 -
-agree-tos
:利用規約に同意します。 -リダイレクト
:301リダイレクトでHTTPSを強制します。-
-hsts
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
-staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。
これで、証明書が取得され、自動的にインストールされます。
ステップ6:セットアップウィザードを使用してインストールを終了する
次に、 tube.yourdomain.com/install/index.php
にアクセスします セットアップウィザードが表示されます。左側で、サーバーが要件を満たしているかどうかを確認できます。
Nginxを使用している場合は、次のメッセージを無視できます。
Your server is nginx/1.14.2, you must install Apache.
ご覧のとおり、PHPの post_max_size
少なくとも100Mで、 upload_max_filesize
である必要があります 少なくとも100Mである必要があります。 php.ini
を編集する必要があります 2つの値を変更するファイル。 Apache Webサーバーを使用している場合は、
sudo nano /etc/php/7.2/apache2/php.ini
PHP-FPMでNginxを使用する場合は、php.iniファイルのFPMバージョンを編集する必要があります。
sudo nano /etc/php/7.2/fpm/php.ini
次の2行を見つけます。
post_max_size = 8M upload_max_filesize = 2M
アップロードするビデオファイルのサイズに応じて値を変更します。たとえば、1Gビデオファイルのアップロードを許可する場合は、
post_max_size = 1024M upload_max_filesize = 1024M
ファイルを保存して閉じます。変更を有効にするには、Apacheを再起動します。
sudo systemctl restart apache2
PHP-FPMでNginxを使用している場合は、PHP-FPMを再起動します。
sudo systemctl restart php7.2-fpm
次に、AVideoインストールウィザードページを更新します。サーバーはすべての要件に合格する必要があります。これで右側に、ビデオサイトのタイトルを入力し、システム管理者パスワードを設定できます。以前に作成したAVideoデータベース名、ユーザー、およびパスワードを入力します。 (注:エンコーダーデータベースではなく、メインデータベースを使用する必要があります。大文字と小文字が区別されることにも注意してください。)
今すぐインストール
をクリックします ボタンとAVideoが正常にインストールされているはずです。
次に、 / var / www / AVideo / install /
を削除する必要があります ディレクトリ。
sudo rm /var/www/AVideo/install/ -r
メインページに移動コード>をクリックします ボタンをクリックすると、AVideoのメインページが表示されます。
左側のドロップダウンメニューをクリックして、 admin
としてログインできます。 ユーザーと、少し前に設定したパスワードを使用します。
ステップ7:エンコーダーを設定する
https://tube.yourdomain.com/upload/
にアクセスします 。エンコーダ設定ウィザードにリダイレクトされます。自動的にリダイレクトされない場合は、セットアップウィザードのURLを手動で入力できます。
https://tube.yourdomain.com/upload/install/index.php/
左側には、サーバーがAVideoエンコーダーの要件を満たしているかどうかが表示されます。
Nginxを使用している場合は、次のメッセージを無視できます。
Your server is nginx/1.14.2, you must install Apache.
ご覧のとおり、PHPの max_execution_time
少なくとも7200で、PHP memory_limit
である必要があります 少なくとも512Mである必要があります。 php.ini
を編集する必要があります 2つの値を変更するファイル。 Apache Webサーバーを使用している場合は、
sudo nano /etc/php/7.2/apache2/php.ini
PHP-FPMでNginxを使用する場合は、php.iniファイルのFPMバージョンを編集する必要があります。
sudo nano /etc/php/7.2/fpm/php.ini
次の2行を見つけます。
max_execution_time = 30 memory_limit = 128M
値を変更します。
max_execution_time = 7200 memory_limit = 512M
後でビデオエンコーディングが途中で停止した場合は、 max_execution_time
を増やす必要があることに注意してください。 、またはCPUをアップグレードします。
ファイルを保存して閉じます。変更を有効にするには、Apacheを再起動します。
sudo systemctl restart apache2
PHP-FPMでNginxを使用している場合は、PHP-FPMを再起動します。
sudo systemctl restart php7.2-fpm
次に、AVideoEncoderのインストールウィザードページを更新します。サーバーはすべての要件に合格する必要があります。次に右側に、前に作成したAVideoEncoderデータベース名、ユーザー、およびパスワードを入力する必要があります。大文字と小文字を区別し、ストリーマーサイトの管理者パスワードを入力してください。
[今すぐインストール]ボタンをクリックすると、AVideoエンコーダーがインストールされます。
インストールディレクトリを削除します。
sudo rm /var/www/AVideo/upload/install/ -r
そして、メインページに移動します。
ステップ8:エンコーダーURLを変更する
デフォルトでは、AVideoはビデオのアップロードにパブリックエンコーダーを使用します。独自のエンコーダーを使用するには、(AVideoエンコーダーではなく)AVideoで管理者としてサインインし、左側のサイドバーから管理パネルに移動します。
設定
に移動します ->サイト設定
->高度な構成
。エンコーダーのURLをhttps://tube.yourdomain.com/upload/
に変更します 。設定を保存し、キャッシュディレクトリをクリアして、新しいサイトマップを生成します。
次に、ログアウトして再度ログインします。[ビデオとオーディオのエンコード
]をクリックした場合 右上隅のボタンをクリックすると、ビデオをアップロードするための独自のエンコーダーに移動します。エンコード速度はサーバーのCPUパワーに依存することに注意してください。エンコーダーが動画をアップロードディレクトリ( / var / www / AVideo / upload / videos
)の一時ファイルにコピーするため、RAMはそれほど必要ありません。 。
ステップ9:SMTPを構成する
電子メール(アカウント登録、パスワードのリセットなど)を送信するには、SMTPサーバーを構成する必要があります。独自のメールサーバーを使用してクライアントにメールを送信する場合は、次の記事を確認して独自のメールサーバーを設定してください。 注 新しいクリーンなOSでiRedMailメールサーバーを実行することを強くお勧めします。他のWebアプリケーションがあるOSにiRedMailをインストールすると、失敗し、既存のアプリケーションが破損する可能性があります。
- iRedMailを使用してUbuntu18.04でメールサーバーを簡単にセットアップする方法
SMTPリレーサービスを利用したい場合は、Mailjetをお勧めします。以下のチュートリアルに従って、AVideoサーバーにSMTPリレーを設定できます。
- Mailjetを使用してUbuntuでPostfixSMTPリレーを設定する方法
管理パネル
に移動すると、メール送信をテストできます ->設定
->サイト設定
->詳細設定
、SMTP構成を見つけることができます。次の設定を使用してください。
- SMTPを有効にします。
- SMTP認証を有効にします。
-
tls
を使用する SMTPセキュアで。 -
587
を使用する SMTPポートとして。 - メールサーバーのホスト名を入力します。
- SMTPユーザー名とパスワードを入力します。
保存コード>をクリックします ボタンをクリックして設定を保存し、
Test Email
をクリックします 動作しているかどうかを確認します。
TCPBBRを有効にする
ビデオストリーミングサーバーの場合、以下の記事の手順に従って、LinuxカーネルでTCPBBR輻輳制御アルゴリズムを有効にすることをお勧めします。
- TCPBBRを有効にしてUbuntuネットワークのパフォーマンスを簡単に向上させる方法
モバイルアプリ
AVideo
を検索すると、無料のAndroidアプリまたはiOSアプリをダウンロードできます。 GooglePlayストアまたはYPTMobile
AppleStoreで。ホワイトラベルのモバイルアプリには有料ライセンスが必要です。
トラブルシューティング
AVideoメインページがCSSおよびJavaScriptリソースの一部を読み込めなかった場合
WebルートディレクトリのApacheまたはNginx仮想ホストファイルにスラッシュを追加した可能性があります。使用する代わりに
DocumentRoot /var/www/AVideo/
使用する必要があります
DocumentRoot /var/www/AVideo
メインのウェブサイトが正常に機能していない場合は、 /var/www/AVideo/videos/avideo.log
でログファイルを確認できます。 。エンコーダが正しく機能していない場合は、/var/www/AVideo/upload/videos/avideo.log
でログファイルを確認できます。 。
その他のヒント
ビデオをエンコードするときは、解像度(低、SD、HD)を選択できます。 AVideoを個人のビデオストリーミングサイトとして使用する場合は、エンコード時間を短縮し、ディスク容量を節約するためにのみ、HD解像度を選択することをお勧めします。すでに3つの解像度すべてにビデオをエンコードしている場合は、AVideoビデオディレクトリ(/ var / www / AVideo / videos)に移動して、低解像度およびSD解像度のビデオを削除できます。
cd /var/www/AVideo/videos/ sudo rm *Low.mp4 sudo rm *SD.mp4
ビデオサイトからすべてのビデオをダウンロードする方法
youtube-dl
を使用できます すべてのビデオをダウンロードするコマンドラインユーティリティ。まず、AVideoダッシュボードに移動し、次にビデオリストページに移動して一番下までスクロールし、ビデオリスト(パーマリンク.txtファイル)をダウンロードをクリックする必要があります。 ボタン。すべての動画のURLのリストが表示されます。
次に、ターミナルを開き、テキストエディタでtxtファイルを作成し、WebページからURLをコピーして、ファイルに貼り付けます。次に、次のコマンドを実行してビデオをダウンロードできます。 video-list.txt
を置き換えます 自分のファイル名で。
youtube-dl -a video-list.txt