@ Programmeur, que vous découvrez le mystère de la technologie de diffusion

Auteur | Arabe, Zebian | Guo Rui

Figure Head | RPSC téléchargé à partir de la Chine Vision

Produit | RPSC (ID: CSDNnews)

Avec le développement du Web 2.0 et la popularité de la technologie de l'Internet mobile, le partage divers vidéo, le type de services en direct streaming ont vu le jour, tels que l'éducation en ligne, nous constatons que cette année en raison de l'impact de l'épidémie de grandes écoles d'ouverture retardée, les étudiants doivent école à la maison à distance. Parce que l'épidémie affecte les grandes entreprises à domicile des réunions à distance, divers caméra Internet vous permet de voir la dynamique à l'aise partout, alors vous connaissez les principes de cette technologie de diffusion derrière elle? Si vous voulez comprendre le principe de la technologie est en direct, s'il vous plaît continuer à lire, je vais vous emmener vivre à la technologie démystifier.

Savoir vivre derrière l'accord de transfert de technologie

Air derrière la technologie par une variété de composition du réseau de protocole de transport IP, appelé comme flux protocoles de transport de réseau de médias, des protocoles de transport utilisent différentes scènes ne sont pas les mêmes, après l'encapsulation des données transmises par le protocole de transmission, pour assurer dans la mesure audio possible et vidéo la qualité et le retard des données:

protocole RTMP (Real-Time Messaging Protocol, RTMP abrégé) , Un protocole propriétaire qu'il a d'abord utilisé par Macromedia est transmis sur Internet le streaming audio, vidéo et données développée entre le lecteur Flash et un serveur. La société acquise par la suite Adobe, cet accord n'a pas publié une spécification complète pour un usage public. En raison de son retard relativement faible est largement utilisé dans une variété de plates-formes de diffusion. Tels que des jeux en direct, belle télévision en direct, en direct, l'éducation en ligne. protocole RSTP Ce protocole est généralement utilisé dans une variété de tête de caméra de surveillance de la sécurité, comme une variété de caméras Internet des ménages, RTSP (Real Time Streaming Protocol) Real Time Streaming Protocol, protocole RTSP en utilisant la méthode push de serveur (serveur Push), de sorte que la fin de visualisation audio et vidéo l'émission d'une demande, la caméra réseau juste continué à pousser paquets RTP encapsulées données codées audio et vidéo dans le navigateur et la caméra réseau en continu peut être mis en uvre avec une petite tête. HTTP (HyperText Transfer Protocol) Hypertext Transfer Protocol , Les caméras réseau offrent un accès Web via le protocole HTTP, il est facile de passer par un réseau complexe de transmission de données audio et vidéo, audio en temps réel et le support vidéo, mais loin d'être idéale. Par exemple, développé par Apple HTTP Live Streaming (HLS acronyme), il est basé sur le streaming protocole de transport réseau média protocole HTTP pour atteindre. Il travaille tout le courant dans un petit fichier HTTP à télécharger, un temps de télécharger quelques-uns. Lorsqu'un flux multimédia est en cours de lecture, le client peut choisir différents taux des mêmes ressources téléchargées provenant de nombreux autre source, ce qui permet à la session de diffusion multimédia en continu pour accueillir des débits de données différents. Au début d'une session de diffusion multimédia en continu, le client téléchargera que les métadonnées étendues contient M3U (m3u8) fichier playlist pour trouver flux multimédia disponibles. HLS requêtes HTTP de base uniquement avec des paquets Transport Protocol en temps réel (RTP) différents, HLS peuvent passer à travers un pare-feu ou un serveur proxy permet toutes les données via HTTP. Il est également facile à utiliser pour transmettre les flux de médias canadiens. Mais son retard sera plus élevé par rapport à RTMP.

Ce que nous voyons habituellement une variété de plates-formes de diffusion sont basées sur le HLS ou RTMP effectué, les utilisations des clients mobiles HLS générale, une meilleure compatibilité, alors que le PC utilise le protocole RTMP.

RTMP est de savoir comment travailler?

