Utilisé pour pouvoir utiliser! Quelques étapes simples pour construire un système en direct | programme de travail

Auteur | mind_programmonkey

Zebian | Wu Xingling

Produit | Blog RPSC

Le serveur de streaming avec un haut Ngix + RTMP + FFmpeg, effets simples en direct.

Nginx est un serveur Web léger / serveur proxy inverse et e-mail (IMAP / POP3) serveur proxy. nginx-RMTP-module est un serveur multimédia en continu fiche Nginx. Module Nginx fourni par le service RTMP RTMP, FFmpeg pousser un flux RTMP Nginx, puis le client en vous rendant Nginx pour regarder des vidéos en streaming en direct.

Quoi qu'il en soit, ont encore à sourire dans le visage de celui-ci!

Actuellement type de produits en direct

  • Pan spectacles

Pepper, se reflètent sur l'autre point d'ancrage de divertissement, ainsi que d'autres jeux en direct Betta

  • en direct interactif en temps réel

Conférences audio et vidéo, la diffusion et l'éducation d'autres, comme les ongles, réunion Tencent

1. Pan architecture de divertissement en direct

2. l'architecture en direct interactive en temps réel

Des connaissances supplémentaires: réseau CDN

1. Le site de mode d'accès général

Regardez d'abord sur le site de mode d'accès général.

Lorsqu'un utilisateur veut accéder à un site Web, indiquez le nom de domaine de ce site, DNS résoudra l'adresse du nom de domaine, l'utilisateur demande d'adresse, renvoie une page Web. Tout comme vous voulez acheter quelque chose, il faut d'abord trouver l'emplacement du magasin, puis est allé à l'intérieur du magasin pour trouver ce qu'ils veulent, et enfin tenir retour à la maison quelque chose.

CDN: réseau de contenu de livraison, le réseau de fournisseur de contenu (distribution).

2. Utiliser le « dépôt intermédiaire » pour optimiser

Par exemple, vous allez acheter site du fournisseur d'électricité chose, il faut chose, de l'entrepôt central dans le siège du secteur de l'électricité d'envoyer dessus? L'original est fondamentalement comme celui-ci, chaque individu est la distribution, de sorte que vous pouvez prendre beaucoup de temps pour recevoir votre bébé. Mais après que le système logistique site Web appel de plus sages, ils ont établi dans tout le pays beaucoup d'entrepôts, plutôt que seul le siège de l'entrepôt central avant de pouvoir livrer.

Selon les statistiques site du fournisseur d'électricité savent probablement, Pékin, Shanghai, Guangzhou, Shenzhen, Hangzhou et d'autres endroits, combien peuvent vendre des livres, du papier toilette, sacs, appareils électriques et d'autres durée de vie relativement longue des objets de tous les jours. Ces articles ne doivent pas envoyer d'un entrepôt central, donc en général, ils peuvent être distribués autour de l'entrepôt, d'un seul client, l'entrepôt le plus proche est délivré, peut être reçu le lendemain.

De cette façon, l'expérience utilisateur est grandement améliorée.

3. Réseau dans la « distribution le plus proche »

Il y a tellement de centre de données globales, peu importe où l'Internet, sont essentiellement non loin près du centre de données. N'est pas en mesure de déployer plusieurs machines dans le centre de données, la formation d'un cache de cluster pour mettre en cache des données, puis lorsque l'utilisateur l'accès aux données, vous pouvez accéder au plus proche de celui-ci?

Bien sûr, nous pouvons. Ces nuds centres de données respectifs situés en divers endroits, il est appelé nuds de bord.

Étant donné que le nombre de noeuds bord plus, mais chaque taille de cluster de noeud de bord est relativement faible, il ne peut pas être mis en mémoire cache toutes choses, et par conséquent ne peut pas être touché. Cette volonté sur le nud de bord, il y aura des nuds régionaux, à plus grande échelle est nécessaire, les données mises en cache est plus, plus la probabilité de toucher. Sur une surface du nud est le point central, plus grandes, plus les données du cache. Si vous ne frappez, je l'avais visité l'arrière du site à la source.

Ngix + RTMP + FFmpeg un serveur simple flux

Nginx est un serveur Web léger / serveur proxy inverse et e-mail (IMAP / POP3) serveur proxy. nginx-RMTP-module est un serveur multimédia en continu fiche Nginx. Module Nginx fourni par le service RTMP RTMP, FFmpeg pousser un flux RTMP nginx, puis le client en vous rendant Nginx pour regarder des vidéos en streaming en direct.

Ainsi, l'étape suivante consiste à construire l'environnement, allez, allez, allez! ! ! !

Pour télécharger rapidement, source de miroir peut le remplacer. Ubuntu apt-get remplacement de la source miroir domestique https://blog.csdn.net/qq_21095573/article/details/99736630

1. Sur la base de l'ensemble des services Linux RTMP jusqu'à Nginx

a. Télécharger nginx

wget

b. décompression nginx

tar xvf nginx-1.15.3.tar.gz

c. Télécharger le module du Nginx

wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz

d. décompression

tar xvf v1.2.1.tar.gz

e. Installer les bibliothèques nécessaires pour compiler nginx

Sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

f. être nginx répertoire

cd nginx-1.15.3

g. # -add-module pointant vers le répertoire du module d'exécution rtmp

./configure prefix =. / bin --AJOUTEZ-module = .. / nginx-RTMP-module 1.2.1

h. compilé et installé dans le répertoire bin du répertoire courant

make && make install

Vous pouvez commencer dans le répertoire courant exécuter bin / sbin / nginx

