1.DASH Introduction
DASH, also known as MPEG dash,dash:dynamic Adaptive streaming over HTTP, is a video streaming technology that transmits dynamic bitrate on the internet, similar to how Apple's Hls,dash will pass media Presentation description (MPD) slices video content into a short file fragment, each with multiple different bitrate, and the DASH client can choose a bitrate to play based on the network, enabling seamless switching between different bitrate.
Dash was developed by MPEG (Moving Picture Experts Group), started in 2010, launched in November 2011, draft release, April 2012 release of first version (ISO/IEC 23009-1:2012) , a second draft (ISO/IEC 23009-1:2014) was issued in May 2014, with the latest draft (ISO/IEC 23009-3:2015).
The 3GPP Release 10 has already included dash, and in HbbTV 1.5 support Dash;dvb-dash also included Dash into the DVB (ETSI TS 103 285 v.1.1.1). At present, dash Industry forum is made up of manufacturers to promote the dash product ecosystem and to push the dash industry and industry best practices into batch applications. ISO/IEC 23009 consists of four parts:
Part 1:media presentation description and segment formats
Part 2:conformance and reference software
Part 3:implementation Guidelines
Part 4:segment encryption and authentication dash compared to the advantages of HLS, HSS and other protocols are: Dash support a variety of coding, support h.265, H, VP9 and so on; Dash supports MULTIDRM, supports PlayReady, Widewine, uses the universal encryption technology, supports the end-of-band DRM, can greatly reduce the DRM investment cost; Dash supports a wide range of file encapsulation, supporting MPEG-4, MPEG-2 TS (Transport Stream); Dash supports multiple CDN docking, using the same package to describe docking multi-vendor CDN; Dash supports heterogeneous terminals, browser native without plug-ins can support, Android/ios/windows/flash can be JITP to convert dash to HLS , HDS, HSS, etc., have supported the legacy terminal type, support a copy of storage, greatly reduce the amount of file storage; Dash supports streaming, on-demand, recording, time-lapse, and much more. Dash supports dynamic bitrate adaptation and supports multi-bitrate smooth switching; dash supports a condensed description to support fast start-up Dash supports ad insertion on the client and server side. Dash's factory support situation: Android native Exoplayer player, mainstream ott:youtube, Netflix, mainstream browser (using MSE, EME), mainstream smart TV manufacturers: Samsung, LG, Philips, Sony, etc. The main open source frameworks and Lib libraries are:
1, the client GStreamer Dash.js Libdash, supports Android, iOS multiplatform
2. Service Side Akamai CDN Amazon Elastic transcoder Azure Media Service BrightCove zencoder Nginx RTMP module Wowza streaming Engine
A typical end-to-end system for DASH includes encoder, dash server, Origin server, Edge server, dash Client:
Media Presentation Description is information describing shards and timing: from Mpd->period->adpatation Set (Video/audio track)->representation (Multiple bitrate)->segement
Dash content prepares video files with different bitrate (using different quality requirements and network environments), and then uses a specific Shard method to fragment the video files and then transfer the shards to the client for playback. The properties information and video shard information of the video itself when the MPD file is fragmented in the video file.
As for why to use TS instead of MP4, this is because two TS fragments can be seamless splicing, the player can play continuously, and MP4 file due to the encoding method, two MP4 can not be seamless splicing, the player continuously play two MP4 files will appear broken sound and screen breaks, affecting the user experience.
2.OTT Dash vs. IPTV
OTT Video technology and IPTV video technology are IP-based, but with a completely different technology, the comparison is as follows:
Network: IPTV is based on management network, high quality, low packet loss rate, network are chosen adequately, network structure is relatively simple, network bandwidth is stable, OTT is based on non-management network, network quality is not controllable, packet loss rate is high, network delay, network structure is complex, network bandwidth changes significantly;
Terminal: IPTV terminal is basically the operator's own definition of Stb,ott terminal model, configuration, capacity, resources have a great difference;
Business: IPTV network is based on the development of live broadcasting service, its core is to live are chosen adequately, multicast-based efficient transmission, and OTT network is based on on-demand business development, its core demand is the network quality tolerance;
Technology: IPTV based on UDP multicast transmission technology, unable to cross the firewall, if there will be a drop packet mosaic, OTT based on HTTP over TCP transmission technology, can cross the firewall, generally there is no mosaic, but will be prone to buffering. 3. How to support high-concurrency live streaming services over Ott.
OTT-based unicast technology, similar to the World Cup, parade, Spring Festival Gala and other large high-concentration of live events, the traditional OTT unicast technology can not meet the requirements, there are 3 main problems: if it is a self-built CDN, Edge CDN can not support more than 10-100 times the bandwidth service;
If it is rented CDN, the cost will be high to the operator can not afford;
Even without considering the cost factor, the amount of network congestion caused by concurrent traffic.
Solution One: ABR multicast
Streams the dash Origin server stream through multicast server to the UDP multicast network and accepts the UDP multicast stream on the multicast client. The routing of Dash on the broadcast and EMBMS networks has been supported by appropriate specifications.
Solution Two: Peer
Through the peer-node mutual help, greatly reduce the pressure on the Cdn edge node, can offload more than 90% of the CDN traffic pressure, reduce the bandwidth rental cost of 90%, and greatly reduce the congestion effect of network path, automatically through the peer-node selection to avoid congestion path.
The high-hotspot Live program is ideal for peer-to Android/ios, as well as mobile phone/pad, which is very effective for local storage requirements, and can be based on in-memory caching to provide peer-to stream services under a WiFi network.
Dash vs. HLS:
Http://www.doc88.com/p-9962134662286.html
In addition to HLS, the other dynamic adaptive streaming technologies are Microsoft's IIS Smooth streaming,adobe company dynamic streaming and so on. These coexistence protocols use the same technology as 80%, but 100% are not compatible. In order to standardize the various adaptive flow technologies in the industry, MEPG introduced the Mepg-dash standard. The aim is to create the same protocol standard for dynamic adaptive streaming media technology. Dash is also supported by a number of companies, and Apple,adobe,microsoft,netflix,qualcomm says it will support the standard as soon as the dash is complete.
So the difference between HLS and Dash is mainly the following figure:
Dash's system architecture based on the Mepg-dash streaming protocol is shown below:
Three different streaming media protocols: Rtmp,rtsp,http live streaming (Apple and Adobe)
Rtmp is Adobe's, rtsp Android native support, HTTP live streaming (HLS) Of course is Apple flagship, and later Adobe finally enlightened support.
Rtmp and RTSP require special servers, such as rtmp requirements Fms/red5, RTSP requires Darwin, etc., HLS as long as the normal server.
Similar to adaptive streaming's technology HLS and rtmp are there, and RTSP doesn't seem to have.
Video-related protocols have many, different companies, and even have their own protocol standards. This article tries to cover the current common video-related protocols. 1,RTSP/RTP/RTCP Protocol Family
This protocol family is the earliest video transmission protocol. The RTSP protocol is used for video-on-demand session control, such as the setup request to initiate on-demand requests, play and pause requests for specific playback operations, and the video jumps are supported by the parameters of the play request. The RTP protocol is used for the transmission of the specific video data stream. The C in the RTCP protocol is the meaning of control, which is used for control over the video stream data, packet loss or bitrate.
The protocol family RTSP is based on TCP, RTP, RTCP based on UDP. However, it is also possible to transfer RTP and RTSP together on the same TCP connection in a interleave manner.
The RTSP protocol family is the first to be raised, so many of the considerations of the place, are also with early features. For example, the use of UDP, considering the efficiency of transmission, as well as the video protocol itself on the packet loss has a certain degree of tolerance. However, the UDP protocol obviously cannot be used for larger networks, and the penetration of routers under complex networks is also a problem.
From the video point of view, the advantage of the RTSP protocol family is that it can control the video frame, so it can carry high-real-time applications. This advantage is the biggest advantage relative to the HTTP approach. The low-level video conferencing protocol, the lower level generally adopts RTSP protocol. The complexity of the RTSP protocol family is mainly concentrated on the server side, because the server side need to parse video files, seek to specific video frames, and may also need to perform speed play (that is, the old DVD with the kind of twice times, 4 times times the function of the speed play), the double play function is the RTSP protocol unique, Other video protocols are not supported.
Disadvantage, is the server-side complexity is also relatively high, the implementation is more complex. 2,http protocol
HTTP video protocol, mainly after the popularization of the Internet. The need to watch video on the internet formed.
2.1
The original HTTP video protocol, nothing special, is a generic HTTP file progressive download. The essence is to download video files, and the use of the video file itself is characterized by the presence of header information, and part of the video frame data, it can be decoded playback. Obviously this method needs to put the header information of the video file in front of the file. Some, such as the FastStart tool, are dedicated to this function. But in the most primitive state, the video cannot be fast-forward or jump-broadcast to the part where the file has not been downloaded. At this time, the HTTP protocol was put forward with range-request requirements. This is supported by almost all HTTP servers. Range-request, which is the partial data for the request file, specifies the number of offset bytes. After the video client resolves the video file's head, it can determine the location of the corresponding frame of the subsequent video. or according to the rate and other information, calculate the corresponding position. 2.2
Support HTTP range-request server, currently can support our general network to see the requirements of video. However, this approach does not support real-time video streaming, or quasi-real-time video streaming. Because of the video stream, there is no concept of a video file. The advantage of the HTTP protocol for video playback is simplicity. With a common HTTP server, you can provide services, do not require a specialized type of server, and do not require a special network port, through the router firewall is not a problem. You can also use a common CDN to simplify the deployment and distribution of video and reduce the use of bandwidth. This is the most common solution that is currently used for PC-side or web-side, video-on-demand services. The implementation of the client, generally using Flash, Flash is the Videoplayer or Videodisplay control can be completed. Resources are generally in FLV format or in MP4 format. On this basis, a number of companies have introduced their own solutions. 2.3 HLS HDS MSS DASH
Apple's launch of the HTTP Live streaming is one that has been widely used with the popularity of Apple devices. From the noun can be judged, HLS support live live video transmission. HTTP uses m3u8 as an index file and video as a fragment file in mpeg2-ts format. If the video stream is live, update the m3u8 file to update the video index list to achieve the video broadcast. But this method, because the final video is a fragment file, so there must be a delay in fragment video length. Therefore, it can only be used for quasi-real-time video streams where real-time requirements are not so high. However, HLS method, because the use of the earlier Mpeg2-ts format, the format of the overhead, that is, the head information occupies a larger proportion of the total file, that is, the efficiency is not high. The reason for not using other formats is primarily commercial competition and copyright issues. Accordingly, Adobe Company, introduced similar HTTP dynamic streaming. The essence of this approach is similar to the HLS strategy, that is, by indexing the file + video clip mode. But obviously the index format and video fragment format are not the same. HDS uses the video format as FLV or F4V, and the index format is unclear. Similarly, Microsoft has introduced the Microsoft Smooth streaming, also known as MSS Video Broadcast mode, the use of video format is segmented mp4 format. The MPEG Standard group introduces the dynamic Adaptive streaming over Http,dash. The video format is 3GPP. Obviously, this is now a flourishing state, although the most commonly used is HLS, who called Apple so domineering. There are limits to flash on Android and Apple, and HDS is Adobe's launch on the Adobe platform. MSS, only seen in a few places. Dash, at present, is only the product of the paper. The above agreement, mainly to solve a problem, is adaptive bitrate switching, the above dynamic,adaptive are similar meaning. The main is to use the index file at the same time to give different bitrate video file address, so that the player side, according to the bandwidth situation, adaptive selection of different bitrate video files. At the same time in the video broadcast, in addition to the Android and iOS platforms, there are many video server vendors, their own development protocol, generally used in the way of fixed-time fragments of the FLV file mode (using FLV, because Flash played above) 2.4 HTML5
At the same time, the HTML maker is not lonely, introduced HTML5 this way, in essence, and the previous HTTP video protocol without any difference. However, the player side is no longer dependent on specific plugins such as Flash, or other playback software, but can support the direct video playback of the browser. The video tag is embedded in the HTML, and the URL is directly indicated. However, different browsers, for audio and video format support is not exactly the same. The more common is the video H. 264 format, audio AAC format, package format MP4. 2.5 Other
On the basis of the HTTP protocol, companies, for their own business features, may also develop their own proprietary data formats, or protocols. But all of the above-mentioned basic to make some minor changes. After all, the domestic technical system, but also completely unable to propose a new level of technology. (Google, the new encoding format to replace the H.264,spdy protocol, the country can not do). Generally only do such as HTTP special fields or special parameters, passed to flash to make a certain explanation. Or in the original video file format based on the addition of some special meaning of the head and so on. 3,rtmp
This is the video playback protocol that Adobe has launched itself. Need dedicated server, such as FMS, open-source Red5. This protocol is also supported by Flash by default.
Playback Mode UnicastA separate data channel needs to be established between the client and the media server, and each packet sent from one server can only be routed to a single client, which is called unicast. Each user must send separate queries to the media server, and the media server must send the requested copy of the packet to each user. ThisHuge RedundancyFirst, the heavy burden on the server, the response takes a long time, or even stop playing; managers are also forced to purchase hardware and bandwidth to guarantee a certain quality of service.Multicast IP Multicast technology constructs a multicast-capable network that allows routers to replicate packets to multiple channels at once. With multicast, a single server can send continuous data stream to hundreds of thousands of clients simultaneously without delay.The media server only needs to send one packet, not more, and all clients that make the request share the same packet. Information can be sent to clients of any address, reducing the trafficInformation Packageof the total. The efficiency of network utilization is greatly improved and the cost is greatly reduced. On demand and broadcast On- Demand connectionIs the active connection between the client and the server. In an on-demand connection, the user initializes the client connection by selecting the content item. The user can start, stop, rewind, fast forward, or pause the stream.On- demand connections provide maximum control of the convection, but this approach quickly runs out of network bandwidth because each client connects to the server. BroadcastRefers to the user passive receive stream. During the broadcast, the client receives the stream but cannot control the flow. For example, a user cannot pause, fast-forward, or rewind the stream. A single copy of the packet in the broadcast mode is sent to all users on the network. When you use a single advertisement, you need to copy multiple copies of the packet, sending it to those users who need it, in a multiple point-to-point manner, andwith broadcast, a single copy of the packet is sent to all users on the network, regardless of whether the user needs, these two modes of transmission can be very wasteful of network bandwidth.Multicast absorbs the strengths of both of these modes of transmission, overcoming the weaknesses of the two sending methods and sending a single copy of the packet to those customers who need it. Multicast does not replicate multiple copies of a packet to the network and does not packets the data to those customers who do not need it, ensuring that the network's minimum bandwidth is occupied by multimedia applications on the Web.