`

Streaming vs. progressive download: Understanding the difference

 
阅读更多
转自:http://blog.mydeo.com/2009/01/12/streaming-vs-progressive-download-understanding-the-difference/


Streaming vs. progressive download: Understanding the difference

One of the most frequently asked questions about delivering video online is – “What’s the difference between streaming video and progressive download?” As a user clicking a video link on a website, you will not often know which delivery method is being used, unless you do some poking around. Although the end result may look the same to the end user, streaming and progressive download are very different delivery methods, each with their own strengths and weaknesses. Here we will take a look at the two delivery methods and help you to decide which will work best for you.


Delivering a file via HTTP:

Delivery of a file over HTTP is normally referred to as ‘progressive download’ or ‘http streaming’. In reality, it is not streaming at all but a very simple bulk download of a video file to the end user’s computer. A temporary copy of the video file is then stored on the local computer so that the viewer can watch the file over and over without having to download the file each time.

Let’s assume you have a video file encoded at 500kbps. The server delivering the file does not know or care that your video file is encoded at 500kbps; it simply pushes data to the host machine as quickly as it can. This can sometimes give the illusion that the file is being streamed because playback can start as soon as enough of the file is available on the local machine. This obviously restricts the users from skipping to parts of the file that have not yet been downloaded.

If the bandwidth available to the machine downloading the file is smaller than the encoded bit-rate there may be a wait before the file will start to play. For example, on a 56kbps dial-up modem, trying to play a file that is encoded at 500kbps you may have to wait a fairly long time before enough of the file has been downloaded for it to start playing. On a 500kbps internet connect, or faster, playback should start almost immediately and the file should download faster than it will play, meaning that playback will not have to stop because not enough data has been downloaded.

HTTP(Hypertext transport protocol) operates over TCP(Transport control protocol) which controls the actual transport of the packets over the network. TCP is optimized for guarantee of delivery, regardless of file format or size. If a packet is skipped during the transfer of a file, it will request a resend of that packet. Resend requests take time and bandwidth and could increase the load on the server. TCP is not designed for efficient real time delivery or careful bandwidth control, but for accurate and reliable delivery of every bit.


Delivering from a streaming server:

Effectively, a streaming server is a piece of software which deals with video requests. Unlike a standard web server delivering a video file over HTTP (progressive download), a streaming server opens a conversation with the local machine. There are two sides to this conversation, one is for transferring the video and the other is for control messages between the media player and the server. These control messages include commands such as ‘play’, ‘pause’, ‘stop’ and ‘seek’.

If you have a 56kbps connection, you will not be able to receive a stream encoded at 500kbps; you will have to settle for a lower quality video encoded for 56kbps connections. Streaming does however have many advantages.

1. You can begin video playback at any point of the video, or skip through the video as you see fit. This is very convenient for users.
2. It makes a lot more efficient use of bandwidth as you are only using bandwidth for part of the video that are actually watched as opposed to HTTP delivery where the whole file gets delivered.
3. The video file is not stored on the viewer’s computer – the video data is played and then discarded by the media player. This lets you maintain more control over your content.

Streaming servers use a specific set of protocols to deliver streams, such as RTSP(Real time streaming protocol), RTMP(Real time messaging protocol) and MMS(Microsoft media services). These protocols are all more suited to delivering video streams because they are more focussed with continuous delivery than they are with 100% accuracy. Unlike TCP, they do not send resend requests for missing packets but instead continue with the rest of the video file. The idea is that it is better to have a momentary glitch in audio or video than for the playback to stop altogether and wait for the missing data.

Conclusion:

In conclusion, both streaming and progressive download have their own benefits and limitations. If you are trying to reach viewers with slower connections and need the quality to be high, progressive download would be your best option. On the other hand, if you know that your viewers will all have a fast enough connection to view your stream, you might save on bandwidth by streaming the video. Without knowing who your video will be served to, progressive download will always be a safer option because no matter what connection they have, they will be able to view your video. For live streaming, a streaming server has to be used. This cannot be done over HTTP.
分享到:
评论

相关推荐

    EurekaLog_7.5.0.0_Enterprise

    7)....Added: Streaming unpacked debug info into temporal files instead of memory - this greatly reduces run-time application memory usage at cost of slightly slower exception processing. This also ...

    ngwsx-0.8.39 with h264 streaming module

    ngwsx-0.8.39 with h264 streaming module. features: *) native port of nginx on windows. *) single process mode. *) windows service. *) iocp event method. *) file aio. *) zlib-1.2.3. (statically link...

    flink-streaming-java_2.12-1.14.3-API文档-中文版.zip

    赠送jar包:flink-streaming-java_2.12-1.14.3.jar; 赠送原API文档:flink-streaming-java_2.12-1.14.3-javadoc.jar; 赠送源代码:flink-streaming-java_2.12-1.14.3-sources.jar; 赠送Maven依赖信息文件:flink-...

    Streaming.Sharing.Stealing.Big.Data.and.the.Future.of.Entertainment

    Traditional network television programming has always followed the same script: executives approve a pilot, order a trial number of episodes, and broadcast them, expecting viewers to watch a given ...

    藏经阁-Elastic Streaming.pdf

    " Elastic Streaming 和 Spark Streaming 的应用" Elastic Streaming 是一个流式数据处理平台,旨在处理大规模的流式数据,并提供低延迟、实时处理和高吞吐量的能力。该平台结合了 Spark Streaming 和 Dynamic ...

    Streaming Architecture New Designs Using Apache Kafka and MapR Streams

    本文将深入探讨"Streaming Architecture New Designs Using Apache Kafka and MapR Streams"这一主题,阐述如何利用这两种强大的工具构建高效、可扩展的流处理系统。 Apache Kafka是一种分布式流处理平台,由...

    工信部spark中级考试参考题目

    15. Spark Streaming:用于流式数据的处理,使得构建可扩展容错流应用程序变得容易。 DataFrame 16. Spark SQL:需要定义 Schema,定义每一个字段名与数据类型,因而可以用字段名进行统计。 17. orderBy:用于对 ...

    Unreeling Netflix: Understanding and Improving Multi-CDN Movie Delivery

    Understanding the Netflix architecture and its performance can shed light on how to best optimize its design as well as on the design of similar on-demand streaming services. In this paper, we ...

    StreamingAssets.rar

    《StreamingAssets.rar》是一个与游戏相关的压缩文件,包含“~necromancy~エミリの逃亡”的全CG数据。这个压缩包里的内容显然对于游戏的视觉表现至关重要,特别是对于那些重视故事情节和角色视觉效果的游戏而言。...

    Streaming Systems.pdf.zip

    高清完整3737页版本。书籍地址:https://www.amazon.cn/dp/1491983876/ref=sr_1_1?ie=UTF8&qid=1539237846&sr=8-1&keywords=streaming+systems

    了解大数据-企业级Hadoop和流数据的分析Understanding Big Data - Analytics for Enterprise Class Hadoop and Streaming Data

    本书可帮助您快速掌握大数据,并向您展示IBM为将免费提供的开源大数据技术转变为大数据平台所做的独特工作。

    SSE2指令集_中文

    SSE2(Streaming SIMD Extensions 2)是一组 Streaming SIMD Instructions(流式单指令多数据),它是 Intel 公司在 2000 年推出的,主要用于加速科学、工程、图形、游戏、암호等领域的计算。SSE2 指令集提供了许多...

    http_live_stream_architecture

    ### HTTP Live Streaming (HLS) 架构详解 #### 概览 HTTP Live Streaming(简称HLS)是一种由苹果公司开发的技术,它允许通过普通的HTTP服务器传输音频和视频流,适用于iPhone、iPod touch、iPad以及Apple TV等...

    Arcam雅俊CDS50使用说明书.pdf

    本使用说明书是为Arcam雅俊CDS50 SACD/CD/NETWORK STREAMING PLAYER提供的用户手册,旨在帮助用户正确地使用和维护该设备。以下是从该文件中提取的相关知识点: 一、安全指南 1. reading instructions:用户在使用...

    Spark Streaming Systems - Tyler Akidau

    《Spark Streaming Systems》是Tyler Akidau撰写的一本关于Spark流处理技术的著作。这本书深入探讨了Apache Spark的Streaming模块,它是一个强大的实时数据处理框架,适用于构建可扩展且容错性强的流处理系统。在...

    Streaming Data Understanding the real-time pipeline v2

    本文将深入探讨“Streaming Data Understanding the real-time pipeline v2”这一主题,结合Java技术,来阐述实时数据管道的工作原理和关键概念。 一、实时数据管道概述 实时数据管道(Real-time Data Pipeline)是...

    一步步安装nginx搭建流媒体服务器

    nginx_mod_h264_streaming-2.2.7.tar.gz :MP4流媒体支持模块。 openssl-1.0.1c.tar.gz :openssl库 pcre-7.9.tar.gz :perl兼容的正则表达式库模块 zlib-1.2.3.tar.gz :liunx下的JFFS文件系统制作工具 yamdi-...

Global site tag (gtag.js) - Google Analytics