bin / sbin / nginx -s arrêt d'arrêt

Dans le navigateur, entrez [IP]: 8080

Remarque:

Notez que si le port est occupé par le répertoire, comme si 8080 le port est occupé, peut être changé en 8081, puis besoin de ports ouverts.

Port inspection d'occupation: lsof -i: 8080

2.FFmpeg

FFmpeg monté deux manières: l'une est simple, l'autre est un peu plus complexe.

a. Installation simple

Premier arrivé simple, en trois étapes

Première étape: Ajouter la source.

ppa add-apt sudo-dépôt: djcj / hybride

Deuxième étape: source de mise à jour.

Sudo apt-get update

La troisième étape: télécharger et installer.

Sudo apt-get install ffmpeg

b. installation compliquée

La première étape pour soutenir la bibliothèque est installée

Sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool-dev libva libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg- config texinfo wget zlib1g-dev

apt install libavformat-dev apt install libavcodec-dev apt install libswresample-dev apt install libswscale-dev apt install libavutil-dev apt install libsdl1.2-dev Sudo apt-get install yasm

La deuxième étape, x264

gir clone https://github.com/qupai/x264 cd x264 ./configure --enable-pthread --enable-shared --enable-pic faire make install

La troisième étape, FFmpeg

Site officiel de téléchargement: http: //www.ffmpeg.org/download.html

goudron -jxvf ffmpeg-4.1.tar.bz2 cd ffmpeg-4.1 ./configure --enable-libx264 enable-gpl --enable-shared --extra-cflags = -I / usr / local / inclure --extra-ldflags = -L / usr / local / lib --enable pic faire sudo make install export LD_LIBRARY_PATH = / usr / local / ffmpeg / lib: $ LD_LIBRARY_PATH ldd ffmpeg

Si vous rencontrez ce problème:

ffmpeg: Erreur lors du chargement des bibliothèques partagées: libavdevice.so.58: ne peut pas ouvrir le fichier objet partagé: Aucun fichier ou répertoire

 - trouver sudo / -name libavdevice.so.58 # trouver le fichier d'adresse correspondant - vim sudo /etc/ld.so.conf # fin de fichier ajouter une ligne à / usr / local / lib - exécution de ldconfig sudo # de la phrase, l'entrée en vigueur du fichier ci-dessus

Réexécutez -encoders ffmpeg | grep x264 constateront que l'installation a réussi

Après une installation réussie, vérifier les résultats, ffmpeg -version

3. Poussez flux Tirer le flux commence

flux Plug se réfère à la phase d'acquisition de contenu de bonne transmission de paquets au processus du serveur, l'extrémité d'ancrage de la voix poussé localement recueilli le serveur multimédia streaming vidéo. Il est de signaux vidéo en direct au réseau de processus.

Ensuite, vous montrer:

Le fichier hôte dans Windows Media 1.mp4 flux à Ubuntu pousser la machine virtuelle serveur de streaming multimédia Nginx, puis dans le menu déroulant ubuntu écoulement par le jeu de FFplayer ce processus.

Windows PUSHDOWN flux:

ffmpeg -i 1.mp4 -f flv rtmp: //192.168.8.169/live/room

ubuntu ouvrir le service Nginx

fichier nginx.conf dans ce qui suit le contenu nouvellement ajouté, la fonctionnalité d'augmentation RTMP et faire Nginx peut avoir la fonction de surveillance de l'état en direct:

Après cela, démarrez le service

bin / sbin / nginx

ubuntu tirer en streaming

ffplay rtmp: //192.168.8.169: 1935 / live / chambre

Et vous avez terminé! ! !

Eh bien, cette fois-ci sur le premier cas.

Avertissement: Cet article est l'article original blogueurs RPSC « de mind_programmonkey », et suivi CC BY-SA 4.0 accord du droit d'auteur, reproduit, s'il vous plaît joindre le lien source d'origine et cette déclaration.

Lien original: https: //blog.csdn.net/Mind_programmonkey/article/details/104584444

Changde détachement de la police de la circulation pour mener à bien le thème « notre festival Qingming »
Précédent
La pierre angulaire du natif nuage, lire un récipient en papier, ce qui Docker, Pod à la fin est
Prochain
Près de 10 ans de programmation PK grande recrue de langue, ramassez
Prix d'excellence pour turation! Hanrahan et infographie pionnier prix Catmull, a félicité deux blockbusters hollywoodiens vétérans de la technologie d'animation 3D
Chat Robot Landing et combat réel avancé | Million de personnes apprenez l'IA
Une explication détaillée de la gestion des connaissances dans le dialogue heuristique | Des millions de personnes apprennent l'IA
L'application du nouveau réseau neuronal de Transformer en traduction automatique | Million de personnes apprend l'IA
GitHub coup d'oeil à chaud: navigateur 2020 semaines Star navigateur incroyable jusqu'à plus de 3000
Après avoir lu celui-ci, vous êtes sur avenue aperçu Sécurité printemps | le programme de travail
marteau de pierre! Python Les temps difficiles cette année à un? Les programmeurs: Je suis fou
Java GC vu de nombreux articles, ces cinq questions que vous ne savent pas
Data Analyst vs algorithme ingénieur, Python programmeurs comment choisir la naissance?
Trois opérateurs vont résoudre les anciens et nouveaux émettent des droits différents paquet utilisateur, la coopération avec Surchauffe vibrato, Git 2,26 | libération Geeks titres
Comment changer la vie humaine dans l'interaction humaine-ordinateur | Million de personnes apprennent l'IA