Nastavte Nginx na Ubuntu pro streamování živého HLS videa

Nastavte Nginx na Ubuntu pro streamování živého HLS videa

HTTP Live Streaming (HLS) je velmi robustní streamovací video protokol implementovaný společností Apple Inc. HLS využívá HTTP transakce, které procházejí firewally, proxy a lze je snadno distribuovat prostřednictvím CDN. Proto je tato technologie schopna oslovit mnohem větší publikum než RTP nebo jiné protokoly založené na UDP. Velká část online streamovaného videa je dnes hostována drahými systémy, které používají HLS, ale ty jsou obecně drahé a vyžadují hodně serverových zdrojů. Tento tutoriál vám ukáže, jak nastavit velmi cenově dostupný Ubuntu 14.04 VULTR VPS pro pořádání událostí živého vysílání HLS pouze pomocí softwaru s otevřeným zdrojovým kódem.

Prvním krokem je přečíst a nastavit váš server podle dokumentu Vultr Doc „ Setup Nginx-RTMP on Ubuntu 14.04 “. Pokyny v tomto dokumentu byly v době psaní nejobsáhlejší pro fázi nastavení. Zmínil bych, že možná budete chtít nahradit „nginx-1.7.5“ „nginx-1.9.4“ nebo čímkoli, co je k dispozici nejnovější verze Nginx. Dalším návrhem je zkompilovat Nginx se stavovým modulem HTTP stub, abyste měli možnost později sledovat, kolik živých diváků HLS máte.

Místo kompilace s:

./configure --with-http_ssl_module  --add-module=../nginx-rtmp-module-master

Použijte tento řetězec v postupu popsaném v požadovaném dokumentu:

./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master

Příklad v tomto tutoriálu vytvoří „živé“ i „mobilní“ (optimalizované) streamy a použije ffmpeg (nainstalovaný v předchozím tutoriálu) ke generování streamu HLS s upravenou bitovou rychlostí a optimalizovaným pro mobily. Příklad také ukáže, jak zajistit, aby server automaticky zaznamenával vaše živé přenosy a aby vám umožnil přehrávat nahrávky jako službu přehrávání videa na vyžádání (VOD).

Nejprve vytvořte struktury složek potřebné k uložení živých a mobilních manifestů HLS a fragmentů videa:

sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings

Pravděpodobně je dobré mít zapnutý firewall, pokud jste tak ještě neudělali. Pokud ano, musíte povolit provoz do portů používaných Nginx a HLS. Pokud chcete prozatím běžet bez firewallu, ignorujte níže uvedenou sekci ufw.

sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable

Streamování HLS vyžaduje výrazně odlišnou konfiguraci Nginx od konfigurace RTMP v prvním článku. Upravte svůj nginx.confsoubor tak, aby používal následující, nahraďte „my-ip“ a „my-stream-key“ svými informacemi. Pro „my-stream-key“ můžete použít cokoliv chcete, je to jen slovo, které je jedinečné a pro vás užitečné. Možná budete chtít nejprve zálohovat svůj původní konfigurační soubor a poté vložit mé dodané konfigurační informace do editoru a nahradit vše, co tam bylo:

sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf

Nový 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;
}   
}
}

Stiskněte Ctrl + X pro ukončení. Chcete-li uložit změny, řekněte „ano“.

V tomto nginx.confsouboru můžete najít jasné pokyny a příklady proměnných, které jsou možné, pokud ve svém oblíbeném vyhledávači zadáte dotaz „směrnice nginx-rtmp“. Už několik let používám nginx-rtmp s HLS, aniž bych použil direktivy „povolit publikování“ a „zakázat zveřejnit“ a neviděl jsem žádné případy lidí, kteří by používali/napadali mé video servery. Takže jsem sem ty směrnice nezahrnul. Přečtěte si a přidejte tyto směrnice, pokud chcete.

Po změně nginx.confsouboru musíte restartovat Nginx, abyste mohli použít novou konfiguraci:

sudo service nginx restart

Pozorně sledujte jakékoli chybové zprávy Nginx a řešte všechny chyby, které mohly být způsobeny překlepy, vlastnictvím složky nebo problémy s oprávněními. Pokud nemáte žádné chybové zprávy, jste připraveni vytvořit kódovaný stream.

