- 浏览: 1065547 次
- 性别:
- 来自: 南昌
文章分类
- 全部博客 (276)
- 生活 (1)
- 代码之美 (22)
- Media (7)
- Android Widget (3)
- Android Intent (1)
- Android Activity (4)
- UI event handle--UI事件处理机制 (2)
- Java基础知识 (12)
- android Databases (5)
- Android 系统知识 (70)
- 平常遇到的问题与解决方法 (38)
- Android TextView/EditView (2)
- Thinking Java (1)
- android webkit (6)
- JSON (1)
- XML (4)
- HTTP (1)
- Google Weather API (1)
- android 2.3 NFC (10)
- android app (20)
- android framework (7)
- C++ (2)
- android System (5)
- Pthread (1)
- Wifi (8)
- Unix/Linux C (8)
- Android 4.0 (1)
- Mail (1)
- Smack 源码学习 (4)
- iOS (4)
- Android (1)
- git (1)
- Gallery3d (2)
- React-Natice (1)
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
转自: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.
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.
发表评论
-
Android Webview加载www.youtube.com的问题
2019-04-25 10:36 989Android Webview加载www.youtube.co ... -
EditText键盘删除字符的原理
2018-10-29 19:21 1244转https://blog.csdn.net/tankai19 ... -
Background execution not allowed
2018-10-22 19:02 357111-05 10:08:18.058 673 736 ... -
failed to set system property
2018-10-17 09:21 4356在App的mk文件设置了LOCAL_CERTIFICATE : ... -
CtsDeqpTestCases fail
2018-07-27 09:44 3010Suite / Plan:VTS / cts-on-gsi ... -
在DocumentUI中的Recent(最近)列表无法显示图片的缩略图
2018-06-12 18:23 938今天客户提了一个bug说在短信添加附件,界面无法显示缩略图。接 ... -
在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐仍在后台播放
2018-06-05 11:28 1630在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐 ... -
junit.framework.AssertionFailedError: Failed to get achievable frame rates for O
2018-05-25 15:41 2341之前对于CTS测试的失败case接触不多,组长突然转了这样一个 ... -
Android 模拟各种事件的方法
2018-05-17 16:30 1520有时候没有对应的硬件设备,那我们就得通过某种方式来模拟。比如模 ... -
Android Email 新建邮件时一直显示“waiting for sync”
2018-02-28 15:48 987当用户在Setting中清除了Email的data,再返回到E ... -
javax.net.ssl.SSLHandshakeException: Unacceptable certificate: CN=GeoTrust SSL C
2018-01-30 16:48 3768最近从Android N升级到Android O,发现163的 ... -
Email中附件名称中包含中文字符显示乱码
2017-11-28 17:09 1609Email中附件名称中包含中文字符显示乱码是因为附件虽包含了中 ... -
不能再通过createPackageContext来访问另外一个应用的资源(Sharepreference)
2017-11-14 17:22 1462以前我们可以通过createPackageContext来访问 ... -
当Email未设置账户时,通过ACTION_SENDTO启动会报ActivityNotFoundException
2017-09-27 18:15 533当Email未设置账户时,通过ACTION_SENDTO启动会 ... -
java.lang.SecurityException: Permission Denial: reading...requires android.permi
2016-05-12 11:12 2363一直在忙于Gallery,最近遇到了这样的bug,在Setti ... -
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a read
2015-11-27 14:50 2953android.database.sqlite.SQLiteR ... -
AsyncTask
2015-08-21 17:43 413转自http://blog.csdn.net/hitlion2 ... -
解决IllegalStateException: Can not perform this action after onSaveInstanceState
2015-08-07 18:07 1089转自http://www.cnblogs.com/zgz345 ... -
Android setTag方法的key问题
2015-08-03 19:22 1072转自http://www.cnblogs.com/whitew ... -
ActivityGroup对子Activity的管理
2013-06-27 17:41 2102转自http://eyeandroid.diandian.co ...
相关推荐
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. features: *) native port of nginx on windows. *) single process mode. *) windows service. *) iocp event method. *) file aio. *) zlib-1.2.3. (statically link...
赠送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-...
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 和 Spark Streaming 的应用" Elastic Streaming 是一个流式数据处理平台,旨在处理大规模的流式数据,并提供低延迟、实时处理和高吞吐量的能力。该平台结合了 Spark Streaming 和 Dynamic ...
本文将深入探讨"Streaming Architecture New Designs Using Apache Kafka and MapR Streams"这一主题,阐述如何利用这两种强大的工具构建高效、可扩展的流处理系统。 Apache Kafka是一种分布式流处理平台,由...
15. Spark Streaming:用于流式数据的处理,使得构建可扩展容错流应用程序变得容易。 DataFrame 16. Spark SQL:需要定义 Schema,定义每一个字段名与数据类型,因而可以用字段名进行统计。 17. orderBy:用于对 ...
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》是一个与游戏相关的压缩文件,包含“~necromancy~エミリの逃亡”的全CG数据。这个压缩包里的内容显然对于游戏的视觉表现至关重要,特别是对于那些重视故事情节和角色视觉效果的游戏而言。...
高清完整3737页版本。书籍地址:https://www.amazon.cn/dp/1491983876/ref=sr_1_1?ie=UTF8&qid=1539237846&sr=8-1&keywords=streaming+systems
本书可帮助您快速掌握大数据,并向您展示IBM为将免费提供的开源大数据技术转变为大数据平台所做的独特工作。
SSE2(Streaming SIMD Extensions 2)是一组 Streaming SIMD Instructions(流式单指令多数据),它是 Intel 公司在 2000 年推出的,主要用于加速科学、工程、图形、游戏、암호等领域的计算。SSE2 指令集提供了许多...
### HTTP Live Streaming (HLS) 架构详解 #### 概览 HTTP Live Streaming(简称HLS)是一种由苹果公司开发的技术,它允许通过普通的HTTP服务器传输音频和视频流,适用于iPhone、iPod touch、iPad以及Apple TV等...
本使用说明书是为Arcam雅俊CDS50 SACD/CD/NETWORK STREAMING PLAYER提供的用户手册,旨在帮助用户正确地使用和维护该设备。以下是从该文件中提取的相关知识点: 一、安全指南 1. reading instructions:用户在使用...
《Spark Streaming Systems》是Tyler Akidau撰写的一本关于Spark流处理技术的著作。这本书深入探讨了Apache Spark的Streaming模块,它是一个强大的实时数据处理框架,适用于构建可扩展且容错性强的流处理系统。在...
本文将深入探讨“Streaming Data Understanding the real-time pipeline v2”这一主题,结合Java技术,来阐述实时数据管道的工作原理和关键概念。 一、实时数据管道概述 实时数据管道(Real-time Data Pipeline)是...
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-...