Android4 学习笔记 4-视频技术概述

因现在手头做的事和视频相关,先熟悉一下视频技术基本概念 一、流媒体协议概述 整理自 http://wenku.baidu.com/view/1ee2485c804d2b160b4ec0cb.html

流媒体传输分两类

  • 实时流媒体视频为现场直播或使用专用流媒体服务器或使用RTSP等实时协议,它可以传输实况直播,也可以传输完整的音视频文件(专用协议流式)。
  •  顺序流媒体:使用普通HTTP服务器,将音视频数据从头到尾方式发送,仅能传输完整的音视频文件。

 

实时流

顺序流

数据源

实时从录制设备上采集(或使用专用协议传输的文件)

可播放的音频文件

服务器类型

专用的流媒体服务器:如QuickTime Streaming ServerRealServerWindwos Media ServerFlash Media Server

普通HTTP服务器

传输协议

专用协议 HLS RTMP

HTTP协议

跳播

可随机访问任意片段

给定时间,用户只能看已下载部分,而不能跳到还未下载部分

 

主流流媒体协议

 

RTMP

HLS

RTSP

全称

Real Time

Message Protocol

 

http live stream

Real Time Streaming    Protocol  

上层协议

TCP/HTTP

HTTP

RTP,RTCP

软件模型

C/S

B/S

C/S

客户端

支持Flash类产品的浏览器

支持HTML5浏览器

 

支持HTML5的浏览器

播放器

 

二、HLS协议简介 整理自  http://wenku.baidu.com/link?url=bgQtEnrPSvtWGIMAg120cPkDqExA3pP-mgI-6PcII9eUL7b6Gih1Rw7I-R9CbYtn2g5EYet57ed2oB4EEQw6CFmURorR8QfVS-fS-95p83S HLS(HTTP Live Streaming) 是苹果公司针对 移动设备而开发的基于 HTTP 协议的流媒体解决方案。在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流,但在使用的过程中是使用的标准的 HTTP 协议,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和直播。在 App Store 中的视频相关的应用,基本都是应用的此种技术。该技术基本原理是将视频文件或视频流切分成小片 (ts) 并建立索引文件 (m3u8) 。支持的视频流编码为 H.264 ,音频流编码为 AAC.

三、直播步骤
视频采集 ->编码器 -> 流分割 -> 普通 web 服务(索引文件和视频文件) -> 客户端

视频采集,编码器首先将摄像机实时采集的音视频数据压缩编码为符合特定标准的音视频基本流(一定要使用H.264视频和AAC音频,因为发明这个的是苹果公司,只支持这个),然后给这些封装成成为符合MPEG-2(MPEG 2 TS、MPEG2 PS之所以使用这个,主要是因为声音和视频会交织在一起,也会有关键帧来让视频可以直接播放).

流分割部分在这个中,比起 RTSP 之类和普通点播的最大不同,就是他会给 MPEG-2 分割成很多个 ts 的文件。分割过程大多是按时间来切,根据国外的资料,建议切 10s 一个的文件,如果码流高可以 5 秒一次。在分割还有一点不同,就是这时流分割器会生成一个含有指向这些小TS文件指针的索引文件,所以这个文件也必须在 web 服务器上。每多 10s 时,就会多一个 ts 文件,所以索引也会根着修改成最新的几段视频。最后,这些切分了的小的一系列的 ts 文件,放到普通的 web 服务器中就行了。这时在 CDN 中也是一样,因为请求这些文件会使用标准的 HTTP 协议。索引文件后缀是.m3u8 ,索引文件采用扩展的M3U播放列表格式,其实就一文本。

 

四、M3u8文件解析    

猜你喜欢

转载自qingcai18036.iteye.com/blog/2045881