在网络上直接看电影已经不是什么新鲜的事情,在iOS等移动设备上也有很多在线视频应用,如国内的PPS和PPLive应用,还有一些新闻视频都可以在线观看,如USA TODY。所以这些在线视频都采用流媒体技术。

网络多媒体文件播放受到网络带宽,文件格式,文件大小等因素的影响,情况变得非常的复杂。为了提高速度,节省带宽,现在的网络多媒体文件的播放都 采用流媒体技术实现播放。广义上讲流媒体技术从传输形式上可以分为:渐进式下载和实时流媒体。

渐进式下载是介于下载本地播放与实进流媒体之间的一种播放方式,下载本地播放必须将文件下载完成后才能播放,而渐进式下载不必等到全部下载完成后再播放,它可以一边下载一边播放,在完成播放内容之后,整个文件会保存在计算机上。

实时流媒体是一边接收数据,一边播放,本地不保留文件副本,数据总是实时传送,可以实现实况转播,支持随机访问,用户可变进或后退观看前面中后面的内容。

实时流媒体网络传输协议有:RTSP,MMS和HLS。RTSP和MMS这些协议在有防火墙时,有时会出现问题,导致用户有些内容无法看到,而且RTSPT和MMS需要购买和配置支持他们的专门服务器。

HLS是苹果公司提出的基于HTTP的流媒体网络传输协议。HLS只请求基于的HTTP报文,与RTSP和MMS不同,HLS可以穿过作何允许HTTP数据通过的防火墙。HLS对于服务器没有特殊要求,只要能够提共HTTP服务就可以了,如Apache,Tomcat和IIS都 可以。

渐进式下载开发,在服务器端和客户端都不需要做太多的工作,服务器端只需要将媒体文件放在服务器目录下就可以了,而客户端,也就是我们在iOS平台上编写的程序。

在众多的实时流媒体技术中,苹果公司的HLS技术是最为先进的,苹果提供给我们的不仅仅是一个HLS技术规范,更重要的是它能够给我们一套流媒体开发和使用的整体解决方案。

HLS流媒体服务器的选择没有什么限制,只需要能够提供HTTP服务的服务器就可以了,我们常用的免费的有Apache和Tomcat等,如果在Windows平台还可以使用IIS服务器。

在iOS设备中的webView内核与Safari一样都采用了WebKit浏览器引擎,他们对于HTML5支持得很好。

参考资料:《iOS图形图像,动画和多媒体编程技术最佳实践》

 

【读书笔记】iOS-iOS流媒体的更多相关文章

  1. 【读书笔记】iOS网络-使用Bonjour实现自组织网络

    Bonjour就是这样一种技术:设备可以通过它轻松探测并连接到相同网络中的其他设备,整个过程只需要很少的用户参与或是根本就不需要用户参与.该框架提供了众多适合于移动的使用场景,如基于网络的游戏,设备间 ...

  2. 【读书笔记】iOS网络-使用Game Kit实现设备间通信

    Apple的Game Kit框架可以实现没有网络状况下的设备与设备之间的通信,这包括没有蜂窝服务,无法访问Wi-Fi基础设施以及无法访问局域网或Internet等情况.比如在丛林深处,高速公路上或是建 ...

  3. 【读书笔记】iOS网络-应用间通信

    一,URL方案 URL方案有3个主要用途:根据设备上其他应用的存在与否调整逻辑,切换到其他应用以及响应打开你的应用的其他应用.你还可以通过URL方案从某个站点或是在基于Web的认证流程结束是打开应用. ...

  4. 【读书笔记】iOS网络-使用推送通知

    一,本地通知 本地通知有64位的最大限制.虽然,你依然可以调度通知,不过到到达的通知数被限定为接近64个,并且按照fireDate的顺序排序,系统会忽略掉其余的通知.这意味着如果现在有64个调用的本地 ...

  5. 【读书笔记】iOS网络-测试与操纵网络流量

    一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连 ...

  6. 【读书笔记】iOS网络-底层网络

    在iOS上,有一个库叫做Core Foundation networking或CFNetwork,它是对原始Socket的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了.最后,添加了另一层 ...

  7. 【读书笔记】iOS网络-优化请求性能

    一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不 ...

  8. 【读书笔记】iOS网络-保护网络传输

    一,验证服务器通信. 二,HTTP认证. 手机银行应用有两种认证模式:标准验证与快速验证.标准验证只是提示用户输入用户名与密码,而快速验证则让用户注册设备,然后使用PIN进行验证,每次验证时无需用户名 ...

  9. 【读书笔记】iOS网络-错误处理的经验法则

    一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了, ...

  10. 【读书笔记】iOS网络-三种错误

    一,操作系统错误. iOS人机界面指南中,Apple建议不要过度使用AlertViews,因为这会破坏设备的使用感受. 操作系统错误: 1,没有网络. 2,无法路由到目标主机. 3,没用应和监听目标端 ...

随机推荐

  1. Java 实现 Http 请求工具类

    package com.demo.util; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...

  2. 安装过redis集群,重新做集群办法:

    二:找到问题:这个地方IP的问题,以上是正确的版本,以前有问题的版本的Ip是127.0.0.1, 原因是这个地方以前我没注释redis.conf文件中的bind 127.0.0.1 然后做集群时使用的 ...

  3. bootstrap教程,SQL

    版权声明:未经博主允许不得转载 SQL DDL数据定义语言 TPL事务处理语言 DCL数据控制语言 DML数据操作语言 DML SELECT INSERT UPDATE DELETE Join从句 J ...

  4. Servlet案例2:文件下载

    首先,解决两个小问题 1.输入中文乱码问题 一个小Demo即可解决: package demo; import java.io.IOException; import java.io.PrintWri ...

  5. spring boot 下 thymeleaf 配置

    1. thymeleaf 配置参数 [参考文章]:spring-boot-starter-thymeleaf 避坑指南 #<!-- 关闭thymeleaf缓存 开发时使用 否则没有实时画面--& ...

  6. ASP.NET Web API实现微信公众平台开发(二)access_token与定时任务

    承接上一篇,今天主要讲述如何实现定时获取微信access_token功能的实现. access_token 首先我们根据微信的开发指南,任何对微信的操作都要使用合法获取的access_token,微信 ...

  7. LeetCode--No.015 3Sum

    15. 3Sum Total Accepted: 131800 Total Submissions: 675028 Difficulty: Medium Given an array S of n i ...

  8. 内存管理buddy[原理]

    TODO------------------------------------------------------------------------------------------------ ...

  9. Spark Graphx

    Graphx    概述        Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求.       ...

  10. spring boot -thymeleaf-逻辑控制

    th:if th:switch