Abyste mohli vytvořit stream, musíte mít kodér videa. Používám OBS (Open Broadcaster Software) – což je open-source a funguje mi dobře. Na výběr jsou další řešení, která jsou mimo rozsah tohoto návodu. Nebudu popisovat vše o konfiguraci kodéru videa RTMP. Všechny však vyžadují zhruba stejné vstupní proměnné. Klíčová nastavení, která budete muset zadat, abyste mohli používat moji přesnou nginx.confkonfiguraci a dobře fungovat ve většině přehrávačů/prohlížečů/platforem, jsou následující:

  1. Encoder-x264
  2. Variabilní datový tok (ne CBR nebo konstantní datový tok), kvalita nejvyšší
  3. Maximální přenosová rychlost - 600 kbps
  4. Audio-kodek-AAC
  5. Formát zvuku - 44,1 kHz
  6. Přenosová rychlost zvuku - 64 kbps
  7. FMS URL-"rtmp://moje-ip:1935/live"
  8. Stream Key-"my-stream-key"
  9. Rozlišení - 640 x 480
  10. FPS (snímky za sekundu) - 30
  11. CFR (Constant Frame Rate) – Ano
  12. Interval klíčových snímků – 2 sekundy (jeden klíčový snímek každé 2 sekundy)
  13. Kódování x264 Základní profil (může fungovat s hlavním – v závislosti na použitém přehrávači)
  14. x264 CPU Present - velmi rychlý

Doporučuji vyzkoušet různé kodéry a experimentovat s nimi. Můžete si přát širokoúhlý poměr stran – nebo to může vyžadovat vaše kamera (nebo jiné vysílané) materiály. Pokud ano, nezapomeňte změnit tyto informace ve svém kodéru a také poměr stran uvedený v části exec-ffmpeg nginx.confsouboru, který jsem dodal; jinak získáte praštěná videa.

Jakmile je váš kodér nastaven, můžete vše otestovat. Spusťte kodér pomocí webové kamery nebo nějakého testovacího zařízení, které na ní běží. V tomto okamžiku můžete své vysílání zobrazit pomocí přehrávače VLC pomocí adres URL, jako jsou:

http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8

Jsou určeny pro váš hlavní a mobilní videostream. Podle toho nahraďte svou IP a klíč streamu.

Poté, co jste úspěšně odvysílali svůj první stream, zkontrolujte (přes ssh nebo ftp), že vaše živé vysílání bylo zaznamenáno ve /video_recordingssložce na vašem Vultr VPS. Můžete také zkusit přehrát tento nahraný soubor ve VLC s adresou URL jako:

rtmp://my-ip/vod/filename.flv

K dispozici jsou také statistiky Nginx (s Nginx stub_status). Chcete-li zobrazit statistiky návštěvníků/diváků, přejděte na:

http://my-ip/stats

Chcete-li zobrazit video na webové stránce, budete potřebovat přehrávač, který lze vložit. K dispozici je mnoho vložitelných přehrávačů, které budou přehrávat HLS video. JW Player používám již několik let, ale bezplatná verze nebude hrát HLS. Flowplayer a Bitdash od Bitmovin (mimo jiné řešení) jsou dostatečně velkorysé na to, aby nabízely nekomerční verzi svých přehrávačů zdarma, díky čemuž bude váš stream HLS vložen do webové stránky. Pro tento článek jsem je vyzkoušel oba a zjistil jsem, že oba docela dobře fungují s mým videoserverem založeným na Vultr/Nginx. Krátce ukážu, jak jsem Flowplayer uvedl do chodu se svým testovacím strojem.

Pokud se chystáte používat živé vysílání HLS jakýmkoliv běžným, trvalým nebo komerčním způsobem, doporučuji vám zakoupit si licenci od Flowplayeru nebo jakéhokoli přehrávače, který se rozhodnete používat. Získáte přehrávač, který má méně omezení, více funkcí a může být označen vaší organizací. Získáte také podporu – což může být velmi důležité. Kromě Vultr VPS jsou to skutečně jediné náklady spojené s projektem.

Než uděláte cokoli jiného, ​​je důležité se postarat o to, čemu se říká „mezidoménová“ omezení, která by vám jinak znemožnila streamování na webovou stránku/web. Vytvořte crossdomain.xmlsoubor ve své nginx/htmlsložce a vložte do něj pokyny, které umožní tok dat mezi doménami:

sudo nano /usr/local/nginx/html/crossdomain.xml

Nejprve zkopírujte (z této stránky) a poté vložte (kliknutím pravým tlačítkem) do pole nano editoru následující data XML:

<?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>

Stiskněte Ctrl + O pro zápis a poté Ctrl + X pro uložení souboru na disk a ukončení.

Popadl jsem HTML5 (verze 6.0.3) Flowplayeru, který mi po rozbalení poskytl řadu souborů a složku. Všechny soubory a složku jsem nahrál do podsložky kořenové složky Nginx/HTML, kterou jsem nazval „flowplayer“. Přesná cesta byla /usr/local/nginx/html/flowplayer.

Chcete-li otestovat naše video vložené do webové stránky, vytvořte několik souborů HTML v kořenovém adresáři složky Nginx/HTML pomocí nano a naplňte je následujícím obsahem.

Soubor:

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>

Soubor:

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>

Nezapomeňte nahradit „my-ip“ a „my-stream-key“ svými údaji.

V flowplayer/skin/functional.cssšabloně stylů musíte za znak „#“ nahradit cestu href="#". Výukový software odřízne cestu. V části musíte vyplnit URL src=""- je odstraněna výukovým softwarem, použitím http://my-ip/live/my-stream-key/index.m3u8a http://my-ip/mobile/my-stream-key/index.m3u8, resp. Musíte také přidat srcznačky skriptu do hlavy pro oba jquery-1.11.2.min.jsa pro flowplayer.min.js. Značky jsou odstraněny výukovým softwarem. Jak tyto štítky vytvořit, zjistíte v example htmlsouboru, který je součástí sady Flowplayer.

Spusťte kodér pomocí webové kamery nebo nějakého testovacího zařízení, které na ní běží. Své vysílání můžete zobrazit v prohlížeči pomocí následujících adres URL:

http://my-ip/hls.html
http://my-ip/hls_progressive.html

První stránka jednoduše zobrazuje každý z vašich streamů – ten hlavní a ten pro mobilní platformu. Budete je moci oba spustit a prohlížet. Všimnete si, že stream mobilní platformy je menší. Tyto kroky slouží pouze k tomu, abyste se ujistili, že vše běží.

Druhá stránka zobrazuje jeden stream. Je to ale nastaveno způsobem, který se nazývá „progresivní streamování“. To znamená, že když divák přehrává video, server i přehrávač se snaží poskytnout divákovi stream s vysokou přenosovou rychlostí a vysokou kvalitou, pokud to připojení diváků vydrží. Pokud je jejich připojení špatné a nemůže připojení udržet, zobrazí se tok s nižší přenosovou rychlostí (mobilní), který má šířku pásma o 200 kbps nižší. Pokud byste chtěli, můžete vytvořit více odstupňovaných, progresivních streamů pomocí ffmpeg a nakonfigurovat je pomocí mého příkladu.

Testoval jsem tuto konfiguraci na jednom jádru, 1GB Vultr VPS, a zjistil jsem, že s jediným živým streamem plus trans-rated mobile stream, který vytváří pomocí ffmpeg, bylo využití procesoru méně než 35 % a spotřebovalo pouze 100 MB moje 1GB ram. Nyní je to velmi efektivní nastavení.

Pokud plánujete streamovat video, které je v pixelech mnohem větší než SD, možná zjistíte, že budete muset použít výkonnější VPS. Byl jsem na to zvědavý a spustil jsem svůj hlavní stream až do rozlišení 1280 x 960 pixelů a 2 Mb/s – což znamenalo další zatížení. Ale VPS stále využívalo pouze 50 % CPU a využití paměti zůstalo na 100 MB. Přidal jsem tucet diváků/prohlížečů a nezpůsobilo to téměř žádný rozdíl v zatížení VPS – zvýšila se pouze použitá šířka pásma. Jsem si jistý, že vytváření dalších trans-rated streamů pomocí ffmpeg by nadále zatěžovalo systém.

Použil jsem tento typ serveru v produkčním prostředí s 50 až 100 souběžnými uživateli a zjistil jsem, že využití zdrojů se s rostoucím počtem připojení diváků zvýšilo velmi málo. Experimentujte s tím. Ale myslím, že většina uživatelů by byla spokojená s použitím jednojádrového, 1GB VPS. Užijte si svůj nový streamovací server HLS!


Jak nainstalovat Memcached na Ubuntu 14.04

Jak nainstalovat Memcached na Ubuntu 14.04

Memcached je vysoce výkonný databázový systém, který může pomoci přetížit vaši aplikaci. Je velmi rychlý, protože nezapisuje na disk, ale místo toho t

Instalace InfluxDB na Ubuntu 14

Instalace InfluxDB na Ubuntu 14

Úvod InfluxDB je open source, distribuovaná databáze časových řad bez externích závislostí. Ano, četli jste par

Nastavení Fail2ban Ubuntu x64

Nastavení Fail2ban Ubuntu x64

Fail2ban je program, který monitoruje přihlašovací aktivitu na vašem serveru a blokuje problematické IP adresy. Ve výchozím nastavení bude blokovat IP adresy na 10 minut

Jak nainstalovat Tiny Tiny RSS Reader na FreeBSD 11 FAMP VPS

Jak nainstalovat Tiny Tiny RSS Reader na FreeBSD 11 FAMP VPS

Používáte jiný systém? Tiny Tiny RSS Reader je bezplatný a otevřený zdroj s vlastním hostitelem webového zdroje zpráv (RSS/Atom) a agregátorem určeným pro

Jak nainstalovat Gitea na Debian 9

Jak nainstalovat Gitea na Debian 9

Používáte jiný systém? Gitea je alternativní open source systém pro správu verzí s vlastním hostitelem poháněný systémem Git. Gitea je napsána v Golangu a je

Jak nainstalovat Wiki.js na FreeBSD 11

Jak nainstalovat Wiki.js na FreeBSD 11

Používáte jiný systém? Wiki.js je bezplatná a open source, moderní wiki aplikace postavená na Node.js, MongoDB, Git a Markdown. Zdrojový kód Wiki.js je veřejný

Jak nainstalovat Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Pagekit 1.0 CMS je krásný, modulární, rozšiřitelný a lehký, bezplatný a open source systém správy obsahu (CMS) s

Jak nainstalovat MODX Revolution na FreeBSD 11 FAMP VPS

Jak nainstalovat MODX Revolution na FreeBSD 11 FAMP VPS

Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, open source podnikový systém správy obsahu (CMS) napsaný v PHP. To i

Jak nainstalovat Concrete5 na CentOS 7

Jak nainstalovat Concrete5 na CentOS 7

Používáte jiný systém? Concrete5 je open source CMS, který nabízí mnoho charakteristických a užitečných funkcí, které pomáhají editorům snadno vytvářet obsah

Jak nainstalovat a nakonfigurovat ArangoDB na CentOS 7

Jak nainstalovat a nakonfigurovat ArangoDB na CentOS 7

Používáte jiný systém? Úvod ArangoDB je open source databáze NoSQL s flexibilním datovým modelem pro dokumenty, grafy a páry klíč–hodnota. to je

Jak nainstalovat Laravel GitScrum na CentOS 7

Jak nainstalovat Laravel GitScrum na CentOS 7

Laravel GitScrum nebo GitScrum je open source nástroj pro produktivitu navržený tak, aby pomohl vývojovým týmům implementovat metodologii Scrum podobným způsobem.

Jak nainstalovat PowerDNS na CentOS

Jak nainstalovat PowerDNS na CentOS

Úvod V tomto kurzu Vultr se naučíte, jak nainstalovat PowerDNS. PowerDNS je program pro provozování vlastních jmenných serverů. Je velmi užitečné, když

Jak nainstalovat Flarum Forum na FreeBSD 12

Jak nainstalovat Flarum Forum na FreeBSD 12

Používáte jiný systém? Flarum je bezplatný a open source software fóra nové generace, díky kterému je online diskuze zábavná. Zdrojový kód Flarum je hostován o

Nainstalujte WordPress na OpenBSD 6.2

Nainstalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantním redakčním systémem na internetu. Pohání vše od blogů po složité webové stránky s dynamickým obsahem

Jak nainstalovat Harbor na CentOS 7

Jak nainstalovat Harbor na CentOS 7

Harbor je open source server registru podnikové třídy, který ukládá a distribuuje obrazy Docker. Harbor rozšiřuje open source Docker Distribution b

Jak nainstalovat Crate.IO na CentOS 7

Jak nainstalovat Crate.IO na CentOS 7

Crate.IO, neboli Crate, je open source škálovatelné datové úložiště orientované na dokumenty, které kombinuje standardní SQL rozhraní s Elasticsearch a přináší vám oba

Jak nainstalovat NextCloud 9 na CentOS 7

Jak nainstalovat NextCloud 9 na CentOS 7

NextCloud, jak jeho název napovídá, je slibnou alternativou jiného open source řešení pro hostování souborů OwnCloud. V tomto článku vám ukážu ho

Vyhledejte malware a viry na CentOS pomocí ClamAV a Linux Malware Detect

Vyhledejte malware a viry na CentOS pomocí ClamAV a Linux Malware Detect

Linux Malware Detect a ClamAV jsou dva účinné nástroje pro snadné vyhledávání malwaru a virů na serveru VPS. V tomto článku se chystáme nainstalovat bota

Jak nainstalovat Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Jak nainstalovat Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Používáte jiný systém? Subrion 4.1 CMS je výkonný a flexibilní open source systém správy obsahu (CMS), který přináší intuitivní a jasný obsah

Nastavení Munin pro monitorování na CentOS 6 x64

Nastavení Munin pro monitorování na CentOS 6 x64

Munin je aplikace pro monitorování a stav serveru, která poskytuje dvě součásti: munin – Serverová součást, ve které se munin-node hlásí. Tento program

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více