Jouer un média de streaming RTMP passent par les étapes suivantes:

  • Serrez la main

  • Établir une connexion

  • établir le flux

  • diffusion

RTMP commencent à se serrer la main comme. Étape pour établir une connexion « connexion réseau » entre le client et le serveur, l'établissement de la phase d'écoulement pour établir « flux de réseau » entre le client et le serveur; étape de visualisation des données audio pour une vue de la transmission.

Handshake (HandShake)

RTMP est relié à une poignée de main, les deux parties sont transmis trois blocs de données de taille fixe:

  • La poignée de main commence à transmettre le C0 client, bloc C1. Lorsque le serveur reçoit C0, C1, S1 et transmet S0.

  • Lorsque la réception du client de S0 et S1, commencer à envoyer C2. Lorsque la réception du serveur de C0 et C1, commence à envoyer S2.

  • Lorsque le client et le serveur sont reçus S2 et C2, la poignée de main est terminée.

Établir une connexion réseau (NetConnection)

  • Le client envoie un message de commande « connect » (Connect) au serveur, demandant d'établir une connexion de service avec les exemples d'application.

  • Après que le serveur reçoit le message de commande de connexion, il envoie un protocole taille de la fenêtre d'accusé de réception (taille de fenêtre Accusé de réception) des messages au client en étant connecté à l'application mentionnée dans la commande de connexion.

  • Réglage du protocole de bande passante serveur de transmission de message au client.

  • Le client définit le traitement des messages de protocole de la bande passante, l'envoi d'un protocole taille de la fenêtre d'accusé de réception (taille de fenêtre Accusé de réception) des messages sur le serveur.

  • serveur de contrôle de l'utilisateur envoie un message « démarrage de flux » (Commencer flux) message au client.

  • Le serveur envoie un message de commande « Résultat » (_result), notifier l'état de connexion du client.

Mettre en place un flux réseau (NetStream)

  • Le client envoie un message de commande « Création de flux » de commande (createStream) au serveur.

  • Une fois le serveur reçoit la commande « Créer flux » pour envoyer le message de commande « Résultat » (_result), informe l'état du flux client.

Lecture (Play)

  • Commande au serveur le client envoie un message de commande « Play » (jeu).

  • Lors de la réception de la commande de lecture, le serveur envoie le message de protocole taille de l'ensemble de blocs (ChunkSize).

  • Un serveur de commande envoie un message utilisateur « streambegin », informer l'ID de flux client.

  • Jouer la commande est réussie, le serveur envoie un « statut réponse » message de commande NetStream.Play.Start & NetStream.Play.reset, dites la commande client « play » est exécutée avec succès.

  • Une fois le serveur envoie au client de lire les données audio et vidéo.

flux de lecture

  • flux de téléchargement est codé pour le jeu de serveur de streaming multimédia.

Comment construire un service vidéo?

A mis en place un service de diffusion en direct sont de nombreuses façons de Nginx par exemple, vous pouvez ajouter le module nginx-RTMP-module à la compilation pour atteindre nginx RTMP \ HLS et d'autres temps réel en continu, vous pouvez également utiliser un SRS similaire tel logiciel open source pour atteindre, maintenant, je vais si vous utilisez nginx, nginx exemple pour obtenir un serveur en direct, peut se référer.

1. Tout d'abord, nous avons besoin de télécharger et nginx Module nginx-RTMP-module:

yum -y install gcc pcre-devel openssl-devel wget -c https://nginx.org/download/nginx-1.17.9.tar.gz tar zxvf nginx-1.17.9.tar.gz git clone https://github.com/arut/nginx-rtmp-module.git cd nginx-1.17.9 ./configure prefix = / usr / local / nginx --add-module = .. / nginx-RTMP-module --with-http_ssl_module faire make install

2. Configurer nginx:

rtmp { serveur { écouter 1935, # 1935 Utilisez le port udp chunk_size 4096; l'application en direct {# Nom de l'application vod vivre; } } }

Des configurations plus spécifiques, s'il vous plaît se référer à l'exemple GitHub nginx.conf, nginx-RMTP-module peut également configurer retweet, l'enregistrement et la diffusion, à la demande et donc la façon, nous allons commencer nginx:

# ./Nginx -c /usr/local/nginx/conf/nginx.conf

3. Ensuite, nous avons besoin de libérer le port 1935 tcp.

Comment obtenir le flux?

Lorsque le serveur de diffusion multimédia en continu mis en place est terminée, nous devons faire deux étapes:

  • flux Plug: Push flux vidéo RTMP codé après le service;

  • flux Tirer: du serveur à télécharger flux RTMP à coder pour jouer.

Un format URL RTMP est la suivante:

rtmp: //rtmp.example.com/ /

Voici le nom de l'application configurée nginx, une valeur fixe. Ce dernier nom peut être facilement prise, nous pouvons brancher flux ou obs selon le logiciel FFmpeg, fiche flux FFmpeg suit:

ffmpeg -i test.mp4 -vcodec libx264 -acodec aac -f flv rtmp: // adresse IP / live / test

Cette commande:

  • -i charger des fichiers vidéo locaux

  • -vcodec spécifier l'encodage vidéo H264

  • -acodec désigné comme l'encodage audio aac

  • -f format flv flv représente le comportement des flux de prise de référence obligatoire

Comme le montre:

Tout d'abord, ajouter une scène pour la source de médias, puis sélectionnez un fichier local, bien sûr, OBS peut également ajouter votre affichage local ou d'une fenêtre, etc.

Lorsque vous cliquez sur OK, cliquez sur Paramètres, passage à flux de fiche, sélectionnez un service personnalisé, remplissez l'adresse du serveur et la clé de streaming, cliquez sur OK, puis cliquez sur Démarrer la diffusion peut être.

Lorsque le bouton de démarrage pour arrêter l'écoulement devient un moyen plug-flow que le succès plug-flow:

Enfin, nous utilisons lecteur vlc, VLC ouvert, en utilisant l'URL d'entrée en mode réseau:

groupe américain d'une décennie, le plus grand plats à emporter du monde comment soutenir la fourniture de la plate-forme d'apprentissage automatique unique est de faire?

Bill Gates quitte Microsoft Conseil d'administration, WWDC d'Apple, Microsoft Assemblée Build sont tenues en ligne à la place, la rouille 1.42.0 libération | Geeks titres

Tencent combiné Acnet mention classification à grains fins, l'effet est à la dernière SOTA | CVPR 2020

Ma recommandation IDE nuage préféré!

Solidité des fonctionnalités avancées de l'écriture contrat intelligent

E retour de retour du personnel readme au travail: retour de travail à Wuhan, Hefei voler, puis revenir en arrière et de choisir sa charte par la société

Retour au travail sous la tendance générale, Télétravail entreprises technologiques ne peuvent « rester assis » faire?
Précédent
Jouer à la « réduction des effectifs » du noyau, il vous suffit de faire
Prochain
Après avoir lu ce HTTPS, et l'intervieweur quereller, pas de problème
Père téléphone mobile premier adversaire appel téléphonique, depuis la fin de la montée de la route de communication mobile moderne
groupe américain d'une décennie, le plus grand plats à emporter du monde comment soutenir la fourniture de la plate-forme d'apprentissage automatique unique est de faire?
Urgence! course contre la Couronne nouvelle découverte de médicaments du virus, des pratiques et de technologies informatiques de haute performance Ali
réduction de salaire! Transfert Kong! Pourquoi Python redeviendra l'arriviste 2020
Le non-orienté conception du système de studio
Quand l'école? Examen d'entrée au collège ne sera pas rebutés? Le ministère de l'Education a répondu à la dernière
La dernière réponse! Président du Brésil: Je ne suis pas positif
Xinhua Nouvelles Agence entrevue avec Wang Chen Académicien, la tâche en cours est la clé
Le premier « l'adoption du cloud » ouvert sous Nanyue comment améliorer l'épidémie, «J'ai un arbre Jugaku » marque
candidats scientifique de données Apple, ce que vous devez savoir?
5G, la prochaine ère de l'IdO, caméra de téléphone cellulaire de se concentrer si la mauvaise direction?