Tutorial ini akan menunjukkan cara menjalankan situs web berbagi video Anda sendiri dengan AVideo (sebelumnya YouPHPTube) di Ubuntu 18.04. AVideo adalah sumber terbuka, alternatif yang dihosting sendiri untuk situs web berbagi video seperti YouTube, Vimeo, dll. Dengan AVideo, pengguna dapat mengunggah video ke server Anda dan membagikannya ke Internet.
Fitur Video
- Streaming langsung tanpa batas dan simultan dan Anda dapat menghubungkan pengguna tanpa batas ke setiap streaming langsung.
- Impor dan enkode video dari situs lain langsung dari Internet
- Encoding massal dari direktori video lokal
- Buat video pribadi
- Fungsi yang sepenuhnya terintegrasi dengan Youtube, menyinkronkan video Anda dengan Youtube
- Transcode beberapa format file multimedia ke file MP4, WebM dan MP3
- Mendukung Amazon S3 (Layanan Penyimpanan Sederhana)
- Tata letak situs responsif. AVideo terlihat luar biasa di perangkat apa pun. (Anda dapat memilih tata letak gaya YouTube atau Netfilx.)
- Saluran pengguna dan daftar putar pengguna
- Berlangganan saluran yang Anda suka
- Anda dapat memantau performa video Anda dengan metrik dan laporan terbaru di Statistik AVideo.
- Perluas fungsionalitas situs dengan plugin.
- SEO Dioptimalkan
- Aplikasi iOS dan Android tersedia
Persyaratan Server AVideo
Pertama, Anda harus tahu bahwa CPU inti tunggal tidak dapat digunakan untuk situs web berbagi video, karena proses penyandian akan menggunakan banyak sumber daya CPU.
Kemudian pilih spesifikasi server sesuai dengan jumlah pengguna yang dimiliki situs Anda.
- Jika Anda hanya ingin menggunakannya untuk berbagi video Anda sendiri, Anda memerlukan server dengan setidaknya 2 inti CPU dan RAM 4GB. Anda dapat membeli VPS (server pribadi virtual) yang kuat dari Contabo dengan biaya yang sangat murah.
- Jika Anda berharap situs Anda memiliki lusinan pengguna, maka Anda dapat mempertimbangkan VPS ekstra besar Contabo, yang memiliki 10 inti CPU, RAM 60GB, kecepatan port 1Gbit/dtk, ruang disk 1,6TB, lalu lintas tak terbatas tetapi biayanya hanya 26,99 Euro/bulan.
- Bila situs Anda berkembang lebih dari itu, Anda harus membeli server khusus.
Persyaratan Perangkat Lunak untuk Menginstal AVideo di Ubuntu 18.04
AVideo membutuhkan PHP dan MySQL/MariaDB. Untuk mengikuti tutorial ini, Anda seharusnya sudah menyiapkan tumpukan LAMP atau tumpukan LEMP. Jika Anda lebih suka menggunakan server web Apache, instal tumpukan LAMP.
- Cara Menginstal tumpukan LAMP (Apache, MariaDB, PHP) di Ubuntu 18.04
Jika Anda lebih suka menggunakan server web Nginx, maka instal LEMP stack.
- Cara Menginstal tumpukan LEMP (Nginx, MariaDB, PHP) di Ubuntu 18.04
Catatan :Dukungan AVideo dengan Nginx hanya eksperimental. Situs Anda mungkin mengalami masalah jika Anda menggunakan Nginx .
Anda juga memerlukan nama domain. Saya mendaftarkan nama domain saya di NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.
AVideo terdiri dari dua bagian.
- Bagian utama adalah server streaming ujung depan, yang memungkinkan pengguna untuk menonton video yang ada.
- Bagian lainnya adalah encoder, yang memungkinkan pengguna untuk mengupload video mereka.
Encoder publik menggunakan nama domain https://encoder1.avideo.com
. Jika Anda tidak ingin pengguna meninggalkan situs Anda saat mengunggah video, Anda perlu menyiapkan pembuat enkode pribadi Anda. Saya akan menunjukkan caranya di artikel ini. Tanpa basa-basi lagi, mari kita mulai.
Langkah 1:Unduh AVideo di Server Ubuntu 18.04
Masuk ke server Ubuntu 18.04 Anda melalui SSH. Lalu pergi ke direktori root web.
cd /var/www/
Kloning repositori streamer AVideo dari Github.
sudo apt install git sudo git clone https://github.com/WWBN/AVideo.git
Kemudian masuk ke direktori.
cd AVideo/
Kloning repositori encoder AVideo dari Github.
sudo git clone https://github.com/WWBN/AVideo-Encoder.git
Ini akan disimpan sebagai AVideo-Encoder
. Kami mengganti namanya menjadi upload
, sehingga pengguna dapat memiliki gagasan yang lebih baik tentang kegunaan URL ini saat mengupload video.
sudo mv AVideo-Encoder upload
Selanjutnya, kita perlu menjadikan www-data (pengguna web server) sebagai pemilik root web.
sudo chown www-data:www-data /var/www/AVideo/ -R
Langkah 2:Instal Dependensi
AVideo menggunakan FFmpeg
untuk mengkodekan video. Kita dapat dengan mudah menginstal FFmpeg dari repositori default Ubuntu.
sudo apt install ffmpeg
Untuk membaca dan menulis informasi meta dalam file multimedia, kita perlu menginstal libimage-exiftool-perl
paket.
sudo apt install libimage-exiftool-perl
Anda juga perlu menginstal beberapa ekstensi PHP umum.
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
Untuk mengambil video dari situs lain, kita perlu menginstal YouTube-DL. Meskipun termasuk dalam repositori Ubuntu, tetapi sudah usang. Kami akan menginstal YouTube-DL dari Python Package Index, yang selalu berisi YouTube-DL versi terbaru.
sudo apt install python3-pip sudo -H pip3 install youtube-dl
Sangat penting bagi Anda untuk menggunakan versi terbaru, atau Anda mungkin tidak dapat mengunduh video dari situs lain. Kami dapat membuat tugas Cron untuk memeriksa dan menginstal versi terbaru secara otomatis.
sudo crontab -e
Tambahkan baris berikut di akhir file Crontab untuk mencoba memutakhirkan YouTube-DL setiap hari.
@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null
Langkah 3:Buat Database dan Pengguna di MariaDB
Sebelum membuat database dan pengguna, kita perlu mengubah beberapa pengaturan di MariaDB. Edit file konfigurasi.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
AVideo akan menggunakan awalan kunci indeks besar dalam database. Namun, MariaDB 10.1 menggunakan COMPACT
format baris, yang tidak mendukung awalan kunci indeks besar. Kita dapat mengkonfigurasi MariaDB untuk menggunakan DYNAMIC
format baris, yang merupakan pengaturan default di versi MariaDB yang lebih baru, dengan menambahkan baris berikut di InnoDB
bagian di bawah [mysqld]
unit dalam file.
# 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
Simpan dan tutup file. Kemudian restart MariaDB.
sudo systemctl restart mariadb
Masuk ke server database MariaDB dengan perintah berikut. Karena MariaDB sekarang menggunakan unix_socket
plugin untuk otentikasi login pengguna, tidak perlu memasukkan kata sandi root MariaDB. Kita hanya perlu mengawali mysql
perintah dengan sudo
.
sudo mysql
Kemudian buat database untuk AVideo. Tutorial ini memberi nama database AVideo
. Anda dapat menggunakan nama apa pun yang Anda suka.
create database AVideo;
Buat pengguna basis data. Sekali lagi, Anda dapat menggunakan nama pilihan Anda untuk pengguna ini. Ganti your-password
dengan kata sandi pilihan Anda.
create user AVideo@localhost identified by 'your-password';
Berikan pengguna ini semua hak istimewa di AVideo
basis data.
grant all privileges on AVideo.* to AVideo@localhost;
Kita juga perlu membuat database terpisah untuk encoder.
create database AVideoEncoder;
Buat pengguna untuk database ini.
create user AVideoEncoder@localhost identified by 'your-password';
Berikan hak istimewa.
grant all privileges on AVideoEncoder.* to AVideoEncoder@localhost;
Bersihkan tabel hak istimewa dan keluar.
flush privileges; exit;
Langkah 4:Menyiapkan Server Web
Kita bisa menggunakan server web Apache atau Nginx.
Apache
Jika Anda lebih suka Apache, buat file host virtual untuk AVideo dengan editor teks baris perintah seperti Nano.
sudo nano /etc/apache2/sites-available/avideo.conf
Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Saya menggunakan subdomain dalam tutorial ini. Anda dapat menggunakan nama domain utama Anda jika Anda mau. Jangan lupa untuk mengatur DNS A record untuk nama domain di DNS record manager Anda. Juga, perhatikan bahwa direktori root dokumen peka terhadap huruf besar-kecil dan Anda tidak boleh menambahkan garis miring di akhir.
<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>
Simpan dan tutup file. Kemudian aktifkan host virtual ini.
sudo a2ensite avideo.conf
Kita perlu mengaktifkan modul rewrite.
sudo a2enmod rewrite
Mulai ulang Apache agar perubahan diterapkan.
sudo systemctl restart apache2
Sekarang kunjungi tube.yourdomain.com
dan Anda akan diarahkan ke halaman wizard pengaturan (tube.yourdomain.com/install/index.php
). Jika Anda melihat halaman Apache default alih-alih wizard pengaturan, maka Anda harus menonaktifkan virtual host default.
sudo a2dissite 000-default.conf
Dan restart Apache.
Sebelum memasukkan informasi apa pun di wizard penyiapan, kita harus mengaktifkan HTTPS.
Nginx
Jika Anda lebih suka Nginx, buat avideo.conf
file di /etc/nginx/conf.d/
direktori.
sudo nano /etc/nginx/conf.d/avideo.conf
Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Saya menggunakan subdomain dalam tutorial ini. Anda dapat menggunakan nama domain utama Anda jika Anda mau. Jangan lupa untuk mengatur DNS A record untuk nama domain di DNS record manager Anda. Juga, perhatikan bahwa direktori root dokumen peka terhadap huruf besar/kecil.
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; } }
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Sekarang kunjungi tube.yourdomain.com
dan Anda akan diarahkan ke halaman wizard pengaturan (tube.yourdomain.com/install/index.php
). Sebelum memasukkan informasi apa pun di wizard penyiapan, kita harus mengaktifkan HTTPS.
Langkah 5:Mengaktifkan HTTPS
Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu 18.04.
sudo apt install certbot
Jika Anda menggunakan Apache, Anda juga perlu menginstal plugin Certbot Apache.
sudo apt install python3-certbot-apache
Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com
Jika Anda menggunakan Nginx, instal plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com
Dimana
--nginx
:Gunakan plugin nginx.--apache
:Gunakan plugin Apache.--agree-tos
:Menyetujui persyaratan layanan.--redirect
:Memaksa HTTPS dengan pengalihan 301.--hsts
:Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.--staple-ocsp
:Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.
Langkah 6:Selesaikan Instalasi dengan Setup Wizard
Sekarang buka tube.yourdomain.com/install/index.php
dan wizard pengaturan akan muncul. Di sisi kiri, Anda dapat melihat apakah server Anda memenuhi persyaratan.
Jika Anda menggunakan Nginx, Anda dapat mengabaikan pesan berikut.
Your server is nginx/1.14.2, you must install Apache.
Seperti yang Anda lihat, post_max_size
PHP minimal harus 100 juta dan upload_max_filesize
harus minimal 100M. Kita perlu mengedit php.ini
file untuk mengubah dua nilai. Jika Anda menggunakan server web Apache, maka
sudo nano /etc/php/7.2/apache2/php.ini
Jika Anda menggunakan Nginx dengan PHP-FPM, maka Anda perlu mengedit file php.ini versi FPM.
sudo nano /etc/php/7.2/fpm/php.ini
Temukan dua baris berikut.
post_max_size = 8M upload_max_filesize = 2M
Ubah nilainya sesuai dengan ukuran file video yang akan Anda unggah. Misalnya, jika Anda mengizinkan pengunggahan file video 1G, maka
post_max_size = 1024M upload_max_filesize = 1024M
Simpan dan tutup file. Mulai ulang Apache agar perubahan diterapkan.
sudo systemctl restart apache2
Jika Anda menggunakan Nginx dengan PHP-FPM, mulai ulang PHP-FPM.
sudo systemctl restart php7.2-fpm
Sekarang segarkan halaman wizard penginstalan AVideo. Server Anda harus memenuhi semua persyaratan. Sekarang di sisi kanan, Anda dapat memasukkan judul situs video Anda, dan mengatur kata sandi admin sistem. Masukkan nama database AVideo, pengguna dan kata sandi yang Anda buat sebelumnya. (Catatan:Anda harus menggunakan database utama, bukan database encoder. Perhatikan juga case-sensitive.)
Klik tombol Install now
tombol dan AVideo harus berhasil dipasang.
Sekarang kita perlu menghapus /var/www/AVideo/install/
direktori.
sudo rm /var/www/AVideo/install/ -r
Klik tombol Go to the main page
dan Anda akan melihat halaman utama AVideo.
Anda dapat mengklik menu tarik-turun di sebelah kiri dan login sebagai admin
pengguna dan dengan kata sandi yang Anda tetapkan beberapa saat yang lalu.
Langkah 7:Siapkan Encoder
Buka https://tube.yourdomain.com/upload/
. Anda akan diarahkan ke wizard penyiapan Encoder. Jika Anda tidak dialihkan secara otomatis, Anda dapat memasukkan URL wizard penyiapan secara manual.
https://tube.yourdomain.com/upload/install/index.php/
Sisi kiri akan menunjukkan kepada Anda apakah server Anda memenuhi persyaratan AVideo Encoder.
Jika Anda menggunakan Nginx, Anda dapat mengabaikan pesan berikut.
Your server is nginx/1.14.2, you must install Apache.
Seperti yang Anda lihat PHP max_execution_time
minimal harus 7200 dan PHP memory_limit
harus minimal 512M. Kita perlu mengedit php.ini
file untuk mengubah dua nilai. Jika Anda menggunakan server web Apache, maka
sudo nano /etc/php/7.2/apache2/php.ini
Jika Anda menggunakan Nginx dengan PHP-FPM, maka Anda perlu mengedit file php.ini versi FPM.
sudo nano /etc/php/7.2/fpm/php.ini
Temukan dua baris berikut.
max_execution_time = 30 memory_limit = 128M
Ubah nilainya.
max_execution_time = 7200 memory_limit = 512M
Perhatikan bahwa jika penyandian video nanti berhenti di tengah jalan, Anda perlu menambah max_execution_time
, atau tingkatkan CPU Anda.
Simpan dan tutup file. Mulai ulang Apache agar perubahan diterapkan.
sudo systemctl restart apache2
Jika Anda menggunakan Nginx dengan PHP-FPM, mulai ulang PHP-FPM.
sudo systemctl restart php7.2-fpm
Sekarang segarkan halaman wizard penginstalan AVideo Encoder. Server Anda harus memenuhi semua persyaratan. Sekarang di sisi kanan, Anda harus memasukkan nama database AVideoEncoder, pengguna dan kata sandi yang Anda buat sebelumnya. Waspadai huruf besar-kecil dan masukkan kata sandi admin situs streamer.
Klik tombol Instal Sekarang dan AVideo Encoder akan diinstal.
Hapus direktori instal.
sudo rm /var/www/AVideo/upload/install/ -r
Dan pergi ke halaman utama.
Langkah 8 :Ubah URL Encoder
Secara default, AVideo menggunakan encoder publik untuk mengupload video. Untuk menggunakan pembuat enkode Anda sendiri, masuk sebagai admin di AVideo (bukan AVideo Encoder) dan buka panel admin dari bilah sisi kiri.
Buka settings
-> site settings
-> advanced configuration
. Ubah URL Encoder menjadi https://tube.yourdomain.com/upload/
. Simpan pengaturan, bersihkan direktori cache dan buat peta situs baru.
Sekarang logout dan login kembali. Jika Anda mengklik encode video and audio
tombol di sudut kanan atas, Anda akan dibawa ke encoder Anda sendiri untuk mengunggah video. Perlu dicatat bahwa kecepatan pengkodean tergantung pada kekuatan CPU server Anda. Tidak memerlukan banyak RAM karena encoder akan menyalin video ke file sementara di direktori unggah (/var/www/AVideo/upload/videos
).
Langkah 9:Konfigurasi SMTP
Untuk mengirim email (seperti pendaftaran akun, reset kata sandi, dll), Anda perlu mengkonfigurasi server SMTP. Jika Anda ingin menggunakan server email Anda sendiri untuk mengirim email ke klien, silakan baca artikel berikut untuk menyiapkan server email Anda sendiri. Catatan bahwa saya sangat merekomendasikan menjalankan server email iRedMail pada OS bersih yang baru. Menginstal iRedMail pada OS yang memiliki aplikasi web lain dapat gagal, dan kemungkinan merusak aplikasi yang ada.
- Cara mudah menyiapkan server email di Ubuntu 18.04 dengan iRedMail
Jika Anda ingin menggunakan layanan relai SMTP, saya sarankan Mailjet. Anda dapat mengikuti tutorial di bawah ini untuk menyiapkan relai SMTP di server AVideo Anda.
- Cara Menyetel relai SMTP Postfix di Ubuntu dengan Mailjet
Anda dapat menguji pengiriman email dengan membuka admin panel
-> Setttings
-> Site Settings
-> Advanced Configuration
, Anda dapat menemukan konfigurasi SMTP. Gunakan pengaturan berikut.
- Aktifkan SMTP.
- Aktifkan SMTP Auth.
- Gunakan
tls
di SMTP Aman. - Gunakan
587
sebagai port SMTP. - Masukkan nama host server email Anda.
- Masukkan nama pengguna dan sandi SMTP.
Klik tombol Save
untuk menyimpan pengaturan, lalu klik Test Email
untuk melihat apakah itu berfungsi.
Aktifkan TCP BBR
Untuk server streaming video, disarankan untuk mengaktifkan algoritme kontrol kongesti TCP BBR di kernel Linux dengan mengikuti petunjuk dalam artikel di bawah ini.
- Cara Mudah Meningkatkan Kinerja Jaringan Ubuntu dengan Mengaktifkan TCP BBR
Aplikasi Seluler
Anda dapat mengunduh aplikasi android atau aplikasi iOS gratis dengan melakukan pencarian untuk AVideo
di Google Play Store atau YPT Mobile
di Apple Store. Aplikasi seluler white-label memerlukan lisensi berbayar.
Pemecahan Masalah
Jika halaman utama AVideo Anda gagal memuat beberapa sumber daya CSS dan JavaScript,
Sepertinya Anda telah menambahkan garis miring ekstra di file host virtual Apache atau Nginx untuk direktori root web. Alih-alih menggunakan
DocumentRoot /var/www/AVideo/
Anda harus menggunakan
DocumentRoot /var/www/AVideo
Jika situs web utama tidak berfungsi dengan baik, Anda dapat memeriksa file log di /var/www/AVideo/videos/avideo.log
. Jika encoder Anda tidak berfungsi dengan benar, Anda dapat memeriksa file log di /var/www/AVideo/upload/videos/avideo.log
.
Informasi Menarik Lainnya
Saat menyandikan video, Anda dapat memilih resolusi (rendah, SD, HD). Jika Anda menggunakan AVideo sebagai situs streaming video pribadi, saya sarankan memilih resolusi HD hanya untuk mengurangi waktu penyandian dan menghemat ruang disk. Jika Anda telah mengkodekan video ke semua 3 resolusi, Anda dapat membuka direktori video AVideo (/var/www/AVideo/videos) dan menghapus video resolusi rendah dan resolusi SD.
cd /var/www/AVideo/videos/ sudo rm *Low.mp4 sudo rm *SD.mp4
Cara Mengunduh Semua Video Dari Situs Video Anda
Anda dapat menggunakan youtube-dl
utilitas baris perintah untuk mengunduh semua video. Pertama, Anda harus pergi ke dashboard AVideo, lalu pergi ke halaman daftar video dan gulir ke bawah ke bawah, klik download daftar video Anda (file .txt permalink) tombol. Anda akan melihat daftar URL untuk semua video.
Selanjutnya, buka terminal dan buat file txt dengan editor teks, salin URL dari halaman web dan tempel ke file. Kemudian Anda dapat menjalankan perintah berikut untuk mengunduh video. Ganti video-list.txt
dengan nama file Anda sendiri.
youtube-dl -a video-list.txt