GitBucket Ubuntu 16.04 Kurulumu
Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:
HTTP Live Streaming (HLS), Apple Inc. tarafından uygulanan çok sağlam bir akış video protokolüdür. HLS, güvenlik duvarlarını, proxy'leri dolaşan ve CDN'ler aracılığıyla kolaylıkla dağıtılabilen HTTP işlemlerini kullanır. Bu nedenle, bu teknoloji RTP veya diğer UDP tabanlı protokollerden çok daha geniş bir görüntüleme kitlesine ulaşabilir. Bugün çevrimiçi canlı video akışı çoğu HLS kullanan pahalı sistemler tarafından barındırılmaktadır, ancak genellikle pahalıdır ve çok fazla sunucu kaynağı gerektirir. Bu eğitici, yalnızca açık kaynaklı yazılım kullanarak HLS canlı akış etkinlikleri yapmak için çok uygun fiyatlı bir Ubuntu 14.04 VULTR VPS'nin nasıl kurulacağını gösterecektir.
İlk adım, Vultr Doc " Ubuntu 14.04'te Nginx-RTMP Kurulumu " na göre sunucunuzu okumak ve ayarlamaktır . Bu dokümandaki talimatlar, yazma aşamasında kurulum aşaması için en kapsamlı olanlardır. "Nginx-1.7.5" yerine "nginx-1.9.4" ya da Nginx'in en son sürümü ne olursa olsun koymak isteyebileceğinizden bahsedebilirim. Diğer öneri, kendinize daha sonra kaç tane canlı HLS görüntüleyici izleyebilmenizi sağlamak için Nginx'i HTTP saplama durumu modülü ile derlemektir.
Şununla derlemek yerine:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Önkoşul belgesinde belirtilen prosedürde bu dizeyi kullanın:
./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master
Bu öğreticideki örnek hem "canlı" hem de "mobil" (optimize edilmiş) akışlar oluşturacak ve bit hızı ayarlı, mobil olarak optimize edilmiş HLS akışını oluşturmak için ffmpeg (önceki öğreticide yüklü) kullanacaktır. Örnek ayrıca sunucunun canlı akışlarınızı otomatik olarak kaydetmesine ve kayıtları isteğe bağlı video (VOD) yeniden oynatma hizmeti olarak oynatmanıza izin vermeyi de gösterecektir.
İlk olarak, canlı ve mobil HLS bildirimlerini ve video parçalarını tutmak için gerekli klasör yapılarını oluşturun:
sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings
Henüz yapmadıysanız, güvenlik duvarınızın açık olması muhtemelen iyi bir fikirdir. Öyleyse, Nginx ve HLS tarafından kullanılan bağlantı noktalarında trafiğe izin vermelisiniz. Şimdilik güvenlik duvarı olmadan çalıştırmak istiyorsanız, aşağıdaki ufw bölümünü yok sayın.
sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable
HLS akışı, ilk makaledeki RTMP yapılandırmasından çok farklı bir Nginx yapılandırması gerektirir. Bilginizi nginx.conf
"my-ip" ve "my-stream-key" ile değiştirerek aşağıdakileri kullanmak için dosyanızı düzenleyin. "My-stream-key" için istediğiniz her şeyi kullanabilirsiniz, bu sadece size özel ve yardımcı olan bir kelimedir. Önce orijinal yapılandırma dosyanızı yedekleyin, ardından sağlanan yapılandırma bilgilerimi düzenleyiciye yapıştırın, orada bulunan her şeyi değiştirin:
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf
Yeni nginx.conf:
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
allow play all;
#creates our "live" full-resolution HLS videostream from our incoming encoder stream and tells where to put the HLS video manifest and video fragments
application live {
allow play all;
live on;
record all;
record_path /video_recordings;
record_unique on;
hls on;
hls_nested on;
hls_path /HLS/live;
hls_fragment 10s;
#creates the downsampled or "trans-rated" mobile video stream as a 400kbps, 480x360 sized video
exec ffmpeg -i rtmp://192.168.254.178:1935/$app/$name -acodec copy -c:v libx264 -preset veryfast -profile:v baseline -vsync cfr -s 480x360 -b:v 400k maxrate 400k -bufsize 400k -threads 0 -r 30 -f flv rtmp://192.168.254.178:1935/mobile/$;
}
#creates our "mobile" lower-resolution HLS videostream from the ffmpeg-created stream and tells where to put the HLS video manifest and video fragments
application mobile {
allow play all;
live on;
hls on;
hls_nested on;
hls_path /HLS/mobile;
hls_fragment 10s;
}
#allows you to play your recordings of your live streams using a URL like "rtmp://my-ip:1935/vod/filename.flv"
application vod {
play /video_recordings;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name 192.168.254.178;
#creates the http-location for our full-resolution (desktop) HLS stream - "http://my-ip/live/my-stream-key/index.m3u8"
location /live {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/live;
add_header Cache-Control no-cache;
}
#creates the http-location for our mobile-device HLS stream - "http://my-ip/mobile/my-stream-key/index.m3u8"
location /mobile {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/mobile;
add_header Cache-Control no-cache;
}
#allows us to see how stats on viewers on our Nginx site using a URL like: "http://my-ip/stats"
location /stats {
stub_status;
}
#allows us to host some webpages which can show our videos: "http://my-ip/my-page.html"
location / {
root html;
index index.html index.htm;
}
}
}
Çıkmak için Ctrl + X tuşlarına basın . Değişiklikleri kaydetmek için "evet" deyin.
nginx.conf
Sık kullandığınız arama motorunuzu "nginx-rtmp yönergeleri" için sorgularsanız, bu dosyadaki olası değişkenlere ilişkin açık talimatları ve örnekleri bulabilirsiniz . Nginx-rtmp'yi HLS ile birkaç yıldır "yayınlamaya izin ver" ve "yayınlamayı reddet" direktiflerini kullanmadan kullanıyorum ve video sunucularımı kullanan / istila eden kişilerin sıfır örneğini gördüm. Bu yüzden bu direktifleri buraya dahil etmedim. İsterseniz bu yönergeleri okuyun ve ekleyin.
Dosyayı değiştirdikten sonra nginx.conf
, yeni yapılandırmayı kullanmak için Nginx'i yeniden başlatmanız gerekir:
sudo service nginx restart
Herhangi bir Nginx hata mesajını yakından izleyin ve yanlış yazım, klasör sahipliği veya izin sorunlarından kaynaklanabilecek hataları ele alın. Hata mesajınız yoksa kodlama akışınızı oluşturmaya hazırsınız demektir.
Akışı oluşturmak için bir video kodlayıcınız olmalıdır. Açık kaynak kodlu ve benim için iyi çalışan OBS (Open Broadcaster Software) kullanıyorum. Bu öğreticinin kapsamı dışında kalan başka çözümler de vardır. Bir RTMP video kodlayıcı yapılandırma hakkında her şeyi ele almayacağım. Hepsi de aynı giriş değişkenlerini gerektirir. Tam nginx.conf
yapılandırmamı kullanmak ve çoğu oyuncu / tarayıcı / platformda iyi çalışabilmek için girmeniz gereken temel ayarlar aşağıdaki gibidir:
Farklı kodlayıcıları denemenizi ve onlarla denemenizi öneririz. Geniş bir en / boy oranı isteyebilirsiniz veya kameranız (veya başka bir yayın) malzemeniz bunu isteyebilir. Öyleyse, kodlayıcınızdaki bu bilgileri ve sağladığım nginx.conf
dosyanın exec-ffmpeg bölümünde listelenen en boy oranını değiştirdiğinizden emin olun ; aksi halde aptal görünümlü video yayınları alırsınız.
Kodlayıcınız ayarlandıktan sonra hepsini test edebilirsiniz. Kodlayıcıyı web kameranızla veya üzerinde çalışan bir çeşit test yemiyle başlatın. Yayınınızı aşağıdaki gibi URL'leri kullanarak VLC oynatıcı ile görüntüleyebilirsiniz:
http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8
Bunlar sırasıyla ana ve mobil video akışlarınız içindir. IP ve akış anahtarınızı uygun şekilde değiştirin.
İlk akış kontrolünüzü başarıyla yayınladıktan sonra (ssh veya ftp aracılığıyla) canlı yayınınızın /video_recordings
Vultr VPS'nizdeki klasöre kaydedildiğini kontrol edin . Bu kaydedilen dosyayı aşağıdaki gibi bir URL ile VLC'de oynatmayı da deneyebilirsiniz:
rtmp://my-ip/vod/filename.flv
Nginx istatistikleri de mevcuttur (Nginx stub_status ile). Ziyaretçi / görüntüleyici istatistiklerini görüntülemek için şunlara erişin:
http://my-ip/stats
Videonuzu bir web sayfasında izlemek için gömülebilir bir oynatıcıya ihtiyacınız olacaktır. HLS video oynatacak birçok gömülebilir oynatıcı var. JW Player'ı birkaç yıldır kullanıyorum, ancak ücretsiz sürüm HLS oynatmıyor. Flowplayer ve Bitdash by Bitmovin (diğer çözümlerin yanı sıra), oyuncularının ticari olmayan bir sürümünü ücretsiz sunacak kadar cömerttir ve bu da HLS akışınızı bir web sayfasına yerleştirir. Bu makale için, ikisini de denedim ve Vultr / Nginx tabanlı video sunucumla oldukça iyi çalıştıklarını gördüm. Flowplayer'ı test edilmiş makinemle nasıl çalıştırdığımı kısaca anlatacağım.
Canlı HLS akışını düzenli, sürekli veya ticari bir şekilde kullanacaksanız, Flowplayer'dan veya hangi oynatıcıyı kullanmaya karar verdiğinizden bir lisans satın almanızı öneririm. Daha az kısıtlamaya, daha fazla özelliğe sahip olan ve kuruluşunuza markalanabilecek bir oyuncu alacaksınız. Ayrıca çok önemli olabilecek destek alırsınız. Vultr VPS dışında, bu gerçekten projeyle ilişkili tek maliyet.
Başka bir şey yapmadan önce, "web alanları arası" kısıtlamaları olarak adlandırılan ve aksi takdirde bir web sayfasına / web sitesine akış yapma yeteneğinizi kapatacak olan şeylerle ilgilenmeniz önemlidir. Klasörünüzde bir crossdomain.xml
dosya oluşturun nginx/html
ve verilerin alanlar arasında akmasına izin vermek için talimatlar yerleştirin:
sudo nano /usr/local/nginx/html/crossdomain.xml
Önce (bu sayfadan) kopyalayın ve ardından aşağıdaki XML verilerini nano editör alanına yapıştırın (sağ tıklayın):
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
Yazmak için Ctrl + O tuşlarına , ardından dosyayı diske kaydetmek ve çıkmak için Ctrl + X tuşlarına basın .
Sıkıştırıldığında bana bir dizi dosya ve klasör veren HTML5'i (sürüm 6.0.3) aldım. Tüm dosyaları ve klasörü "flowplayer" adını verdiğim Nginx / HTML kök klasörünün bir alt klasörüne yükledim. Kesin yol buydu /usr/local/nginx/html/flowplayer
.
Bir web sayfasına yerleştirildiğinde videomuzu test etmek için nano kullanarak Nginx / HTML klasörünün kökünde birkaç HTML dosyası oluşturun ve bunları aşağıdaki içeriklerle doldurun.
Dosya:
sudo nano /usr/local/nginx/html/hls.html
HTML Kodu:
<!doctype html>
<head>
<link rel="stylesheet" href="#">
</head>
<body>
640x480 664kbps (live) Desktop Browsers<br>
<div style="width:640px;" class="flowplayer" data-swf="flowplayer/flowplayer.swf" data-ratio="0.75">
<video>
<source type="application/x-mpegurl" src="">
</video>
</div>
<br><br>
480x360 464kbps (mobile) Mobile Browsers <br>
<div style="width:480px;" class="flowplayer" data-swf="flowplayer/flowplayer.swf" data-ratio="0.75">
<video>
<source type="application/x-mpegurl" src="">
</video>
</div>
</body>
Dosya:
sudo nano /usr/local/nginx/html/hls_progressive.html
HTML Kodu:
<!doctype html>
<head>
<link rel="stylesheet" href="#">
<style> .flowplayer { width: 640px; } </style>
</head>
<body>
<div class="flowplayer" data-swf="flowplayer/flowplayer.swf" data-ratio="0.75">
<video>
<source type="application/x-mpegurl" src="">
<source type="application/x-mpegurl" src="">
</video>
</div>
<br>
</body>
Verilerinizle "my-ip" ve "my-stream-key" ifadelerini kullandığınızdan emin olun.
flowplayer/skin/functional.css
Stil sayfasındaki "#" işareti yolunu değiştirmeniz gerekir href="#"
. Öğretici yazılım yolu çıkarır. Sen bir URL girmelisiniz src=""
o öğretici yazılım, kullanım ile çıkarılır ediliyor - parçası http://my-ip/live/my-stream-key/index.m3u8
ve http://my-ip/mobile/my-stream-key/index.m3u8
sırasıyla. Ayrıca komut eklemeniz gerekir src
her ikisi için kafasında etiketleri jquery-1.11.2.min.js
ve için flowplayer.min.js
. Etiketler öğretici yazılım tarafından çıkarılıyor. example html
Flowplayer kitinde bulunan dosyaya bakarak bu etiketlerin nasıl biçimlendirileceğini bulabilirsiniz.
Kodlayıcıyı web kameranızla veya üzerinde çalışan bir çeşit test yemiyle başlatın. Aşağıdaki URL'leri kullanarak yayınınızı bir tarayıcıda görüntüleyebilirsiniz:
http://my-ip/hls.html
http://my-ip/hls_progressive.html
İlk sayfa akışlarınızın her birini gösterir - ana sayfa ve mobil platform. İkisini de başlatabilir ve görüntüleyebilirsiniz. Mobil platform akışının daha küçük olduğunu fark edeceksiniz. Bu adımlar sadece her şeyin çalıştığından emin olmak içindir.
İkinci sayfa tek bir akışı gösterir. Ancak "aşamalı akış" adı verilen bir şekilde kurulur. Bunun anlamı, bir izleyici videoyu oynattığında, hem sunucunun hem de oynatıcının izleyici bağlantısı videoyu sürdürebiliyorsa izleyiciye yüksek bit hızlı, yüksek kaliteli akış sağlamaya çalışır. Bağlantıları zayıfsa ve bağlantıyı sürdüremezse, bant genişliğinde 200 kbps daha düşük olan düşük bit hızı (mobil) akışını göstermek için aşağı yuvarlanır. İsterseniz, ffmpeg ile daha dereceli, aşamalı akışlar oluşturabilir ve bunları örneğimi kullanarak yapılandırabilirsiniz.
Bu yapılandırmayı tek bir çekirdek, 1GB Vultr VPS üzerinde test ettim ve tek bir canlı akışla ve ffmpeg ile oluşturduğu trans-derecelendirilmiş mobil akışla, cpu kullanımının% 35'ten az olduğunu ve yalnızca 100MB benim 1GB koçum. Şimdi bu çok verimli bir kurulum.
SD'den piksel boyutlarında çok daha büyük olan video akışını planlıyorsanız, daha güçlü bir VPS kullanmanız gerekebilir. Bunu merak ettim ve ana akışımı 1280x960 piksele ve 2Mbps'ye kadar yayınladım - şeylere ek yük koydu. Ancak VPS hala sadece% 50 CPU kullandı ve bellek kullanımı 100MB'da kaldı. Bir düzine izleyici / tarayıcı ekledim ve VPS'deki yükte neredeyse hiçbir fark yaratmadı - sadece kullanılan bant genişliği arttı. Ffmpeg ile ek trans-rated akışlar oluşturmanın sisteme ek yük koymaya devam edeceğinden eminim.
Bu tür sunucuyu 50 ila 100 eşzamanlı kullanıcısı olan üretim ortamlarında kullandım ve artan görüntüleyici bağlantılarıyla kaynak kullanımının çok az arttığını gördüm. Onunla deney yapın. Ancak çoğu kullanıcının tek çekirdekli 1 GB VPS kullanmaktan memnun olacağını düşünüyorum. Yeni HLS akış sunucunuzun tadını çıkarın!
Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:
Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)
Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,
TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben
Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size
Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz
Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size
Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.
Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar
Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor
Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)
Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak
Farklı Bir Sistem mi Kullanıyorsunuz? Thelia, e-iş web siteleri oluşturmak ve PHP ile yazılmış çevrimiçi içeriği yönetmek için açık kaynaklı bir araçtır. Thelia kaynak kodu i
pfSense, ağlarına geniş bir özellik yelpazesi eklemek isteyen sistem yöneticileri için ideal bir araçtır. Öncelikle açık kaynaklı
Farklı Bir Sistem mi Kullanıyorsunuz? Chamilo, çevrimiçi eğitim ve takım işbirliği için yaygın olarak kullanılan ücretsiz ve açık kaynaklı bir öğrenme yönetim sistemidir (LMS).
Farklı Bir Sistem mi Kullanıyorsunuz? Giriş CyberPanel, piyasadaki hem açık kaynaklı hem de OpenLiteSpeed kullanan ilk kontrol panellerinden biridir. Ne var
Farklı Bir Sistem mi Kullanıyorsunuz? LimeSurvey PHP ile yazılmış açık kaynaklı bir anket yazılımıdır. LimeSurvey kaynak kodu GitHubda barındırılıyor. Bu kılavuz size
Eskiden OpenERP olarak bilinen Odoo, iyi bilinen bir açık kaynaklı ERP iş platformudur. Her büyüklükteki işletme, bol miktarda lis sayesinde Odoodan yararlanabilir
ClamAV ücretsiz ve açık kaynaklı bir antivirüs paketidir. Sunucunuz için bir güvenlik stratejisi planlarken, korumak için bir antivirüs çalıştırmayı düşünebilirsiniz.
Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun