1.学习MP4的时候,作者利用Nginx模块举例说明File Type Box(ftyp),就顺便看了下什么是Nginx
Nginx:Nginx同Apache一样都是一种WEB服务器,Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。
正向代理的用途:(客户端与代理服务器在一个局域网中,客户端隐秘)
(1)访问原来无法访问的资源,如Google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理的作用:(d爱丽服务器与原始服务器在一个局域网中)
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载
Nginx扮演了反向代理角色
某宝网站中大部分功能也是直接使用Nginx进行反向代理实现的,并且通过封装Nginx和其他的组件之后起了个高大上的名字:Tengine,有兴趣的童鞋可以访问Tengine的官网查看具体的信息:http://tengine.taobao.org/
2.MP4的学习
MP4 中最基本的单元就是Box
Box 是由 Header 和 Data 组成的
FullBox 是 Box 的扩展,Box 结构的基础上在 Header 中增加 8bits version 和 24bits flags
1.File Type Box(ftyp)通常放在MP4文件的开头,告诉解码器基本的解码版本和兼容格式
2.Movie Box (moov)作为容器盒子,存放相关的trak及meta信息.
2.1Movie Header Box (mvhd)mvhd 是 moov 下的第一个 box,用来描述 media 的相关信息;
2.2Movie Extends Box (mvex)mvex 是 fMP4 的标准盒子,它的作用是告诉解码器这是一个 fMP4 的文件,具体的 samples 信息内容不再放到 trak 里面,而是在每一个 moof 中;
2.2.1Track Extends Box (trex)trex 是 mvex 的子一级 box 用来给 fMP4 的 sample 设置默认值
2.3Track Box (trak)trak box 就是主要存放相关 media stream 的内容
2.3.1Track Header Box (tkhd)tkhd 是 trak box 的子一级 box 的内容。主要是用来描述该特定 trak 的相关内容信息
2.3.2Media Box (media)mdia 主要用来包裹相关的 media 信息。
2.3.3Media Information Box (minf)minf 是子属内容中,重要的容器 box,用来存放当前 track 的基本描述信息。
3.Moof Box
4.Sidxs Box