Kan AI vechten met toenemend aantal ransomware-aanvallen?
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
HTTP Live Streaming (HLS) is een zeer robuust streaming videoprotocol geïmplementeerd door Apple Inc. HLS maakt gebruik van HTTP-transacties die firewalls en proxy's doorlopen en gemakkelijk via CDN's kunnen worden gedistribueerd. Daarom kan deze technologie een veel groter kijkpubliek bereiken dan RTP of andere op UDP gebaseerde protocollen. Een groot deel van de livestreamingvideo die vandaag online wordt gehost, wordt gehost door dure systemen die HLS gebruiken, maar deze zijn over het algemeen duur en vereisen veel serverbronnen. Deze tutorial laat je zien hoe je een zeer betaalbare Ubuntu 14.04 VULTR VPS opzet om HLS live streaming-evenementen te doen met alleen open source software.
De eerste stap is het lezen en instellen van uw server volgens het Vultr Doc " Setup Nginx-RTMP op Ubuntu 14.04 ". De instructies in dat document waren op het moment van schrijven de meest uitgebreide voor de installatiefase. Ik zou willen vermelden dat je misschien "nginx-1.7.5" wilt vervangen door "nginx-1.9.4" of wat de laatste versie van Nginx ook is. De andere suggestie is om Nginx te compileren met de HTTP-stub-statusmodule om jezelf de mogelijkheid te geven te controleren hoeveel live HLS-kijkers je later hebt.
In plaats van te compileren met:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Gebruik deze tekenreeks in de procedure die wordt beschreven in het vereiste document:
./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master
Het voorbeeld in deze tutorial zal zowel "live" als "mobiele" (geoptimaliseerde) streams creëren en zal ffmpeg (geïnstalleerd in de vorige tutorial) gebruiken om de voor bitsnelheid aangepaste, voor mobiel geoptimaliseerde HLS-stream te genereren. Het voorbeeld laat ook zien hoe u ervoor kunt zorgen dat de server uw livestreams automatisch opneemt en dat u de opnames kunt afspelen als een video on demand (VOD) -herhalingsservice.
Maak eerst de mapstructuren die nodig zijn om de live en mobiele HLS-manifesten en videofragmenten te bewaren:
sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings
Het is waarschijnlijk een goed idee om uw firewall aan te zetten als u dat nog niet heeft gedaan. Als dat zo is, moet u verkeer toestaan naar de poorten die worden gebruikt door Nginx en HLS. Als u voorlopig zonder de firewall wilt werken, negeert u de onderstaande ufw-sectie.
sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable
HLS-streaming vereist een aanzienlijk andere Nginx-configuratie dan de RTMP-configuratie in het eerste artikel. Bewerk uw nginx.conf
bestand om het volgende te gebruiken, waarbij u "mijn-ip" en "mijn-stroom-sleutel" vervangt door uw gegevens. U kunt alles gebruiken wat u maar wilt voor "my-stream-key", het is slechts een woord dat uniek en nuttig voor u is. Mogelijk wilt u eerst een back-up maken van uw oorspronkelijke configuratiebestand en vervolgens mijn meegeleverde configuratie-informatie in de editor plakken, waarbij u alles vervangt wat er was:
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf
Nieuwe 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;
}
}
}
Druk op Ctrl + X om af te sluiten. Zeg "ja" om de wijzigingen op te slaan.
U kunt duidelijke instructies en voorbeelden van de mogelijke variabelen in dit nginx.conf
bestand vinden als u uw favoriete zoekmachine zoekt op "nginx-rtmp directives". Ik gebruik nginx-rtmp al enkele jaren met HLS, zonder de richtlijnen "toestaan publiceren" en "weigeren publiceren" te gebruiken en ik heb nul gevallen gezien van mensen die mijn videoservers gebruiken / binnendringen. Dus die richtlijnen heb ik hier niet opgenomen. Lees deze richtlijnen en voeg ze toe als u dat wilt.
Na het wijzigen van het nginx.conf
bestand moet u Nginx opnieuw opstarten om de nieuwe configuratie te gebruiken:
sudo service nginx restart
Let goed op eventuele Nginx-foutmeldingen en los eventuele fouten op die mogelijk zijn veroorzaakt door spelfouten, mapbezit of problemen met toestemmingen. Als je geen foutmeldingen hebt, ben je klaar om je coderingsstream te maken.
Je moet een video-encoder hebben om de stream te maken. Ik gebruik OBS (Open Broadcaster Software) - dat is open-source en werkt goed voor mij. U kunt uit andere oplossingen kiezen, die buiten het bestek van deze zelfstudie vallen. Ik zal niet alles behandelen over het configureren van een RTMP-video-encoder. Ze hebben echter allemaal ongeveer dezelfde invoervariabelen nodig. De belangrijkste instellingen die u moet invoeren om mijn exacte nginx.conf
configuratie te gebruiken en om goed te functioneren in de meeste spelers / browsers / platforms zijn als volgt:
Ik raad aan om verschillende encoders te proberen en ermee te experimenteren. U wilt misschien een brede beeldverhouding - of uw camera (of andere uitzending) materialen kunnen dit eisen. Als dat zo is, zorg er dan voor dat je deze info in je encoder verandert en ook de aspectratio vermeld in het exec-ffmpeg-gedeelte van het nginx.conf
bestand dat ik heb aangeleverd; anders krijg je wat gekke videofeeds.
Zodra uw encoder is ingesteld, kunt u alles testen. Start de encoder op met je webcam of een soort testvoer dat erop draait. U kunt uw uitzending op dit punt bekijken met VLC-speler met behulp van URL's zoals:
http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8
Deze zijn respectievelijk voor uw hoofd- en uw mobiele videostreams. Vervang uw IP en streamsleutel dienovereenkomstig.
Nadat je je eerste stream hebt uitgezonden, controleer je (via ssh of ftp) of je live uitzending is opgenomen in de /video_recordings
map op je Vultr VPS. Je kunt ook proberen dit opgenomen bestand in VLC af te spelen met een URL zoals:
rtmp://my-ip/vod/filename.flv
Nginx-statistieken zijn ook beschikbaar (met Nginx stub_status). Om bezoekers- / kijkerstatistieken te bekijken, gaat u naar:
http://my-ip/stats
Om je video op een webpagina te bekijken, heb je een insluitbare speler nodig. Er zijn veel insluitbare spelers beschikbaar die HLS-video kunnen afspelen. Ik gebruik JW Player nu al een aantal jaren, maar de gratis versie zal HLS niet spelen. Flowplayer en Bitdash van Bitmovin (naast andere oplossingen) zijn genereus genoeg om gratis een niet-commerciële versie van hun spelers aan te bieden, waardoor je HLS-stream in een webpagina wordt ingebed. Voor dit artikel heb ik ze allebei geprobeerd en ik vond dat ze allebei redelijk goed werkten met mijn op Vultr / Nginx gebaseerde videoserver. Ik zal kort laten zien hoe ik Flowplayer aan de gang kreeg met mijn testbedmachine.
Als je live HLS-streaming op een regelmatige, duurzame of commerciële manier gaat gebruiken, raad ik je aan om een licentie te kopen van Flowplayer of welke speler je ook besluit te gebruiken. U krijgt een speler met minder beperkingen, meer functies en een merknaam voor uw organisatie. Je krijgt ook ondersteuning - wat erg belangrijk kan zijn. Anders dan de Vultr VPS, zijn dit echt de enige kosten die aan het project zijn verbonden.
Voordat u iets anders doet, is het belangrijk om te zorgen voor zogenaamde "domeinoverschrijdende" beperkingen, die anders uw vermogen om naar een webpagina / website te streamen zouden uitschakelen. Maak een crossdomain.xml
bestand in uw nginx/html
map en plaats instructies daarin om gegevens tussen domeinen te laten stromen:
sudo nano /usr/local/nginx/html/crossdomain.xml
Kopieer eerst (vanaf deze pagina) en plak (klik met de rechtermuisknop) in het nano-editorveld de volgende XML-gegevens:
<?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>
Druk op Ctrl + O om weg te schrijven en vervolgens op Ctrl + X om het bestand op schijf op te slaan en af te sluiten.
Ik pakte de HTML5 (versie 6.0.3) van Flowplayer die me een aantal bestanden en een map opleverde toen ik hem uitgepakt had. Ik heb alle bestanden en de map geüpload naar een submap van de Nginx / HTML-hoofdmap die ik "flowplayer" heb genoemd. Het exacte pad was /usr/local/nginx/html/flowplayer
.
Om onze video te testen wanneer deze is ingesloten in een webpagina, maakt u een paar HTML-bestanden in de hoofdmap van de Nginx / HTML-map met behulp van nano en vult u deze in met de volgende inhoud.
Het dossier:
sudo nano /usr/local/nginx/html/hls.html
HTML code:
<!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>
Het dossier:
sudo nano /usr/local/nginx/html/hls_progressive.html
HTML code:
<!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>
Zorg ervoor dat u "mijn-ip" en "mijn-stroom-sleutel" vervangt door uw gegevens.
U moet het pad flowplayer/skin/functional.css
voor het teken "#" in de stylesheet vervangen href="#"
. De tutorialsoftware ontdoet het pad. Je moet in een URL in te vullen src=""
deel - het wordt uitgevoerd gestript door de tutorial software, het gebruik http://my-ip/live/my-stream-key/index.m3u8
en http://my-ip/mobile/my-stream-key/index.m3u8
, respectievelijk. Je moet ook scripttags src
in het hoofd toevoegen voor zowel jquery-1.11.2.min.js
als voor flowplayer.min.js
. De tags worden verwijderd door de tutorialsoftware. Je kunt zien hoe je deze tags maakt door naar het example html
bestand te kijken dat bij de Flowplayer-kit is geleverd.
Start de encoder op met je webcam of een soort testvoer dat erop draait. Je kunt je uitzending in een browser bekijken met de volgende URL's:
http://my-ip/hls.html
http://my-ip/hls_progressive.html
De eerste pagina toont eenvoudig al je streams - de belangrijkste en het mobiele platform. U kunt ze allebei opstarten en bekijken. Je zult merken dat de stream van het mobiele platform kleiner is. Deze stappen zijn bedoeld om ervoor te zorgen dat alles actief is.
De tweede pagina toont een enkele stream. Maar het is opgezet op een manier die "progressive streaming" wordt genoemd. Wat dit betekent is dat wanneer een kijker de video afspeelt, zowel de server als de speler proberen de kijker de stream met hoge bitsnelheid en hoge kwaliteit te geven als de kijkersverbinding deze kan ondersteunen. Als hun verbinding slecht is en de verbinding niet kan worden onderhouden, komt dit neer op het tonen van de (mobiele) stream met lagere bitsnelheid die 200 kbps lager is in bandbreedte. Als je zou willen, kun je meer gefaseerde, progressieve streams maken met ffmpeg en ze configureren met mijn voorbeeld.
Ik heb deze configuratie getest op een enkele kern, 1 GB Vultr VPS en ik ontdekte dat met een enkele livestream, plus de trans-rated mobiele stream die het creëert met ffmpeg, het cpu-gebruik minder dan 35% was en het slechts 100 MB had verbruikt mijn 1 GB RAM. Dat is een heel efficiënte setup.
Als u van plan bent om video te streamen die veel groter is in pixelafmetingen dan SD, zult u merken dat u een krachtigere VPS moet gebruiken. Ik was hier nieuwsgierig naar en voerde mijn hoofdstream uit tot 1280x960 pixels en 2 Mbps - wat de zaken extra belastte. Maar de VPS gebruikte nog steeds slechts 50% CPU en het geheugengebruik bleef op 100 MB. Ik heb een dozijn kijkers / browsers toegevoegd en het maakte bijna geen verschil in belasting op de VPS - alleen de gebruikte bandbreedte ging omhoog. Ik weet zeker dat het creëren van extra trans-rated streams met ffmpeg het systeem extra belast zou blijven houden.
Ik heb dit type server gebruikt in productieomgevingen met tussen de 50 en 100 gelijktijdige gebruikers en ontdekte dat het gebruik van hulpbronnen zeer weinig steeg met toenemende kijkerverbindingen. Experimenteer ermee. Maar ik denk dat de meeste gebruikers graag een single-core, 1GB VPS gebruiken. Geniet van je nieuwe HLS-streamingserver!
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.