Come installare la piattaforma del carrello LiteCart su Ubuntu 16.04
LiteCart è una piattaforma di carrello degli acquisti gratuita e open source scritta in PHP, jQuery e HTML 5. È un software di e-commerce semplice, leggero e facile da usare
HTTP Live Streaming (HLS) è un protocollo di streaming video molto robusto implementato da Apple Inc. HLS utilizza transazioni HTTP che attraversano firewall, proxy e possono essere facilmente distribuiti tramite CDN. Pertanto, questa tecnologia è in grado di raggiungere un pubblico di visualizzazione molto più ampio rispetto a RTP o altri protocolli basati su UDP. Gran parte del video live streaming online oggi è ospitato da costosi sistemi che utilizzano HLS, ma sono generalmente costosi e richiedono molte risorse del server. Questo tutorial ti mostrerà come configurare un Ubuntu 14.04 VULTR VPS molto conveniente per eseguire eventi di streaming live HLS utilizzando solo software open source.
Il primo passo è leggere e configurare il server in base al documento Vultr Doc " Setup Nginx-RTMP su Ubuntu 14.04 ". Le istruzioni in quel documento erano le più complete per la fase di installazione, al momento della stesura. Vorrei menzionare che potresti voler sostituire "nginx-1.7.5" con "nginx-1.9.4" o qualunque altra versione disponibile di Nginx sia disponibile. L'altro suggerimento è quello di compilare Nginx con il modulo di stato dello stub HTTP per darti la possibilità di monitorare quanti visualizzatori HLS live hai in seguito.
Invece di compilare con:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Utilizzare questa stringa nella procedura descritta nel documento prerequisito:
./configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module-master
L'esempio in questo tutorial creerà flussi "live" e "mobile" (ottimizzati) e utilizzerà ffmpeg (installato nel tutorial precedente) per generare il flusso HLS ottimizzato per il bit rate e ottimizzato per dispositivi mobili. L'esempio mostrerà anche come fare in modo che il server registri automaticamente i tuoi live streaming e che ti consenta di riprodurre le registrazioni come servizio di riproduzione video on demand (VOD).
Innanzitutto, crea le strutture di cartelle necessarie per contenere i manifesti e i frammenti video HLS live e mobile:
sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings
Probabilmente è una buona idea attivare il firewall se non lo hai già fatto. In tal caso, è necessario consentire il traffico nelle porte utilizzate da Nginx e HLS. Se per il momento vuoi eseguire senza firewall, ignora la sezione ufw di seguito.
sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable
Lo streaming HLS richiede una configurazione Nginx significativamente diversa dalla configurazione RTMP nel primo articolo. Modifica il tuo nginx.conf
file per utilizzare quanto segue, sostituendo "my-ip" e "my-stream-key" con le tue informazioni. Puoi usare tutto ciò che desideri per "my-stream-key", è solo una parola unica e utile per te. Potresti voler prima eseguire il backup del file di configurazione originale, quindi incollare le informazioni di configurazione fornite nell'editor, sostituendo tutto ciò che era lì:
sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.original
sudo nano /usr/local/nginx/conf/nginx.conf
Nuovo 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;
}
}
}
Premi Ctrl + X per uscire. Dì "sì" per salvare le modifiche.
Puoi trovare istruzioni chiare ed esempi delle variabili possibili in questo nginx.conf
file se chiedi al tuo motore di ricerca preferito "direttive nginx-rtmp". Sto usando nginx-rtmp con HLS ormai da alcuni anni, senza usare le direttive "consenti pubblicazione" e "nega pubblicazione" e ho visto zero istanze di persone che usano / invadono i miei server video. Quindi non ho incluso quelle direttive qui. Leggi e aggiungi queste direttive se lo desideri.
Dopo aver modificato il nginx.conf
file, è necessario riavviare Nginx per utilizzare la nuova configurazione:
sudo service nginx restart
Controlla attentamente eventuali messaggi di errore di Nginx e risolvi eventuali errori causati da errori di ortografia, proprietà della cartella o autorizzazioni. Se non hai messaggi di errore, sei pronto per creare il tuo flusso di codifica.
È necessario disporre di un codificatore video per creare lo stream. Uso OBS (Open Broadcaster Software), che è open-source e funziona bene per me. Esistono altre soluzioni tra cui scegliere, che esulano dallo scopo di questo tutorial. Non tratterò di tutto sulla configurazione di un codificatore video RTMP. Tuttavia, richiedono quasi tutte le stesse variabili di input. Le impostazioni chiave che dovrai inserire per usare la mia esatta nginx.conf
configurazione e per funzionare bene sulla maggior parte dei giocatori / browser / piattaforme sono le seguenti:
Consiglio di provare diversi codificatori e di sperimentarli. Potresti desiderare un ampio formato o i materiali della tua fotocamera (o altre trasmissioni) potrebbero richiederlo. In tal caso, assicurati di modificare queste informazioni nel tuo codificatore e anche le proporzioni elencate nella sezione exec-ffmpeg del nginx.conf
file che ho fornito; altrimenti otterrai alcuni feed video dall'aspetto sciocco.
Una volta impostato l'encoder, puoi testarlo tutto. Avvia l'encoder con la tua webcam o qualche tipo di test-foraggio in esecuzione su di esso. A questo punto puoi visualizzare la tua trasmissione con VLC player usando URL come:
http://my-ip/live/my-stream-key/index.m3u8
http://my-ip/mobile/my-stream-key/index.m3u8
Questi sono rispettivamente per i tuoi flussi video principali e mobili. Sostituisci il tuo IP e la chiave di flusso di conseguenza.
Dopo aver trasmesso con successo il tuo primo controllo del flusso (tramite ssh o ftp) che la tua trasmissione in diretta sia stata registrata nella /video_recordings
cartella sul tuo VPS Vultr. Puoi anche provare a riprodurre questo file registrato in VLC con un URL come:
rtmp://my-ip/vod/filename.flv
Sono disponibili anche le statistiche Nginx (con Nginx stub_status). Per visualizzare le statistiche dei visitatori / spettatori, accedere a:
http://my-ip/stats
In order to view your video on a webpage you'll need an embeddable player. There are many embeddable players available which will play HLS video. I have used JW Player for some years now, but the free version will not play HLS. Flowplayer and Bitdash by Bitmovin (among other solutions) are generous enough to offer a non-commercial version of their players for free which will render your HLS stream embedded in a webpage. For this article, I have tried them both and found them both to work quite well with my Vultr/Nginx-based video server. I will briefly show how I got Flowplayer going with my testbed machine.
Se intendi utilizzare lo streaming HLS live in modo regolare, prolungato o commerciale, ti incoraggio ad acquistare una licenza da Flowplayer o da qualsiasi giocatore tu decida di utilizzare. Otterrai un giocatore che ha meno restrizioni, più funzionalità e può essere marchiato nella tua organizzazione. Riceverai anche supporto, che può essere molto importante. Oltre al VPS Vultr, questo è davvero l'unico costo associato al progetto.
Prima di fare qualsiasi altra cosa, è importante prendersi cura di quelle che vengono chiamate restrizioni "interdominio", che altrimenti bloccherebbero la possibilità di eseguire lo streaming su una pagina Web / sito Web. Crea un crossdomain.xml
file nella tua nginx/html
cartella e inserisci le istruzioni per consentire ai dati di fluire tra i domini:
sudo nano /usr/local/nginx/html/crossdomain.xml
Prima copia (da questa pagina) e poi incolla (tasto destro) nel campo dell'editor nano i seguenti dati 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>
Premi Ctrl + O per scrivere, quindi Ctrl + X per salvare il file su disco ed uscire.
Ho preso l'HTML5 (versione 6.0.3) di Flowplayer che mi ha dato un numero di file e una cartella quando decompresso. Ho caricato tutti i file e la cartella in una sottocartella della cartella principale Nginx / HTML che ho chiamato "flowplayer". Il percorso esatto era /usr/local/nginx/html/flowplayer
.
Per testare il nostro video quando incorporato in una pagina Web, creare un paio di file HTML nella radice della cartella Nginx / HTML utilizzando nano e popolarli con i seguenti contenuti.
File:
sudo nano /usr/local/nginx/html/hls.html
Codice HTML:
<!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>
File:
sudo nano /usr/local/nginx/html/hls_progressive.html
Codice HTML:
<!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>
Assicurati di sostituire "my-ip" e "my-stream-key" con i tuoi dati.
È necessario sostituire il percorso flowplayer/skin/functional.css
con il segno "#" nel foglio di stile href="#"
. Il software tutorial espone il percorso. Devi inserire un URL nella src=""
parte: viene rimosso dal software tutorial, usa http://my-ip/live/my-stream-key/index.m3u8
e http://my-ip/mobile/my-stream-key/index.m3u8
, rispettivamente. È inoltre necessario aggiungere src
tag di script nell'intestazione sia per che jquery-1.11.2.min.js
per flowplayer.min.js
. I tag vengono rimossi dal software tutorial. Puoi scoprire come modellare questi tag guardando il example html
file incluso con il kit Flowplayer.
Avvia l'encoder con la tua webcam o qualche tipo di test-foraggio in esecuzione su di esso. Puoi visualizzare la tua trasmissione in un browser usando i seguenti URL:
http://my-ip/hls.html
http://my-ip/hls_progressive.html
La prima pagina mostra semplicemente ciascuno dei tuoi stream - quello principale e quello della piattaforma mobile. Sarai in grado di avviarli entrambi e visualizzarli. Noterai che il flusso della piattaforma mobile ha dimensioni inferiori. Questi passaggi servono solo per assicurarsi che tutto sia in esecuzione.
La seconda pagina mostra un singolo flusso. Ma è impostato in un modo che si chiama "streaming progressivo". Ciò significa che quando uno spettatore riproduce il video, sia il server che il lettore provano a fornire allo spettatore un flusso di bitrate elevato e di alta qualità se la connessione degli spettatori può sostenerlo. Se la loro connessione è scadente e non è in grado di sostenere la connessione, si avvia verso il basso per mostrare il flusso a bitrate inferiore (mobile) che ha una larghezza di banda inferiore di 200 kbps. Se lo desideri, puoi creare flussi più progressivi e progressivi con ffmpeg e configurarli usando il mio esempio.
Ho testato questa configurazione su un single core, VPS Vultr da 1 GB e ho scoperto che con un singolo flusso live, oltre al flusso mobile trans-rated creato con ffmpeg, l'utilizzo della cpu era inferiore al 35% e aveva consumato solo 100 MB di il mio 1 GB di ram. Questa è un'impostazione molto efficiente.
Se prevedi di eseguire lo streaming di video di dimensioni pixel molto maggiori rispetto a SD, potresti scoprire di dover utilizzare un VPS più potente. Ero curioso di questo e ho eseguito il mio stream principale fino a 1280x960 pixel e 2 Mbps, caricando ulteriormente le cose. Ma il VPS utilizzava ancora solo il 50% di CPU e l'utilizzo della memoria è rimasto a 100 MB. Ho aggiunto una dozzina di visualizzatori / browser e non ha fatto quasi alcuna differenza nel carico sul VPS: solo la larghezza di banda utilizzata è aumentata. Sono sicuro che la creazione di flussi trans-rated aggiuntivi con ffmpeg continuerebbe a caricare ulteriormente il sistema.
Ho usato questo tipo di server in ambienti di produzione con tra 50 e 100 utenti simultanei e ho scoperto che l'utilizzo delle risorse è aumentato molto poco con l'aumentare delle connessioni del visualizzatore. Sperimenta con esso. Ma penso che la maggior parte degli utenti sarebbe felice usando un VPS single-core da 1 GB. Goditi il tuo nuovo server di streaming HLS!
LiteCart è una piattaforma di carrello degli acquisti gratuita e open source scritta in PHP, jQuery e HTML 5. È un software di e-commerce semplice, leggero e facile da usare
Introduzione Qualsiasi servizio connesso a Internet è un potenziale bersaglio di attacchi di forza bruta o accesso ingiustificato. Esistono strumenti come fail2ba
TeamTalk è un sistema di conferenza che consente agli utenti di avere conversazioni audio / video di alta qualità, chat di testo, trasferire file e condividere schermate. Io
Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa
Introduzione Sensu è una soluzione di monitoraggio gratuita e open source che può essere utilizzata per monitorare server, applicazioni e vari servizi di sistema. Sensu i
Usi un sistema diverso? Fuel CMS è un sistema di gestione dei contenuti basato su CodeIgniter. Il suo codice sorgente è ospitato su GitHub. Questa guida ti mostrerà come t
Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare
Usi un sistema diverso? Apache OpenMeetings è unapplicazione per conferenze Web open source. È scritto in Java e supporta più server di database. io
IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei in linea, potresti perdere Importan
Usi un sistema diverso? TaskWarrior è uno strumento di gestione del tempo open source che è un miglioramento dellapplicazione Todo.txt e dei suoi cloni. A causa di th
Usando un sistema diverso? RabbitMQ è un broker di messaggi open source ampiamente utilizzato scritto nel linguaggio di programmazione Erlang. Come middleware orientato ai messaggi
Usi un sistema diverso? Subrion 4.1 CMS è un sistema di gestione dei contenuti (CMS) open source potente e flessibile che offre un contenuto intuitivo e chiaro
Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa
Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare
Usi un sistema diverso? Brotli è un nuovo metodo di compressione con un rapporto di compressione migliore di Gzip. Il suo codice sorgente è ospitato pubblicamente su Github. Thi
Usi un sistema diverso? TaskWarrior è uno strumento di gestione del tempo open source che è un miglioramento dellapplicazione Todo.txt e dei suoi cloni. A causa di th
TaskBoard è unapp Web di gestione del tempo gratuita e open source. Ispirato da Kanban, TaskBoard può aiutarti a tenere traccia delle cose che devono essere fatte in a
Usi un sistema diverso? Gradle è un set di strumenti di automazione di build gratuito e open source basato sui concetti di Apache Ant e Apache Maven. Gradle fornisce
Usi un sistema diverso? In questa guida, vedremo come configurare un server FTP (ProFTPd) per trasferire file tra il tuo PC e il tuo server.
Usi un sistema diverso? Introduzione Kanboard è un programma software di gestione dei progetti gratuito e open source progettato per facilitare e visualizzare
Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane
ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.
Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+
Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.
Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più
13 strumenti commerciali per l'estrazione dei dati dai Big Data
Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true
Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.
Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1
L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.