Jekylli ajaveebi loomine Ubuntus 16.04
Kas kasutate teistsugust süsteemi? Jekyll on suurepärane alternatiiv WordPressile ajaveebi pidamiseks või sisu jagamiseks. See ei nõua andmebaase ja see on väga lihtne
HTTP reaalajas voogesitus (HLS) on väga tugev voogesituse videoprotokoll, mille on rakendanud Apple Inc. HLS kasutab HTTP-tehinguid, mis läbivad tulemüüre ja puhverservereid ning mida saab CDN-ide kaudu hõlpsalt levitada. Seetõttu suudab see tehnoloogia jõuda palju suurema vaatajaskonnani kui RTP või muud UDP-põhised protokollid. Tänapäeval hostivad suurt osa võrgus olevast reaalajas voogesituse videost kallid süsteemid, mis kasutavad HLS-i, kuid need on üldiselt kallid ja nõuavad palju serveriressursse. See õpetus näitab teile, kuidas seadistada väga taskukohane Ubuntu 14.04 VULTR VPS, et teha HLS-i reaalajas voogesituse sündmusi, kasutades ainult avatud lähtekoodiga tarkvara.
Esimene samm on oma serveri lugemine ja seadistamine vastavalt Vultr Doc'ile " Nginx-RTMP seadistamine Ubuntu 14.04-s ". Selles dokumendis olevad juhised olid kirjutamise ajal seadistusetapi jaoks kõige põhjalikumad. Tahaksin mainida, et võite soovida asendada "nginx-1.7.5" sõnaga "nginx-1.9.4" või mis tahes muu Nginxi uusima versiooniga, mis on saadaval. Teine soovitus on kompileerida Nginx HTTP tübioleku mooduliga, et anda endale võimalus hiljem jälgida, kui palju HLS-i reaalajas vaatajaid teil on.
Selle asemel, et koostada:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Kasutage seda stringi eeltingimusdokumendis kirjeldatud protseduuris:
./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master
Selle õpetuse näide loob nii reaalajas kui ka mobiilseid (optimeeritud) voogusid ning kasutab bitikiirusega kohandatud mobiilile optimeeritud HLS-voo genereerimiseks ffmpeg-i (installitud eelmises õpetuses). Näide näitab ka, kuidas panna server teie otseülekandeid automaatselt salvestama ja lubada teil salvestisi taasesitada nõudmisel video (VOD) taasesitusteenusena.
Esmalt looge reaalajas ja mobiilsete HLS-i manifestide ja videofragmentide hoidmiseks vajalikud kaustastruktuurid:
sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings
Tõenäoliselt on hea mõte lasta tulemüür sisse lülitada, kui te pole seda juba teinud. Kui jah, siis peate lubama liiklust Nginxi ja HLS-i kasutatavatesse portidesse. Kui soovite praegu töötada ilma tulemüürita, ignoreerige allolevat ufw jaotist.
sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable
HLS-i voogesitus nõuab oluliselt erinevat Nginxi konfiguratsiooni esimeses artiklis toodud RTMP-konfiguratsioonist. Muutke oma nginx.conf
faili, et kasutada järgmist, asendades "my-ip" ja "my-stream-key" oma teabega. "Minu voo võtme" jaoks võite kasutada kõike, mida soovite, see on lihtsalt sõna, mis on ainulaadne ja teile kasulik. Võib-olla soovite esmalt varundada oma algse konfiguratsioonifaili, seejärel kleepida minu esitatud konfiguratsiooniteave redaktorisse, asendades kõik seal oleva:
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf
Uus 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;
}
}
}
Väljumiseks vajutage Ctrl + X. Muudatuste salvestamiseks öelge "jah".
nginx.conf
Kui otsite oma lemmikotsingumootorist "nginx-rtmp direktiivid", leiate selged juhised ja näited sellest failist võimalike muutujate kohta . Olen kasutanud nginx-rtmp-d koos HLS-iga juba mitu aastat, kasutamata käske "luba avaldada" ja "keela avaldamine" ning ma pole näinud ühtegi juhtumit, kus inimesed oleksid minu videoservereid kasutanud/tunginud. Nii et ma ei lisanud neid direktiive siia. Lugege neid juhiseid ja soovi korral lisage need.
Pärast nginx.conf
faili muutmist peate uue konfiguratsiooni kasutamiseks taaskäivitama Nginxi:
sudo service nginx restart
Jälgige tähelepanelikult kõiki Nginxi tõrketeateid ja lahendage kõik vead, mis võivad olla põhjustatud õigekirjaveast, kausta omandiõiguse või lubade probleemidest. Kui teil pole veateateid, olete valmis kodeerimisvoogu looma.
Voo loomiseks peab teil olema videokodeerija. Kasutan OBS-i (Open Broadcaster Software), mis on avatud lähtekoodiga ja töötab minu jaoks hästi. Valida on ka teisi lahendusi, mis ei kuulu selle õpetuse raamesse. Ma ei käsitle kõike RTMP-videokodeerija konfigureerimise kohta. Need kõik nõuavad aga ligikaudu samu sisendmuutujaid. Peamised sätted, mida peate sisestama, et kasutada minu täpset nginx.conf
konfiguratsiooni ja töötada enamikus mängijates/brauserites/platvormidel hästi, on järgmised.
Soovitan erinevaid kodeerijaid proovida ja nendega katsetada. Võite soovida laia kuvasuhet või teie kaamera (või muud edastusmaterjalid) võivad seda nõuda. Kui jah, muutke kindlasti seda teavet oma kooderis ja ka kuvasuhet, mis on loetletud nginx.conf
minu esitatud faili jaotises exec-ffmpeg ; vastasel juhul saate tobeda välimusega videovooge.
Kui teie kodeerija on seadistatud, saate seda kõike testida. Käivitage kodeerija oma veebikaamera või sellel töötava testsööda abil. Saate vaadata oma ülekannet VLC-mängijaga, kasutades selliseid URL-e nagu:
http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8
Need on mõeldud vastavalt teie põhi- ja mobiilivideovoogudele. Asendage vastavalt oma IP ja voovõti.
Kui olete oma esimese /video_recordings
vooedastuse edukalt edastanud, kontrollige (ssh või ftp kaudu), et teie otseülekanne salvestati teie Vultr VPS-i kausta. Samuti võite proovida seda salvestatud faili esitada VLC-s järgmise URL-iga:
rtmp://my-ip/vod/filename.flv
Saadaval on ka Nginxi statistika (koos Nginxi stub_status). Külastajate/vaatajate statistika vaatamiseks avage:
http://my-ip/stats
Video vaatamiseks veebilehel on teil vaja manustatavat pleieri. Saadaval on palju manustatavaid mängijaid, mis mängivad HLS-videot. Olen kasutanud JW Playerit juba mitu aastat, kuid tasuta versioon ei mängi HLS-i. Bitmovini Flowplayer ja Bitdash (muude lahenduste hulgas) on piisavalt helded, et pakkuda oma mängijatest tasuta mitteärilist versiooni, mis muudab teie HLS-i voo veebilehele manustatuna. Selle artikli jaoks olen proovinud neid mõlemaid ja leidnud, et mõlemad töötavad minu Vultr / Nginxi põhise videoserveriga üsna hästi. Näitan lühidalt, kuidas ma oma katsealuse masinaga Flowplayeri käima sain.
Kui kavatsete kasutada HLS-i reaalajas voogesitust mis tahes tavapärasel, püsival või kaubanduslikul viisil, soovitan teil osta Flowplayeri või mis tahes mängija litsents, mille otsustate kasutada. Saate mängija, millel on vähem piiranguid, rohkem funktsioone ja mida saab teie organisatsiooni kaubamärgiga tähistada. Samuti saate toetust – see võib olla väga oluline. Peale Vultr VPS-i on see tõesti ainus projektiga seotud kulu.
Enne millegi muu tegemist on oluline hoolitseda nn domeenideüleste piirangute eest, mis vastasel juhul sulgeksid teie võimaluse veebilehele/veebisaidile voogesitada. Looge crossdomain.xml
oma nginx/html
kaustas fail ja sisestage sinna juhised, mis võimaldavad andmetel domeenide vahel liikuda.
sudo nano /usr/local/nginx/html/crossdomain.xml
Esmalt kopeerige (sellelt lehelt) ja seejärel kleepige (paremklõps) nanoredaktori väljale järgmised XML-andmed:
<?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>
Välja kirjutamiseks vajutage Ctrl + O , seejärel faili kettale salvestamiseks ja väljumiseks Ctrl + X.
Haarasin Flowplayeri HTML5 (versioon 6.0.3), mis andis lahtipakkimisel mulle hulga faile ja kausta. Laadisin kõik failid ja kausta üles Nginx/HTML juurkausta alamkausta, mille nimeks andsin "flowplayer". Täpne tee oli /usr/local/nginx/html/flowplayer
.
Meie video testimiseks veebilehele manustatuna looge nano abil kausta Nginx/HTML juure paar HTML-faili ja sisestage need järgmise sisuga.
Fail:
sudo nano /usr/local/nginx/html/hls.html
HTML kood:
<!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>
Fail:
sudo nano /usr/local/nginx/html/hls_progressive.html
HTML kood:
<!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>
Kindlasti asendage "minu-ip" ja "minu-voo võti" oma andmetega.
Peate flowplayer/skin/functional.css
laaditabeli märgi "#" teega asendama href="#"
. Õpetustarkvara eemaldab tee. Peate sisestama oma URL src=""
osa - see on eemaldatud läbi juhendaja tarkvara kasutamise http://my-ip/live/my-stream-key/index.m3u8
ja http://my-ip/mobile/my-stream-key/index.m3u8
vastavalt. Samuti peate päisesse lisama skriptimärgendid src
nii jquery-1.11.2.min.js
ja flowplayer.min.js
. Õpetustarkvara eemaldab sildid. Saate teada, kuidas neid silte kujundada, vaadates example html
Flowplayeri komplektiga kaasas olevat faili.
Käivitage kodeerija oma veebikaamera või sellel töötava testsööda abil. Saate vaadata oma ülekannet brauseris, kasutades järgmisi URL-e:
http://my-ip/hls.html
http://my-ip/hls_progressive.html
Esimesel lehel kuvatakse lihtsalt iga teie voog – peamine ja mobiiliplatvormi voog. Saate need mõlemad käivitada ja neid vaadata. Märkate, et mobiiliplatvormi voog on väiksema suurusega. Need sammud on vaid selleks, et veenduda, et kõik töötab.
Teisel lehel on näha üks voog. Kuid see on seadistatud viisil, mida nimetatakse "progressiivseks voogesituseks". See tähendab, et kui vaataja esitab videot, proovivad nii server kui ka mängija anda vaatajale kõrge bitikiirusega kvaliteetset voogu, kui vaatajaühendus suudab seda säilitada. Kui nende ühendus on halb ja see ei suuda ühendust säilitada, kuvatakse madalama bitikiirusega (mobiilside) voog, mille ribalaius on 200 kbps madalam. Soovi korral saate luua ffmpeg-iga rohkem astmelisi, progressiivseid vooge ja neid minu näitel konfigureerida.
Testisin seda konfiguratsiooni ühes tuumas, 1 GB Vultr VPS-is ja avastasin, et ühe otseülekande ja ffmpeg-i abil loodud trans-reitingu mobiilse voo korral oli protsessori kasutus alla 35% ja see oli tarbinud vaid 100 MB minu 1GB ram. Nüüd on see väga tõhus seadistus.
Kui plaanite voogesitada videot, mille pikslite mõõtmed on palju suuremad kui SD, võite avastada, et peate kasutama võimsamat VPS-i. Tundsin selle vastu uudishimu ja jooksutasin oma põhivoogu kuni 1280x960 pikslit ja 2Mbps – andes asjadele täiendava koormuse. Kuid VPS kasutas endiselt ainult 50% protsessorit ja mälukasutus jäi 100 MB juurde. Lisasin kümmekond vaatajat/brauserit ja see ei muutnud VPS-i koormust peaaegu üldse – ainult kasutatud ribalaius suurenes. Olen kindel, et täiendavate trans-rated voogude loomine ffmpeg-iga koormaks süsteemi jätkuvalt.
Olen kasutanud seda tüüpi servereid tootmiskeskkondades, kus on samaaegselt 50–100 kasutajat, ja avastasin, et ressursikasutus kasvas vaatajaühenduste suurenemisega väga vähe. Katsetage sellega. Kuid ma arvan, et enamik kasutajaid kasutaks ühetuumalist 1 GB VPS-i. Nautige oma uut HLS-i voogesitusserverit!
Kas kasutate teistsugust süsteemi? Jekyll on suurepärane alternatiiv WordPressile ajaveebi pidamiseks või sisu jagamiseks. See ei nõua andmebaase ja see on väga lihtne
Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata
Memcached on suure jõudlusega andmebaasisüsteem, mis aitab teie rakendust täiendada. See on väga kiire, kuna see ei kirjuta kettale, vaid selle asemel t
Sissejuhatus InfluxDB on avatud lähtekoodiga hajutatud aegridade andmebaas, millel pole väliseid sõltuvusi. Jah, lugesite väliste sõltuvuste puudumise par
Fail2ban on programm, mis jälgib teie serverisse sisselogimistegevust ja blokeerib rikkuvad IP-aadressid. Vaikimisi blokeerib see IP-aadressid 10 minutiks
Kas kasutate teistsugust süsteemi? Red5 on Java-s realiseeritud avatud lähtekoodiga meediumiserver, mis võimaldab käivitada mitme kasutajaga Flashi rakendusi, näiteks otseülekandeid.
Kas kasutate teistsugust süsteemi? Vanilla foorum on avatud lähtekoodiga foorumirakendus, mis on kirjutatud PHP-s. See on täielikult kohandatav, hõlpsasti kasutatav ja toetab välist
Kas kasutate teistsugust süsteemi? Sissejuhatus Kanboard on tasuta ja avatud lähtekoodiga projektihaldustarkvara, mis on loodud hõlbustama ja visualiseerima
Kas kasutate teistsugust süsteemi? Sissejuhatus Kanboard on tasuta ja avatud lähtekoodiga projektihaldustarkvara, mis on loodud hõlbustama ja visualiseerima
Kas kasutate teistsugust süsteemi? Tiny Tiny RSS Reader on tasuta ja avatud lähtekoodiga isehostitav veebipõhine uudistevoo (RSS/Atom) lugeja ja koondaja, mis on loodud
Kas kasutate teistsugust süsteemi? Gitea on alternatiivne avatud lähtekoodiga isehostitav versioonikontrollisüsteem, mida toetab Git. Gitea on kirjutatud golangi keeles ja on
Kas kasutate teistsugust süsteemi? Wiki.js on tasuta avatud lähtekoodiga kaasaegne vikirakendus, mis on üles ehitatud Node.js-ile, MongoDB-le, Gitile ja Markdownile. Wiki.js lähtekood on avalik
Kas kasutate teistsugust süsteemi? Gitea on alternatiivne avatud lähtekoodiga isehostitav versioonikontrollisüsteem, mida toidab git. Gitea on kirjutatud golangi keeles ja on
Kas kasutate teistsugust süsteemi? Thelia on avatud lähtekoodiga tööriist e-äri veebisaitide loomiseks ja PHP-s kirjutatud veebisisu haldamiseks. Thelia lähtekood i
Kas kasutate teistsugust süsteemi? Microweber on avatud lähtekoodiga pukseeritav CMS-i ja veebipood. Microweberi lähtekoodi majutatakse GitHubis. See juhend näitab teile
Kas kasutate teistsugust süsteemi? Microweber on avatud lähtekoodiga pukseeritav CMS-i ja veebipood. Microweberi lähtekoodi majutatakse GitHubis. See juhend näitab teile
Kas kasutate teistsugust süsteemi? MODX Revolution on kiire, paindlik, skaleeritav, tasuta ja avatud lähtekoodiga ettevõttetasemel sisuhaldussüsteem (CMS), mis on kirjutatud i.
Kas kasutate teistsugust süsteemi? Mattermost on avatud lähtekoodiga isehostitav alternatiiv Slack SAAS-i sõnumsideteenusele. Teisisõnu, Mattermostiga saate ca
Kas kasutate teistsugust süsteemi? DotCMS on Java keeles kirjutatud avatud lähtekoodiga ettevõttetasemel sisuhaldussüsteem. See sisaldab peaaegu kõiki vajalikke funktsioone t
Kas kasutate teistsugust süsteemi? Pagekit 1.0 CMS on ilus, modulaarne, laiendatav ja kerge, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS).
Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.
Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.
Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.
Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.
Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…
Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.
Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.
Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.
Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.
Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit