FMUSER Wirless transmet la vidéo et l'audio plus facilement!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
1 、 Développement de la diffusion vidéo en direct sur mobile
On constate que, du PC au mobile, de plus en plus d'applications de diffusion en direct sont en ligne et la diffusion mobile est entrée dans une phase d'explosion sans précédent. Cependant, pour la plupart des diffusions mobiles en direct, il est toujours principalement implémenté par des clients natifs, mais HTML5 joue également un rôle irremplaçable dans la fin de la diffusion mobile en direct, comme HTML5 Avec les avantages d'une transmission rapide et facile à publier, HTML5 peut également jouer en direct vidéo quand c'est le plus important.
La diffusion en direct complète peut être divisée comme suit:
(1) Terminal d'enregistrement vidéo: D'une manière générale, il s'agit d'un périphérique d'entrée audio et vidéo d'ordinateur ou d'une caméra ou d'un microphone sur le terminal mobile. Actuellement, la vidéo sur téléphone mobile est la partie principale.
(2) Lecteur vidéo: il peut s'agir d'un lecteur sur l'ordinateur, d'un lecteur natif côté téléphone mobile et d'une étiquette vidéo HTML5. À l'heure actuelle, il est toujours le principal acteur natif sur le téléphone mobile.
(3) Serveur vidéo: il s'agit généralement d'un serveur nginx, qui est utilisé pour accepter la source vidéo fournie par le côté enregistrement vidéo et fournir le service de streaming à l'extrémité de lecture vidéo.
2, enregistrement vidéo HTML5:
Pour l'enregistrement vidéo HTML5, le puissant webrtc (communication en temps réel WEB) est une technologie qui prend en charge la conversation vocale ou vidéo en temps réel dans un navigateur Web. L'inconvénient est qu'il ne supporte mieux que le chrome PC et le côté mobile n'est pas idéal.
Le processus de base d'enregistrement vidéo avec webrtc est:
Appelez window.navigator.webkitGetUserMedia (obtenez les données vidéo de la caméra PC de l'utilisateur).
Convertissez les données acquises en données de flux vidéo en window.webkitRTCPeerConnection (un format de données de flux vidéo).
Utilisation de websocket pour transférer des données de flux vidéo vers le serveur
Étant donné que de nombreuses méthodes doivent être préfixées avec le navigateur, de nombreux navigateurs mobiles ne prennent pas en charge webrtc, de sorte que l'enregistrement vidéo réel est toujours implémenté par le client (IOS, Android) et l'effet sera meilleur.
3, vidéo en direct de diffusion HTML5:
Pour la lecture vidéo, vous pouvez utiliser le protocole HLS (HTTP live streaming) pour lire la diffusion en direct. IOS et Android prennent tous deux naturellement en charge ce protocole. Il est simple de configurer et d'utiliser directement les balises vidéo.
Voici un code simple pour lire une vidéo en direct à l'aide de la vidéo:
(1) Qu'est-ce que le protocole HLS:
En bref, l'ensemble du flux est divisé en petits fichiers, qui sont téléchargés sur la base de HTTP. Seuls certains sont téléchargés à la fois. Le fichier précédent de.M3u8 introduit dans la diffusion vidéo en direct HTML5 est basé sur le protocole HLS, qui stocke les métadonnées du flux vidéo.
Chaque fichier.M3u8 correspond à plusieurs fichiers TS, qui sont les données pour le stockage vidéo réel. Le fichier m3u8 ne stocke que les informations de configuration et les chemins associés de certains fichiers TS. Lors de la lecture de la vidéo, le fichier .M3u8 est modifié dynamiquement. L'étiquette vidéo analysera le fichier et trouvera le fichier TS correspondant à lire. Ainsi, afin d'accélérer la vitesse, le fichier.M3u8 sera utilisé pour analyser le fichier et trouver le fichier TS correspondant pour la lecture. Par conséquent, afin d'accélérer la vitesse, le fichier.M3u8 sera utilisé pour analyser le fichier et trouver le fichier TS correspondant pour la lecture. Par conséquent, afin d'accélérer Mettez-le sur le serveur Web et le fichier TS sur le CDN.
Le fichier.M3u8 est en fait un fichier M3U encodé en UTF-8. Ce fichier ne peut pas être lu seul, mais uniquement le fichier texte contenant les informations de lecture.
(2) Processus de demande HLS:
L'URL de la requête HTTP m3u8.
Le serveur renvoie une liste de lecture de m3u8, qui est mise à jour en temps réel. Généralement, l'URL de 5 segments de données est donnée à la fois.
Le client analyse la liste de lecture de m3u8, puis demande l'URL de chaque segment afin d'obtenir le flux de données TS.
(3) Délai de diffusion en direct HLS:
Nous savons que le protocole HLS divise le flux en direct en un petit segment de vidéo à télécharger et à lire. Supposons donc que la liste contienne 5 fichiers TS, chaque fichier TS contient 5 secondes de contenu vidéo, puis le délai global est de 25 secondes. Parce que lorsque vous voyez ces vidéos, l'hôte a enregistré la vidéo et l'a téléchargée, donc le retard est causé par cela. Bien entendu, la longueur de la liste et la taille d'un seul fichier TS peuvent être raccourcies pour réduire le délai. À l'extrême, la longueur de la liste peut être réduite à 1 et la durée TS est de 1 s. Cependant, cela augmentera le nombre de requêtes et augmentera la pression du serveur. Lorsque la vitesse du réseau est lente, plus de tampon sera généré. Par conséquent, le temps TS recommandé par Apple dure officiellement 10 secondes, ce qui modifiera considérablement le délai de 30 secondes. Ainsi, le serveur reçoit le flux, le transcodage, enregistre, coupe le bloc, puis le distribue au client. Voici la cause première du retard.
Pour plus de questions sur les retards, veuillez vous référer à l'adresse officielle d'Apple:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
Cependant, la vidéo en direct HTML5 présente des avantages irremplaçables:
① Bonne communication, facile à partager et autres opérations.
② Il peut être publié de manière dynamique, ce qui permet une itération en temps réel des exigences du produit et un lancement rapide.
③ Sans installer l'application, ouvrez directement le navigateur.
4, OS de données audio et vidéo de collecte (enregistrement) IOS
Pour l'acquisition et l'enregistrement audio et vidéo, tout d'abord, les concepts suivants sont clarifiés:
(1) Codage vidéo: le codage vidéo fait référence à la façon dont un fichier au format vidéo est converti en un autre fichier au format vidéo via une technologie de compression spécifique. La vidéo enregistrée par l'iPhone que nous utilisons doit être encodée, téléchargée et décodée avant de pouvoir être lue dans le lecteur côté utilisateur.
(2) Norme de codec: les normes de codec les plus importantes dans la transmission de flux vidéo incluent H.261, H.263 et H.264 de l'UIT, dans lequel le protocole HLS prend en charge le codage au format H.264.
(3) Codage audio: similaire au codage vidéo, le flux audio d'origine est encodé, téléchargé, décodé selon certaines normes et lu dans le lecteur. Bien sûr, l'audio a également de nombreuses normes de codage, telles que le code PCM, le code wma, le code AAC, etc. la méthode de codage audio prise en charge par notre protocole HLS est le code AAC.
L'acquisition de données vidéo et audio est principalement divisée en les étapes suivantes:
(1) l'acquisition de données vidéo et audio en utilisant l'appareil photo sur IOS
(2) Dans IOS, le flux de données audio et vidéo d'origine peut être collecté par avcapturesession et avcapturedevice.
(3) La vidéo est codée avec h264 et le son est codé AAC. Dans IOS, il existe déjà des bibliothèques de codage packagées pour réaliser le codage de l'audio et de la vidéo.
(4) Les données audio et vidéo après codage sont assemblées et scellées;
(5) Établissez la connexion RTMP et poussez-la vers le serveur.
Voici le processus spécifique de collecte de données audio et vidéo:
(1) à propos de RTMP:
Le protocole de messagerie en temps réel (RTMP) est un ensemble de protocoles vidéo en direct développé par Macromedia et appartient désormais à Adobe. Comme avec HLS, il peut être utilisé pour la diffusion vidéo. La différence est que RTMP ne peut pas jouer dans le navigateur IOS basé sur le flash, mais il est meilleur en temps réel que HLS. Donc, ce protocole est généralement utilisé pour télécharger un flux vidéo, c'est-à-dire que le flux vidéo est poussé vers le serveur.
(2) flux de poussée
Le soi-disant streaming fait référence à l'envoi des données audio et vidéo que nous avons encodées au serveur de flux vidéo. Dans le code IOS, le streaming RTMP est couramment utilisé. Librtmp IOS, une bibliothèque tierce, peut être utilisée pour le streaming. Librtmp encapsule certaines API de base que les utilisateurs peuvent appeler. Par exemple, transmettez l'API et ainsi de suite, configurez l'adresse du serveur, puis transmettez le flux vidéo de transcodage au serveur.
Alors, comment créer un serveur de streaming?
Un serveur de streaming simple est construit. Étant donné que le flux vidéo que nous téléchargeons est basé sur le protocole RTMP, le serveur doit prendre en charge RTMP. Cela peut prendre les étapes suivantes:
(1) Installez un serveur nginx.
(2) L'extension RTMP de nginx est installée. Configurer le fichier de configuration pour nginx
(3) Redémarrez nginx et écrivez l'adresse de streaming de RTMP comme rtmp: // ip: 1935 / hls / mystream, où HLS_ Path représente l'adresse des fichiers générés.M3u8 et TS, HLS_ Fragment représente la longueur de la tranche et mystream représente une instance. Le nom de fichier à générer peut être défini par lui-même.
5 interaction Interaction de l'utilisateur dans la diffusion en direct:
Pour l'interaction de l'utilisateur dans la diffusion en direct, elle peut être grossièrement divisée en:
donner des cadeaux.
Pour commenter ou pour jouer
Pour la livraison de cadeaux, DOM et CSS3 peuvent être utilisés pour réaliser la logique de l'envoi de cadeaux et une animation spéciale de cadeaux sur HTML5. Les difficultés techniques ne sont pas très grandes.
Pour un barrage, pour être un peu plus complexe, vous devrez peut-être faire attention à ce qui suit:
Les performances en temps réel du projectile peuvent être envoyées et reçues en temps réel par webscock et rendues.
Pour les navigateurs qui ne prennent pas en charge websocket, ils ne peuvent être dégradés qu'en interrogation longue ou en envoyant des requêtes de minuterie frontale pour obtenir une fenêtre contextuelle en temps réel.
Animation et détection de collision (c'est-à-dire pas de chevauchement) et ainsi de suite dans le rendu
|
Entrez l'email pour avoir une surprise
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
FMUSER Wirless transmet la vidéo et l'audio plus facilement!
Contactez-Nous
Adresse :
No.305 Chambre HuiLan Building No.273 Huanpu Road Guangzhou Chine 510620
Catégories
Newsletter