Transferred from: http://blog.csdn.net/hguisu/article/details/7418087
Streaming is defined widely, and now mainly refers to the technology that transmits media (such as video, audio) over the network. Its specific meaning is the transmission of film and television programs to the PC via the Internet. There are two ways to implement streaming: Live streaming (Realtime streaming) and sequential streaming (progressive streaming). (Baidu Encyclopedia)
The transmission of audio/video (English abbreviation A/V) and other multimedia information on the network currently has two schemes: download and streaming. A/V file is generally large, so the storage capacity required is also large, and due to network bandwidth constraints, the download often takes a few minutes or even hours, so this method of processing delay is also very large. When streaming, sound, image or animation and other time-based media from the audio and video server to the user computer continuous, real-time transmission, users do not have to wait until the entire file download complete, and only after a few seconds or ten seconds of the start delay can be viewed. When the sound waits for the base media to play on the client, the remainder of the file continues to be downloaded from the server in the background. Streaming not only causes the start-up delay to be 10 times times shorter, but also does not require too much cache capacity. Streaming avoids the disadvantage of users having to wait for the entire file to be downloaded from the Internet to view.
1. Types of streamed transmissions
The network transmits the audio, the video and so on the multimedia information to have the download and the stream transmission two kinds of schemes, the download scheme because a/V file is large, the required storage capacity is also large, and the network bandwidth limit causes the download time-consuming, and the delay is also large, and the streaming solution avoids the disadvantage that the user waits for the entire file Stream transmission technology is divided into two kinds, one is sequential streaming, the other is real-time streaming.
① sequential streaming (Progressive streaming)
Sequential streaming is a sequential download in which the media downloads the file while the user can watch the online program. At a given moment, the user can only watch the part that has been downloaded, not the part that has not yet been downloaded. Sequential streaming, unlike live streaming, can be adjusted at the speed of a user's connection during transmission. Because the standard HTTP server can send this form of file, and no other special protocol is required, it is often referred to as an HTTP streaming. Because the file before playing the part of the view is lossless download, the final playback quality is good, and therefore particularly suitable for high quality, small data, through the modem release of short films, such as title, trailer, advertising and so on. However, the user must pass the delay of the calendar seconds before viewing, especially when the transmission speed is slow. Sequential streaming is useful for short segments that are released via modems, which allow video fragments to be created with higher data rates than modems. In spite of the delay, a higher quality video clip can be released. Sequential streaming files are placed on standard HTTP or FTP servers and are therefore easy to manage and are basically not firewall-independent. Sequential streaming is not suitable for long fragments and video with random access requirements, such as lectures, speeches, and demos, nor does it support live broadcasts. So, strictly speaking, it is essentially an on-demand technology.
② Live Streaming (Realtime streaming)
Real-time streaming ensures that the media signal bandwidth matches the network connection and the program can be viewed in real time. Unlike HTTP streaming, live streaming requires a dedicated streaming media server and transport protocol. Real-time streaming is always delivered in real-time, making it ideal for live events, and supports random access, allowing users to fast-forward or rewind their viewing content to view front or back content. In theory, a live stream cannot be stopped once it is played, but in practice, a periodic pause may occur. Live streaming must match the connection bandwidth, which means that the image quality is poor when connected at the modem speed. Moreover, because of the loss of error information is ignored, the network congestion or problems, video quality is poor, and no sequential streaming video quality is good. Live streaming requires a specific server, such as QuickTime streaming server, Realserver, and Windows Media server. These servers allow you to perform more levels of control over media delivery, so system settings and administration are more complex than standard HTTP servers. Live streaming also requires special network protocols such as RTSP (Realtime streaming Protocol) or MMS (Microsoft Media Server). These protocols sometimes have problems with firewalls, causing users to not see real-time content in some locations.
Obviously, in the actual application, the specific mode of transmission can be determined as needed, and streaming also supports full download to the hard disk before playback. In general, the streaming mode uses RTP/UDP, rtsp/tcp two communication protocols to connect to A/V (audio/video) server, redirecting the output of the server to the destination address of the client where the A/V player program is running. Generally, a streaming system typically configures a dedicated set of servers and players.
2. Characteristics of streaming transmission
Compared with the simple download method, this kind of multimedia file side download side play streaming mode has the following characteristics:
① significantly reduces startup delay
Streaming dramatically shortens the start-up delay because users don't have to wait for everything to download to their hard drive to start browsing, whether it's working hours or evenings, and it's pretty fast. In general, a 45-minute video clip is displayed on the client in less than a minute, and in general there is no intermittent situation during playback. In addition, full-screen playback has almost no effect on playback speed, but fast-forward, fast-rewind, it takes time to wait.
② greatly reduces the need for system cache capacity
Because the Internet is intermittent asynchronous transmission based on packet transport, its data is decomposed into many packets for transmission. A dynamically changing network makes it possible for individual packages to choose different routes, so the time lag for arriving at a user's computer is different. Therefore, the client needs to cache the system to compensate for the effects of delay and jitter and ensure that the packet transmission sequence is correct, so that the media data can be continuously output, and will not be due to the temporary congestion of the network to make playback stalled. While streaming still requires caching, there is a significant reduction in caching requirements because there is no need to download all of the animations, AV content to the cache.
Because the streaming media technology uses the data buffering technology, it can keep the stream media uninterrupted and guarantee the reliability of the file transmission.
③ has a specific real-time transport protocol for streaming
As previously described, streaming media currently has three mainstream formats and requires a corresponding specific real-time transport protocol. In general, the use of RTSP and other real-time transmission protocol, more suitable for animation, video and audio in the online streaming real-time transmission.
In addition, the use of streaming media technology does not occupy the local hard disk space and so on.
Two main kinds of stream transmission and the characteristics of streaming transmission