【iOS学习】二、实现直播技术学习

        整个流媒体播放系统主要分为视频服务器端和iOS视频播放器客户端。服务器端主要负责为播放器端提供直播,点播等视频流;播放器端负责接收服务器发送的数据流,进行解码和播放。 

一、流媒体技术的含义

       流媒体并不是一种新型的媒体,而是一种新的技术。广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从 Internet 上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。

二、HLS协议

         HLS是HTTP Live Streaming的缩写。它是苹果公司实现的基于HTTP的流媒体传输协议,可以实现流媒体的直播和点播,也就是我们常说的Live和VOD。最先开始主要应用于iOS系统,为iOS设备提供视频直播和点播方案,现在在大多数的移动设备也实现了这个功能。HLS的点播,是将常见的分段HTTP点播,不同的是,他的分段非常小。实现的重点在于对媒体文件的分割,目前有很多开源工具。 

        相对于其他的流媒体直播协议,HLS最大的不同在于,客户端获取到的,并不是一个完整的数据流,而是一段一段的切片TS(MPEG-TS格式)。HLS协议在服务端将直播数据存储为连续的,一定时长的媒体文件,codec为MPEG-TS,客户端再按照playlist去在下载并播放这些文件,从而达到直播或者点播功能。HLS由于采取HTTP协议传输文件,所以不用考虑防火墙或者代理的问题,因为一般的主机80端口应该是开放的。还有一个优点在于,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。 

       HLS协议的实现过程:

       首先对视频数据进行录入、编码,然后服务器软件的流分段程序将媒体视频流分解成一系列简短的.ts媒体文件,这些.ts文件被放置在web服务器上。这个流分段程序同时还创建一个索引文件,该索引文件包含元数据以及一个.m3u8媒体文件的列表,且索引文件的URL发布到服务器上,客户端软件即可读取索引,请求媒体文件,并将其在客户端播放器中显示出来。

        根据以上的了解,想要实现HLS直播,需要研究并实现以下技术关键点:

  1. 采集视频源和音频源的数据
  2. 对原始数据进行H.264编码和AAC编码
  3. 视频和音频数据封装为MPEG-TS包
  4. HLS分段生成策略及m3u8索引文件
  5. HTTP传输协议

三、RTSP协议

        与负责传送数据的 RTP/RTCP不同,RTSP 主要负责在服务器和客户端之间建立连接,并响应用户的操作请求,如暂停,快进、快退、音量加减等。与HLS相比,RTSP传输的延迟更低。最常见的模式如下图所示。

                                                                    

 

四、播放器端解码

FFmpeg简介

        FFmpeg 是一个跨平台的开源视频框架,能实现如视频编码、解码、转码、串流、滤波、播放等丰富的功能。其支持的视频格式以及播放协议非常丰富,几乎包含了所有音视频编解码、封装格式以及播放协议。而实时视频直播一般使用的协议,如 RSTP, FFmpeg 中得到了很好的支持。 在手机直播软件中,可以调用FFmpeg编写一个播放器。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值