FMUSER Wirless Verzend video en audio eenvoudiger!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
Onlangs begon ik contact op te nemen met het video-live-project, ik heb ook enkele video-live-gerelateerde concepten, technologieën en oplossingen samengevat.
Begrijp allereerst het concept van live video. Enkele veel voorkomende videoprotocollen zijn: RTMP, http-flv, HLS, RTP / RTCP.
Vervolgens leggen we het hele proces van live-uitzendingen en aanverwante technologieën uit.
1 、 Live video-protocol
Op het gebied van live-uitzendingen zijn er twee soorten live-uitzendingen: interactieve live-uitzendingen en niet-interactieve live-uitzendingen.
Niet-interactieve live-uitzendingen (zoals: Live parade, NBA Live Broadcasting, Champions League live-uitzendingen, etc.) zijn niet erg interactief, waardoor een vertraging van 10 seconden of meer mogelijk is. Het wordt gekenmerkt door relatief weinig bronnen en is geschikt voor transcodering via meerdere kanalen (gebruikers kunnen het bekijken volgens de netwerkomstandigheden).
De typische scènes van interactieve live-uitzendingen omvatten live-uitzendingen van shows, live-uitzendingen van games, enz. Vanwege de hoge eisen aan de interactie tussen het anker en het publiek, moeten deze live-uitzendingen worden vertraagd binnen 5S. De kenmerken van interactieve live-uitzendingen zijn: meer bronnen, niet geschikt voor transcodering via meerdere kanalen, tussenliggende server alleen als doorvoerrol.
De media voor live-overdracht van inhoud is het netwerk en de bijbehorende protocollen zijn nodig om video of audio in het netwerk te verzenden. Momenteel zijn de algemene protocollen die geschikt zijn voor live-scènes als volgt.
1. RTMP-protocol (niet ondersteund door HTML 5, ondersteund door Flash)
RTMP is een protocol voor streaming media, het patentprotocol van Adobe. Op basis van TCP is het erg populair in China.
Populaire reden: de ondersteuning van open source-software en open source-bibliotheek is stabiel en volledig, en de meest gebruikte streaming- en streamingoplossingen kunnen in principe stabiel werken. Bijvoorbeeld: open source librtmp push stream library, service side heeft nginx RTMP plug-in, pull stream heeft ijkplayer play library.
2. Http-flv-protocol (niet ondersteund door HTML 5, ondersteund door Flash)
Dat is om het HTTP-protocol te gebruiken om media-inhoud te streamen. HTTP is eenvoudiger en beter bekend dan RTMP. De inhoudsvertraging kan ook 2-5 seconden zijn en de openingssnelheid is sneller, omdat HTTP zelf geen complexe statusinteractie heeft. Dus vanuit het perspectief van latency is http-flv beter dan RTMP.
3. HLS-protocol (HTML-ondersteuning, Flash-ondersteuning)
HTTP-livestreaming is een transportprotocol voor streaming media gebaseerd op HTTP voorgesteld door Apple. HLS heeft een heel groot voordeel: HTML5 kan direct worden geopend en afgespeeld; dit betekent dat een live link kan worden gedeeld via wechat en andere forwarding, zonder de noodzaak om een onafhankelijke app te installeren, met een browser, dus het is erg populair. Sociale live-app, HLS is gewoon nodig. De livestream-URL op basis van HLS is een m3u8-bestand, dat verschillende recente kleine TS-videobestanden bevat. De vertraging van deze afspeelmodus is relatief hoog (wat gerelateerd is aan de grootte van het TS-bestand), en het kan een vertraging van 5-7 seconden opleveren in hetzelfde stadsnetwerk.
4. RTP / RTCP-protocol
Real-time transportprotocol is een transportlaagprotocol voor multimediadatastreams op internet. RTCP verzendt de signalering van interactieve besturing en RTP verzendt de feitelijke mediagegevens.
RTP wordt veel gebruikt in videobewaking, videoconferenties en IP-telefoons, omdat een van de belangrijke ervaringen met videoconferenties en IP-telefoons sterke realtime inhoud is.
Vergeleken met de bovenstaande drie protocollen is een belangrijk verschil tussen RTP en hen dat het UDP-protocol standaard wordt gebruikt om gegevens te verzenden, terwijl RTMP en HTTP zijn gebaseerd op het TCP-protocol.
Gebruik scenarioanalyse: de scène van real-time audio- en videostream heeft geen betrouwbare garantie nodig, dus er is geen herverzendingsmechanisme nodig. Het is niet belangrijk om het beeld en geluid in realtime te zien, wat inhoud te verliezen wanneer het netwerk trilt, het beeld en het opstartscherm wazig maakt. Om opnieuw te verzenden, veroorzaakt TCP vertraging en asynchronie. Als een bepaald gedeelte van de inhoud na één seconde arriveert vanwege doorgifte, wordt het hele gesprek een seconde vertraagd. Met de netwerkjitter neemt de vertraging toe tot twee seconden of drie seconden. Als de klant het afspelen niet afhandelt, wordt de directe uitzendervaring ernstig aangetast. Hoe u kunt optimaliseren, wordt in het volgende artikel uitgelegd.
Conclusie: bij de selectie van het live uitzendprotocol, als RTMP of http-flv is geselecteerd, betekent dit dat er een inhoudsvertraging is van 2-5 seconden, maar wat betreft de openvertraging is http-flv beter dan RTMP . HLS heeft een inhoudsvertraging van 5-7 seconden. Als u RTP kiest voor live-uitzendingen, kan de live-uitzending binnen 1 seconde worden vertraagd. Voor zover we weten, ondersteunen de grote CDN-fabrikanten echter geen live-uitzendingen op basis van RTP, dus de huidige binnenlandse mainstream is RTMP of http-flv.
2 、 Video live-uitzendproces
Het technische proces met betrekking tot live video is: real-time acquisitie van videostreams --- codering van videostreams --- overdracht van videostreams --- decodering van videostreams --- afspelen van video's.
1. Het idee van real-time video-opname
a) Door setpreviewcallback in te stellen in het opnamevoorbeeld van de Android-camera, wordt de onpreviewframe-interface gerealiseerd om de gegevens van elke videostream in realtime vast te leggen.
b) Bind via Android mediarecorder localocket in de functie setoutputfile.
c) Streaming media server-modus, met behulp van ffmpeg of getstreamer om cameravideo op te halen.
2. De realisatie van videocompressiecodering
a) Zonder codering wordt het originele yuv420sp-videoframe rechtstreeks via de socket verzonden.
b) JEPG comprimeert het originele yuv420sp-videoframe in H.264 en verzendt het vervolgens.
c) H.264 / avc. Het originele yuv420sp-videoframe wordt gecomprimeerd tot H.264 en vervolgens verzonden. Veelgebruikte open source-encoders op basis van H264 zijn JM, x264, t264, hdot264, enz.
d). mpeg4. Comprimeer het originele yuv420sp-videoframe in MPEG4 en verzend het vervolgens
3. Het idee van videotransmissie
een) . socket transmissie
b). HTTP-transport
c). RTP / RTSP-verzending
d). streaming media server-modus, zoals live555, enz
4. De realisatie van videodecodering
een) . decoder die overeenkomt met codering
5. Het idee van het afspelen van video's
een) . via Android videoview
b). via Android mediaplay
c). plak frame-afbeelding rechtstreeks door canvas
|
Voer een e-mailadres in om een verrassing te ontvangen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
FMUSER Wirless Verzend video en audio eenvoudiger!
Neem contact op
Adres:
No.305 Zaal HuiLan Gebouw No.273 Huanpu Road Guangzhou China 510620
Categorieën
Nieuwsbrief