Jekyll blog létrehozása Ubuntu 16.04-en
Más rendszert használ? A Jekyll nagyszerű alternatíva a WordPress helyett blogíráshoz vagy tartalommegosztáshoz. Nem igényel adatbázist, és nagyon egyszerű i
A HTTP Live Streaming (HLS) egy nagyon robusztus streaming videoprotokoll, amelyet az Apple Inc. valósított meg. A HLS HTTP-tranzakciókat használ, amelyek áthaladnak a tűzfalakon és a proxykon, és könnyen terjeszthetők CDN-eken keresztül. Ezért ez a technológia sokkal nagyobb nézőközönséget képes elérni, mint az RTP vagy más UDP-alapú protokollok. Az online élő streaming videók nagy részét ma drága rendszerek tárolják, amelyek HLS-t használnak, de ezek általában drágák és sok szervererőforrást igényelnek. Ez az oktatóanyag bemutatja, hogyan állíthat be egy nagyon kedvező árú Ubuntu 14.04 VULTR VPS-t HLS élő streaming eseményekhez kizárólag nyílt forráskódú szoftverek használatával.
Az első lépés a kiszolgáló beolvasása és beállítása a Vultr Doc " Nginx-RTMP beállítása Ubuntu 14.04-en " című dokumentumnak megfelelően. A dokumentumban található utasítások voltak a legátfogóbbak a beállítási szakaszban, az írás idején. Szeretném megemlíteni, hogy az "nginx-1.7.5" kifejezést lecserélheti az "nginx-1.9.4" kifejezésre, vagy bármi másra, amelyre az Nginx legújabb verziója elérhető. A másik javaslat az, hogy fordítsa le az Nginx-et a HTTP csonk állapotmodullal, hogy később figyelemmel kísérhesse, hány élő HLS-megjelenítője van.
Az összeállítás helyett:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Használja ezt a karakterláncot az előfeltétel dokumentumban leírt eljárásban:
./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master
Az oktatóanyagban szereplő példa "élő" és "mobil" (optimalizált) adatfolyamokat is létrehoz, és az ffmpeg (az előző oktatóanyagban telepített) segítségével hozza létre a bitsebességgel beállított, mobilra optimalizált HLS adatfolyamot. A példa azt is bemutatja, hogyan lehet elérni, hogy a szerver automatikusan rögzítse az élő közvetítéseket, és hogyan játssza le a felvételeket igény szerinti video (VOD) visszajátszási szolgáltatásként.
Először hozza létre az élő és mobil HLS-jegyzékek és videótöredékek tárolásához szükséges mappastruktúrákat:
sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings
Valószínűleg érdemes bekapcsolni a tűzfalat, ha még nem tette meg. Ha igen, engedélyeznie kell a forgalmat az Nginx és a HLS által használt portokra. Ha egyelőre tűzfal nélkül szeretne futni, hagyja figyelmen kívül az alábbi ufw részt.
sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable
A HLS adatfolyamhoz az első cikkben szereplő RTMP-konfigurációtól jelentősen eltérő Nginx-konfigurációra van szükség. Szerkessze a nginx.conf
fájlt úgy, hogy az alábbiakat használja, és a "my-ip" és a "my-stream-key" helyére cserélje be adatait. Bármit használhat a "my-stream-key" kifejezéshez, ez csak egy szó, amely egyedi és hasznos az Ön számára. Előbb készítsen biztonsági másolatot az eredeti konfigurációs fájlról, majd illessze be a megadott konfigurációs adataimat a szerkesztőbe, és mindent lecserél, ami ott volt:
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf
Új 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;
}
}
}
A kilépéshez nyomja meg a Ctrl + X billentyűket . A módosítások mentéséhez mondjon „igen”-t.
Ebben a nginx.conf
fájlban egyértelmű utasításokat és példákat találhat a lehetséges változókra, ha kedvenc keresőjében lekérdezi az "nginx-rtmp direktívák" kifejezést. Néhány éve használom az nginx-rtmp-t HLS-sel, az "allow publish" és "deny publish" direktívák használata nélkül, és nulla olyan esetet láttam, amikor valaki használná/behatolta volna a videószerveremet. Tehát ezeket az irányelveket nem vettem fel ide. Olvassa el és adja hozzá ezeket az irányelveket, ha szeretné.
A nginx.conf
fájl módosítása után újra kell indítania az Nginx-et az új konfiguráció használatához:
sudo service nginx restart
Figyeljen az Nginx hibaüzeneteire, és javítsa ki azokat a hibákat, amelyeket elírási, mappatulajdonlási vagy engedélyekkel kapcsolatos problémák okozhattak. Ha nincs hibaüzenet, akkor készen áll a kódolási adatfolyam létrehozására.
Az adatfolyam létrehozásához videokódolóval kell rendelkeznie. OBS-t (Open Broadcaster Software) használok – ami nyílt forráskódú és jól működik számomra. Más megoldások közül is választhat, amelyek kívül esnek ezen oktatóanyag hatókörén. Nem térek ki mindenre az RTMP videokódoló konfigurálásával kapcsolatban. Mindazonáltal mindegyikhez nagyjából ugyanazok a bemeneti változók szükségesek. A legfontosabb beállítások, amelyeket meg kell adnia ahhoz, hogy a pontos nginx.conf
konfigurációmat használhassa, és hogy a legtöbb lejátszón/böngészőn/platformon jól működjön, a következők:
Azt javaslom, próbáljon ki különböző kódolókat és kísérletezzen velük. Lehet, hogy széles képarányra vágyik – vagy a fényképezőgépe (vagy más sugárzott) anyaga ezt követelheti. Ha igen, mindenképpen módosítsa ezeket az adatokat a kódolójában, valamint az nginx.conf
általam biztosított fájl exec-ffmpeg szakaszában felsorolt képarányt is ; különben kapsz néhány ostoba kinézetű videót.
Miután beállította a kódolót, mindent tesztelhet. Indítsa el a kódolót webkamerájával vagy valamilyen teszttakarmány segítségével. Ezen a ponton megtekintheti a közvetítést a VLC lejátszóval olyan URL-ek használatával, mint például:
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
Ahhoz, hogy a videót egy weboldalon nézhesse meg, beágyazható lejátszóra lesz szüksége. Számos beágyazható lejátszó áll rendelkezésre, amelyek HLS-videót játszanak le. Néhány éve használom a JW Playert, de az ingyenes verzió nem fog HLS-t játszani. A Flowplayer és a Bitdash by Bitmovin (egyéb megoldások mellett) elég nagylelkűek ahhoz, hogy ingyenesen kínálják lejátszóik nem kereskedelmi verzióját, amely a HLS-adatfolyamot egy weboldalba ágyazva jeleníti meg. Ebben a cikkben mindkettőt kipróbáltam, és azt találtam, hogy mindkettő elég jól működik a Vultr/Nginx alapú videoszerveremnél. Röviden bemutatom, hogyan indítottam el a Flowplayert a tesztágyas gépemmel.
Ha bármilyen szokásos, tartós vagy kereskedelmi módon szeretné használni az élő HLS streaminget, azt javaslom, hogy vásároljon licencet a Flowplayertől, vagy attól, hogy melyik lejátszót választja. Kapsz egy lejátszót, amely kevesebb korlátozással, több funkcióval rendelkezik, és a szervezetedhez illeszthető. Támogatást is kapsz – ami nagyon fontos lehet. A Vultr VPS-en kívül valójában ez az egyetlen költség, amely a projekthez kapcsolódik.
Mielőtt bármi mást tenne, fontos, hogy ügyeljen az úgynevezett „tartományok közötti” korlátozásokra, amelyek egyébként leállítanák a streamelést egy weboldalra/webhelyre. Hozzon létre egy crossdomain.xml
fájlt a nginx/html
mappájában, és helyezzen el benne utasításokat, hogy lehetővé tegye az adatok áramlását a tartományok között:
sudo nano /usr/local/nginx/html/crossdomain.xml
Először másolja ki (erről az oldalról), majd illessze be (jobb gombbal) a nanoszerkesztő mezőbe a következő XML-adatokat:
<?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>
Nyomja meg a Ctrl + O billentyűket a kiírásához , majd a Ctrl + X billentyűket a fájl lemezre mentéséhez és kilépéshez.
Megragadtam a Flowplayer HTML5-jét (6.0.3-as verzió), amely számos fájlt és egy mappát adott, amikor kicsomagoltam. Feltöltöttem az összes fájlt és a mappát az Nginx/HTML gyökérmappa almappájába, amelyet "flowplayer"-nek neveztem el. A pontos út az volt /usr/local/nginx/html/flowplayer
.
A weboldalba ágyazott videó teszteléséhez hozzon létre néhány HTML-fájlt az Nginx/HTML mappa gyökerében a nano segítségével, és töltse fel őket a következő tartalommal.
Fájl:
sudo nano /usr/local/nginx/html/hls.html
HTML kód:
<!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>
Fájl:
sudo nano /usr/local/nginx/html/hls_progressive.html
HTML kód:
<!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>
Ügyeljen arra, hogy a „my-ip” és „my-stream-key” szavakat helyettesítse adataival.
A flowplayer/skin/functional.css
stíluslap "#" jelét az elérési úttal kell helyettesítenie href="#"
. Az oktatóprogram levágja az utat. Ki kell töltenie egy URL-t a src=""
részben – azt az oktatószoftver eltávolítja, használja a http://my-ip/live/my-stream-key/index.m3u8
és http://my-ip/mobile/my-stream-key/index.m3u8
. Szkriptcímkéket is hozzá kell adnia a fejléchez src
mind jquery-1.11.2.min.js
és a számára is flowplayer.min.js
. A címkéket az oktatószoftver eltávolítja. Megtudhatja, hogyan alakíthatja ki ezeket a címkéket, ha megnézi example html
a Flowplayer készlethez mellékelt fájlt.
Indítsa el a kódolót webkamerájával vagy valamilyen teszttakarmány segítségével. A közvetítést böngészőben tekintheti meg a következő URL-címek használatával:
http://my-ip/hls.html
http://my-ip/hls_progressive.html
Az első oldalon egyszerűen minden adatfolyamod látható – a fő és a mobilplatform. Mindkettőt elindíthatja és megtekintheti. Észre fogja venni, hogy a mobilplatform adatfolyam kisebb méretű. Ezek a lépések csak arra szolgálnak, hogy megbizonyosodjanak arról, hogy minden működik.
A második oldalon egyetlen adatfolyam látható. De úgy van beállítva, hogy az úgynevezett "progresszív streaming". Ez azt jelenti, hogy amikor a néző lejátssza a videót, a szerver és a lejátszó is megpróbálja a nagy bitsebességű, jó minőségű adatfolyamot biztosítani a nézőnek, ha a nézői kapcsolat fenntartja azt. Ha a kapcsolatuk gyenge, és nem tudja fenntartani a kapcsolatot, akkor az alacsonyabb bitsebességű (mobil) adatfolyamot mutatja, amelynek sávszélessége 200 kbps-al alacsonyabb. Ha szeretné, több fokozatos, progresszív adatfolyamot is létrehozhat az ffmpeg segítségével, és beállíthatja őket a példám segítségével.
Ezt a konfigurációt egyetlen magon, 1 GB Vultr VPS-en teszteltem, és azt tapasztaltam, hogy egyetlen élő közvetítéssel, valamint az általa az ffmpeg segítségével létrehozott transz-rated mobil adatfolyammal a processzorhasználat kevesebb, mint 35% volt, és csak 100 MB-ot fogyasztott. az 1GB ramom. Ez most egy nagyon hatékony beállítás.
Ha olyan videót tervez, amely pixelmérete sokkal nagyobb, mint az SD, előfordulhat, hogy erősebb VPS-t kell használnia. Kíváncsi voltam erre, és a fő adatfolyamomat 1280x960 pixelre és 2 Mbps-re futtattam, ami további terhelést jelent a dolgokra. De a VPS továbbra is csak 50% CPU-t használt, a memóriahasználat pedig 100 MB maradt. Hozzáadtam egy tucat nézőt/böngészőt, és ez szinte semmit sem változtatott a VPS terhelésén – csak a használt sávszélesség nőtt. Biztos vagyok benne, hogy további transz-rated adatfolyamok létrehozása az ffmpeg segítségével továbbra is további terhelést jelentene a rendszerre.
Használtam ezt a típusú szervert éles környezetben, 50 és 100 egyidejű felhasználóval, és azt tapasztaltam, hogy az erőforrás-felhasználás nagyon keveset nőtt a megnövekedett nézői kapcsolatok miatt. Kísérletezzen vele. De úgy gondolom, hogy a legtöbb felhasználó boldog lenne, ha egymagos, 1 GB-os VPS-t használna. Élvezze új HLS streaming szerverét!
Más rendszert használ? A Jekyll nagyszerű alternatíva a WordPress helyett blogíráshoz vagy tartalommegosztáshoz. Nem igényel adatbázist, és nagyon egyszerű i
A Squid egy népszerű, ingyenes Linux-program, amely lehetővé teszi továbbítási webproxy létrehozását. Ebben az útmutatóban megtudhatja, hogyan telepítheti a Squid-et a CentOS rendszerre, hogy megfordítsa
A Memcached egy nagy teljesítményű adatbázis-rendszer, amely segíthet az alkalmazás feltöltésében. Nagyon gyors, mivel nem ír a lemezre, hanem t
Bevezetés Az InfluxDB egy nyílt forráskódú, elosztott, idősoros adatbázis, külső függőségek nélkül. Igen, elolvastad a külső függőségek nélkül par
A Fail2ban egy olyan program, amely figyeli a bejelentkezési tevékenységet a szerveren, és blokkolja a jogsértő IP-címeket. Alapértelmezés szerint 10 percig blokkolja az IP-címeket
Más rendszert használ? A Red5 egy Java nyelven megvalósított nyílt forráskódú médiaszerver, amely lehetővé teszi többfelhasználós Flash-alkalmazások, például élő streamin futtatását.
Más rendszert használ? A Vanilla forum egy nyílt forráskódú, PHP-ben írt fórumalkalmazás. Ez egy teljesen testreszabható, könnyen használható, és támogatja a külsőt
Más rendszert használ? Bevezetés A Kanboard egy ingyenes és nyílt forráskódú projektmenedzsment szoftver, amely megkönnyíti és vizualizálja
Más rendszert használ? Bevezetés A Kanboard egy ingyenes és nyílt forráskódú projektmenedzsment szoftver, amely megkönnyíti és vizualizálja
Más rendszert használ? A Tiny Tiny RSS Reader egy ingyenes és nyílt forráskódú, saját üzemeltetésű webalapú hírfolyam (RSS/Atom) olvasó és aggregátor, amelyet úgy terveztek, hogy
Más rendszert használ? A Gitea egy alternatív nyílt forráskódú, saját üzemeltetésű verziókezelő rendszer, amelyet a Git üzemeltet. A Gitea golang nyelven íródott, és az is
Más rendszert használ? A Wiki.js egy ingyenes és nyílt forráskódú, modern wikialkalmazás, amely Node.js-re, MongoDB-re, Git-re és Markdownra épül. A Wiki.js forráskódja nyilvános
Más rendszert használ? A Gitea egy alternatív, nyílt forráskódú, saját üzemeltetésű verziókezelő rendszer, amelyet a git üzemeltet. A Gitea golang nyelven íródott, és az is
Más rendszert használ? A Thelia egy nyílt forráskódú eszköz e-üzleti webhelyek létrehozására és PHP-ben írt online tartalmak kezelésére. Thelia forráskód i
Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked
Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked
Más rendszert használ? A MODX Revolution egy gyors, rugalmas, méretezhető, ingyenes és nyílt forráskódú, vállalati szintű tartalomkezelő rendszer (CMS)
Más rendszert használ? A Vanilla forum egy nyílt forráskódú, PHP-ben írt fórumalkalmazás. Ez egy teljesen testreszabható, könnyen használható, és támogatja a külsőt
Más rendszert használ? A Mattermost egy nyílt forráskódú, saját üzemeltetésű alternatívája a Slack SAAS üzenetküldő szolgáltatásnak. Más szóval, a Mattermost segítségével kb
Más rendszert használ? A DotCMS egy nyílt forráskódú, vállalati szintű, Java nyelven írt tartalomkezelő rendszer. Szinte minden szükséges funkciót tartalmaz t
Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <<strong>>Windows ISO<<strong>> előállításának lépéseit az NTLite segítségével.
A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.
Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.
Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.
Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.
Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…
Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.
Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.
Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.
Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.