Writing this article first is to give yourself a summary, finishing, and also to those who do not specifically understand how the broadcast is a bit of thinking
recently, the company wants to do PC-side live, as a self-thought very much of the front end is really do not know where to start, so can only use the people's favorite Baidu, search a lot of information, articles, the first conclusion is that live is very Burn money, but burn not to burn money this I may not control, I also have no way to control, so can only continue to explore my live road, according to my search has some conclusions, of course, these conclusions may be many others said, I take to use, summed up, also hope you forgive me, Some of the following are my own opinions.
First the live stream is divided into two ends, the host side and watching the Live one end ( this is my own understanding )
The host side must be recording video, the recorded video to the backstage
Watch live on one end of the video from the background to pull over to play indifferent still have what comments, gifts and so on.
So summing up the official statement is that video broadcast can be divided into collection, pre-processing, encoding, transmission, decoding, rendering these links.
Acquisition---is generally mobile, iOS is relatively simple, the model is more agreeable, Android is more complex, because there are many models, need to do the appropriate, the most troublesome PC, a variety of different cameras, microphones, more messy and bad processing.
Pre-processing---is beauty or something, to make the host good-looking, many Daniel said the beauty algorithm to use GPU programming (this is not quite understand)
The encoding---should be the video of the recording to do the processing ( not quite understand, self-understanding is so )
Transmission---This is expensive, it involves traffic and stuff.
Decoding---should be watching live, pull the video to do some processing ( not quite understand, self-understanding is so )
Render---Sync music while playing video
Live streaming including push and pull streams
At present, the mainstream video streaming program on the web has HLS and RTMP, the main mobile is mainly HLS (HLS has a delay problem, but also with the help of Video.jscaiyong rtmp), PC-side mainly with RTMP-based real-time performance is better (this passage is seen from other people's blog But forget who it is, the author sees forgive me)
Let's talk about the push protocol.
1.RTMP (Real Time Messaging Protocol) live Message Transfer Protocol
The protocol is based on TCP
Advantages:
CDN Support is good, mainstream CDN vendors are supporting
Simple protocol, easy to implement on each platform
Disadvantages:
TCP-based, high transmission cost, the problem is significant in the case of high packet loss rate in weak network environment
Browser Not supported * *
adobe private agreement, Adobe is no longer updated
2.WebRTC name derived from the abbreviation for Web Instant Messaging (English: Web real-time communication)
is an API that supports Web browsers for real-time voice conversations or video conversations. It was open source on June 1, 2011 and was incorporated into the World Wide Web Consortium's recommended standards with Google, Mozilla and opera support.
Advantages
Standard, high level of mainstream browser support
Google support behind, and in each platform has a reference to achieve
Lower layer based on SRTP and UDP, low-network optimization of large space
can achieve point-to-point communication, communication both sides delay low
Disadvantages
Ice,stun,turn Traditional CDN does not offer a similar service
3. UDP-based private protocol
Some live applications use UDP to develop their own private protocols for the underlying protocol, because the advantages of UDP in a weak network environment can achieve better weak network optimization effect through some customized tuning, but also because the private protocol is bound to have a real problem:
Advantages
More space for customized optimization
Disadvantages
High cost of development
CDN is unfriendly and requires a self-built CDN or an agreement with a CDN
Independent warfare, unable to evolve with the community
The above is I do in the preparation of the broadcast to find information, I hope to be helpful to some people, and again stressed that there are some other people's words to borrow a forgotten excuse
About PC-Side live