Jekyll-blogin luominen Ubuntuun 16.04
Käytätkö erilaista järjestelmää? Jekyll on loistava vaihtoehto WordPressille bloggaamiseen tai sisällön jakamiseen. Se ei vaadi tietokantoja ja se on erittäin helppoa i
HTTP Live Streaming (HLS) on erittäin vankka suoratoistovideoprotokolla, jonka on toteuttanut Apple Inc. HLS käyttää HTTP-tapahtumia, jotka kulkevat palomuurien ja välityspalvelinten läpi ja joita voidaan jakaa CDN-verkkojen kautta helposti. Siksi tämä tekniikka pystyy tavoittamaan paljon suuremman katseluyleisön kuin RTP tai muut UDP-pohjaiset protokollat. Suuri osa suoratoistovideoista verkossa on nykyään kalliissa HLS:ää käyttävissä järjestelmissä, mutta ne ovat yleensä kalliita ja vaativat paljon palvelinresursseja. Tämä opetusohjelma näyttää, kuinka voit määrittää erittäin edullisen Ubuntu 14.04 VULTR VPS:n suorittamaan HLS-suoratoistotapahtumia käyttämällä vain avoimen lähdekoodin ohjelmistoja.
Ensimmäinen askel on lukea ja määrittää palvelimesi Vultr Docin " Aseta Nginx-RTMP Ubuntu 14.04:ään " mukaisesti. Tuon asiakirjan ohjeet olivat kirjoitushetkellä kattavimmat asennusvaiheessa. Haluaisin mainita, että saatat haluta korvata "nginx-1.7.5" sanalla "nginx-1.9.4" tai millä tahansa Nginxin uusimmalla versiolla. Toinen ehdotus on kääntää Nginx HTTP stub -tilamoduulilla, jotta voit myöhemmin seurata, kuinka monta elävää HLS-katselijaa sinulla on.
Sen sijaan, että kokoaisit:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Käytä tätä merkkijonoa edellytysasiakirjassa kuvatussa menettelyssä:
./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master
Tämän opetusohjelman esimerkki luo sekä "live"- että "mobiili" (optimoidut) streamit ja käyttää ffmpeg-komentoa (asennettu edelliseen opetusohjelmaan) bittinopeudella säädetyn, mobiilioptimoidun HLS-virran luomiseen. Esimerkki näyttää myös, kuinka saat palvelimen tallentamaan suoratoistosi automaattisesti ja sallimaan sinun toistaa tallenteet takaisin tilausvideo (VOD) -toistopalveluna.
Luo ensin tarvittavat kansiorakenteet live- ja mobiili HLS-luetteloiden ja videofragmenttien säilyttämiseen:
sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings
On luultavasti hyvä idea laittaa palomuuri päälle, jos et ole jo tehnyt niin. Jos näin on, sinun on sallittava liikenne Nginxin ja HLS:n käyttämiin portteihin. Jos haluat käyttää toistaiseksi ilman palomuuria, jätä huomioimatta alla oleva ufw-osio.
sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable
HLS-suoratoisto vaatii merkittävästi erilaisen Nginx-kokoonpanon kuin ensimmäisessä artikkelissa oleva RTMP-kokoonpano. Muokkaa nginx.conf
tiedostoa käyttämään seuraavaa ja korvaa "my-ip" ja "my-stream-key" tiedoillasi. Voit käyttää mitä tahansa "my-stream-key" -näppäimelle, se on vain sana, joka on ainutlaatuinen ja hyödyllinen sinulle. Voit halutessasi varmuuskopioida ensin alkuperäisen konfigurointitiedoston ja liittää sitten toimittamani määritystiedot editoriin ja korvata kaikki siellä olevat:
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf
Uusi 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;
}
}
}
Paina Ctrl + X poistua. Sano "kyllä" tallentaaksesi muutokset.
Löydät selkeät ohjeet ja esimerkkejä tästä nginx.conf
tiedostosta mahdollisista muuttujista, jos teet kyselyn suosikkihakukoneellesi "nginx-rtmp-direktiivit". Olen käyttänyt nginx-rtmp:tä HLS:n kanssa jo muutaman vuoden ajan käyttämättä "allow publish"- ja "deny publish" -käskyjä, ja olen nähnyt nolla tapausta, joissa ihmiset olisivat käyttäneet tai tunkeutuneet videopalvelimiini. Joten en sisällyttänyt näitä ohjeita tähän. Lue ja lisää nämä ohjeet, jos haluat.
Kun olet vaihtanut nginx.conf
tiedoston, sinun on käynnistettävä Nginx uudelleen, jotta voit käyttää uutta kokoonpanoa:
sudo service nginx restart
Tarkkaile tarkasti Nginx-virheilmoituksia ja korjaa kaikki virheet, jotka ovat saattaneet johtua kirjoitusvirheistä, kansion omistajuus- tai käyttöoikeusongelmista. Jos sinulla ei ole virheilmoituksia, olet valmis luomaan koodausvirtasi.
Sinulla on oltava videokooderi, jotta voit luoda streamin. Käytän OBS:ää (Open Broadcaster Software), joka on avoimen lähdekoodin ja toimii hyvin minulle. Valittavana on muita ratkaisuja, jotka eivät kuulu tämän opetusohjelman piiriin. En käsittele kaikkea RTMP-videokooderin määrittämisestä. Ne kaikki vaativat kuitenkin suunnilleen samat syöttömuuttujat. Tärkeimmät asetukset, jotka sinun on syötettävä, jotta voit käyttää tarkkaa nginx.conf
määritystäni ja toimiaksesi hyvin useimmissa soittimissa/selaimissa/alustoissa, ovat seuraavat:
Suosittelen kokeilemaan erilaisia koodereita ja kokeilemaan niitä. Saatat haluta laajan kuvasuhteen - tai kamerasi (tai muu lähetysmateriaalisi) saattaa vaatia sitä. Jos näin on, muista muuttaa nämä tiedot kooderissasi ja myös kuvasuhde, joka on lueteltu toimittamani nginx.conf
tiedoston exec-ffmpeg-osiossa . muuten saat hassun näköisiä videosyötteitä.
Kun enkooderisi on määritetty, voit testata sitä kaikkea. Käynnistä enkooderi verkkokameran tai jonkinlaisen testirehun avulla. Voit katsoa lähetystäsi tässä vaiheessa VLC-soittimella käyttämällä URL-osoitteita, kuten:
http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8
These are for your main and your mobile video streams, respectively. Substitute your IP and stream key accordingly.
After you've successfully broadcasted your first stream check (via ssh or ftp) that your live broadcast was recorded in the /video_recordings
folder on your Vultr VPS. You can also try playing this recorded file in VLC with a URL like:
rtmp://my-ip/vod/filename.flv
Nginx stats are also available (with Nginx stub_status). To view visitor/viewer stats, access:
http://my-ip/stats
Tarvitset upotettavan soittimen, jotta voit katsella videotasi verkkosivulla. Saatavilla on monia upotettavia soittimia, jotka toistavat HLS-videoita. Olen käyttänyt JW Playeriä muutaman vuoden, mutta ilmainen versio ei toista HLS:ää. Bitmovinin Flowplayer ja Bitdash (muiden ratkaisujen ohella) ovat riittävän anteliaita tarjotakseen soittimistaan ilmaiseksi ei-kaupallisen version, joka tekee HLS-streamisi upotettuna verkkosivulle. Tätä artikkelia varten olen kokeillut niitä molempia ja huomannut, että ne toimivat melko hyvin Vultr / Nginx-pohjaisen videopalvelimeni kanssa. Näytän lyhyesti, kuinka sain Flowplayerin toimimaan testipöytäkoneeni kanssa.
Jos aiot käyttää suoraa HLS-suoratoistoa jollakin tavallisella, jatkuvalla tai kaupallisella tavalla, kehotan sinua ostamaan lisenssin Flowplayeriltä tai miltä tahansa soittimelta, jota päätät käyttää. Saat soittimen, jolla on vähemmän rajoituksia, enemmän ominaisuuksia ja joka voidaan brändätä organisaatiollesi. Saat myös tukea – mikä voi olla erittäin tärkeää. Vultr VPS:n lisäksi tämä on oikeastaan ainoa hankkeeseen liittyvä kustannus.
Ennen kuin teet mitään muuta, on tärkeää huolehtia niin sanotuista "verkkotunnusten välisistä" rajoituksista, jotka muutoin estävät kykyäsi suoratoistaa verkkosivulle/verkkosivustolle. Luo crossdomain.xml
tiedosto nginx/html
kansioon ja laita siihen ohjeet, jotta tiedot kulkevat verkkotunnusten välillä:
sudo nano /usr/local/nginx/html/crossdomain.xml
Kopioi ensin (tältä sivulta) ja liitä (napsauta hiiren kakkospainikkeella) nanoeditorikenttään seuraavat XML-tiedot:
<?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>
Paina Ctrl + O kirjoittaaksesi ulos, sitten Ctrl + X tallentaaksesi tiedoston levylle ja poistuaksesi.
Nappasin Flowplayerin HTML5:n (versio 6.0.3), joka antoi minulle useita tiedostoja ja kansion, kun se purettiin. Latasin kaikki tiedostot ja kansion Nginx/HTML-juurikansion alikansioon, jonka nimesin "flowplayeriksi". Tarkka polku oli /usr/local/nginx/html/flowplayer
.
Voit testata videoamme verkkosivulle upotettuna luomalla pari HTML-tiedostoa Nginx/HTML-kansion juureen käyttämällä nanoa ja täyttämällä ne seuraavalla sisällöllä.
Tiedosto:
sudo nano /usr/local/nginx/html/hls.html
HTML-koodi:
<!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>
Tiedosto:
sudo nano /usr/local/nginx/html/hls_progressive.html
HTML-koodi:
<!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>
Muista korvata "my-ip" ja "my-stream-key" tiedoillasi.
Sinun on korvattava polku flowplayer/skin/functional.css
tyylitaulukon #-merkillä href="#"
. Opetusohjelma poistaa polun. Sinun on täytettävä URL-osoite src=""
osaan - opetusohjelma poistaa sen, käytä http://my-ip/live/my-stream-key/index.m3u8
ja http://my-ip/mobile/my-stream-key/index.m3u8
vastaavasti. Sinun on myös lisättävä komentosarjatunnisteet src
päähän sekä molemmille jquery-1.11.2.min.js
että flowplayer.min.js
. Tunnisteet poistetaan opetusohjelmalla. Löydät kuinka example html
muotoilla nämä tunnisteet katsomalla Flowplayer-sarjan mukana toimitettua tiedostoa.
Käynnistä enkooderi verkkokameran tai jonkinlaisen testirehun avulla. Voit katsella lähetystäsi selaimessa käyttämällä seuraavia URL-osoitteita:
http://my-ip/hls.html
http://my-ip/hls_progressive.html
Ensimmäisellä sivulla näkyy yksinkertaisesti jokainen streamisi - päävirta ja mobiilialusta. Voit käynnistää ne molemmat ja tarkastella niitä. Huomaat, että mobiilialustan stream on kooltaan pienempi. Nämä vaiheet ovat vain varmistaaksesi, että kaikki toimii.
Toisella sivulla näkyy yksittäinen stream. Mutta se on asetettu "progressiiviseksi suoratoistoksi" kutsutulla tavalla. Tämä tarkoittaa sitä, että kun katsoja toistaa videon, sekä palvelin että soitin yrittävät tarjota katsojalle korkean bittinopeuden ja korkealaatuisen streamin, jos katsojan yhteys voi ylläpitää sitä. Jos heidän yhteys on huono eikä se voi ylläpitää yhteyttä, se rullaa alaspäin näyttämään alhaisemman bittinopeuden (mobiili) virran, jonka kaistanleveys on 200 kbps pienempi. Halutessasi voit luoda asteittaisempia, progressiivisempia streameja ffmpegillä ja määrittää ne esimerkin avulla.
Olen testannut tätä kokoonpanoa yhdellä ytimellä, 1 Gt:n Vultr VPS:llä ja huomasin, että yhdellä suoratoistolla sekä sen ffmpegillä luomalla muunnetulla mobiilistriimällä prosessorin käyttö oli alle 35 % ja se oli kuluttanut vain 100 Mt. minun 1GB ram. Nyt se on erittäin tehokas järjestely.
Jos aiot suoratoistaa videota, jonka pikselimitat ovat paljon suurempia kuin SD, saatat huomata, että sinun on käytettävä tehokkaampaa VPS:ää. Olin utelias tästä ja juoksin päävirtani jopa 1280 x 960 pikseliin ja 2 Mbps:iin, mikä lisäsi asioita. Mutta VPS käytti silti vain 50 % suorittimesta ja muistin käyttö pysyi 100 megatavussa. Lisäsin tusinaa katsojaa/selainta, eikä sillä ollut juuri mitään eroa VPS:n kuormituksessa – vain käytetty kaistanleveys kasvoi. Olen varma, että ylimääräisten trans-rated-streamien luominen ffmpeg:llä lisäisi järjestelmän kuormitusta.
Olen käyttänyt tämän tyyppistä palvelinta tuotantoympäristöissä, joissa on 50–100 samanaikaista käyttäjää ja havaitsin, että resurssien käyttö kasvoi hyvin vähän katsojayhteyksien lisääntyessä. Kokeile sitä. Uskon kuitenkin, että useimmat käyttäjät käyttäisivät mielellään yhden ytimen, 1 Gt:n VPS:ää. Nauti uudesta HLS-suoratoistopalvelimestasi!
Käytätkö erilaista järjestelmää? Jekyll on loistava vaihtoehto WordPressille bloggaamiseen tai sisällön jakamiseen. Se ei vaadi tietokantoja ja se on erittäin helppoa i
Squid on suosittu, ilmainen Linux-ohjelma, jonka avulla voit luoda edelleenlähetysverkkovälityspalvelimen. Tässä oppaassa näet, kuinka Squid asennetaan CentOS:ään kääntääksesi sinut
Memcached on korkean suorituskyvyn tietokantajärjestelmä, joka voi auttaa lataamaan sovellustasi. Se on erittäin nopea, koska se ei kirjoita levylle, vaan sen sijaan t
Johdanto InfluxDB on avoimen lähdekoodin hajautettu aikasarjatietokanta, jossa ei ole ulkoisia riippuvuuksia. Kyllä, luit ei ulkoisia riippuvuuksia par
Fail2ban on ohjelma, joka valvoo kirjautumistoimintaa palvelimellasi ja estää loukkaavia IP-osoitteita. Oletusarvoisesti se estää IP-osoitteet 10 minuutiksi
Käytätkö erilaista järjestelmää? Red5 on Java-kielellä toteutettu avoimen lähdekoodin mediapalvelin, jonka avulla voit ajaa Flash-monikäyttäjäsovelluksia, kuten suoratoistoa.
Käytätkö erilaista järjestelmää? Vanilla forum on avoimen lähdekoodin foorumisovellus, joka on kirjoitettu PHP:llä. Se on täysin muokattavissa, helppokäyttöinen ja tukee ulkoista
Käytätkö erilaista järjestelmää? Johdanto Kanboard on ilmainen ja avoimen lähdekoodin projektinhallintaohjelmisto, joka on suunniteltu helpottamaan ja visualisoimaan
Käytätkö erilaista järjestelmää? Johdanto Kanboard on ilmainen ja avoimen lähdekoodin projektinhallintaohjelmisto, joka on suunniteltu helpottamaan ja visualisoimaan
Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu
Käytätkö erilaista järjestelmää? Gitea on vaihtoehtoinen avoimen lähdekoodin, itseisännöity versionhallintajärjestelmä, jota käyttää Git. Gitea on kirjoitettu golangilla ja on
Käytätkö erilaista järjestelmää? Wiki.js on ilmainen ja avoimen lähdekoodin moderni wikisovellus, joka on rakennettu Node.js:lle, MongoDB:lle, Gitille ja Markdownille. Wiki.js-lähdekoodi on julkinen
Käytätkö erilaista järjestelmää? Gitea on vaihtoehtoinen avoimen lähdekoodin itseisännöity versionhallintajärjestelmä, joka toimii gitin avulla. Gitea on kirjoitettu golangilla ja on
Käytätkö erilaista järjestelmää? Thelia on avoimen lähdekoodin työkalu sähköisen liiketoiminnan verkkosivustojen luomiseen ja PHP:llä kirjoitetun online-sisällön hallintaan. Thelia-lähdekoodi i
Käytätkö erilaista järjestelmää? Microweber on avoimen lähdekoodin vedä ja pudota sisällönhallintajärjestelmä ja verkkokauppa. Microweber-lähdekoodia isännöidään GitHubissa. Tämä opas näyttää sinulle
Käytätkö erilaista järjestelmää? Microweber on avoimen lähdekoodin vedä ja pudota sisällönhallintajärjestelmä ja verkkokauppa. Microweber-lähdekoodia isännöidään GitHubissa. Tämä opas näyttää sinulle
Käytätkö erilaista järjestelmää? MODX Revolution on nopea, joustava, skaalautuva, ilmainen ja avoimen lähdekoodin yritystason sisällönhallintajärjestelmä (CMS), joka on kirjoitettu i.
Käytätkö erilaista järjestelmää? Mattermost on avoimen lähdekoodin itseisännöity vaihtoehto Slack SAAS -viestipalvelulle. Toisin sanoen Mattermostin avulla voit noin
Käytätkö erilaista järjestelmää? DotCMS on avoimen lähdekoodin, yritystason sisällönhallintajärjestelmä, joka on kirjoitettu Java-kielellä. Se sisältää lähes kaikki tarvittavat ominaisuudet
Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on
Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.
Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.
Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.
Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.
Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…
Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.
Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.
Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.
Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.
Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja