流媒体基础知识(一)


本文分图中几个部分进行介绍。
在这里插入图片描述
参考: https://blog.csdn.net/qq_41498261/article/details/84205505

视频文件常见的后缀名

不同厂家或标准的视频文件通常有不同的文件后缀名,但后缀名仅仅是名称,修改后缀名之后,视频文件的封装格式并不会改变。

类别常用后缀名
微软视频wmv、asf、asx
Real Playerrm、 rmvb
MPEG视频mp4、ts
手机视频3gp
Apple视频mov、m4v
其他常见视频avi、dat、mkv、flv、vob

视频封装格式

封装格式的作用:视频码率和音频码流按照一定的格式存储在同一个文件中。

名称推出机构目前使用领域
AVIMicrosoft Inc.BT下载和部分录像设备
MP4MPEG互联网视频网站
TSMPEGIPTV,数字电视
FLVAdobe Inc.互联网视频网站
MKVCoreCodec Inc.互联网视频网站
RMVBReal NetWorks Inc.BT下载影视

AVI

全称Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。图像质量好,可以跨多个平台使用,其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,播放时需要下载相应的解码器。

MPEG

全称为Moving Picture Expert Group,即运动图像专家组格式,它采用了有损压缩方法减少运动图像中的冗余信息,说的更加明白一点就是MPEG的压缩方法依据是相邻两幅画面绝大多数是相同的,把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的(其最大压缩比可达到200:1)。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2和MPEG-4,另外,MPEG-7与MPEG-21仍处在研发阶段。

MPEG1

制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。

MPEG2

制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到8GB的大小。这种视频格式的文件扩展名包括.mpg、.ts、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。

MPEG4

制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最有吸引力的地方在于它能够保存接近于DVD画质的小体积视频文件。另外,这种文件格式还包含了以前MPEG压缩标准所不具备的比特率的可伸缩性、动画精灵、交互性甚至版权保护等一些特殊功能。这种视频格式的文件扩展名包括.asf、.mov和DivX AVI等。

MPEG-7

MPEG-1、MPEG-2、MPEG-4标准解决了在多媒体环境下存储、传输和处理声音图像问题之后,为了解决多媒体的信息检索问题,专家们又发展了MPEG-7。

DivX

这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。

RealVideo

RealVideo文件是RealNetworks公司开发的一种新型流式视频文件格式,主要用来在低速率的广域网上实时传输活动视频影像,根据网络数据传输速率的不同而采用不同的压缩比率,实现影像数据的实时传送和实时播放。RealVideo与RealServer服务器配合,实现在数据传输过程中边下载边播放视频影像。Internet有许多网站利用RealVideo技术进行重大事件的实况转播。

视频编码格式

视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。

视频流传输中最为重要的编解码标准有:

  • 国际电联的H.261、H.263、H.264
  • 运动静止图像专家组的M-JPEG
  • 国际标准化组织运动图像专家组的MPEG
  • 其他标准,如互联网上被广泛应用的Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。
名称推出机构推出时间目前使用领域
HEVC(H.265)MPEG/ITU-T2013研发中
H.264MPEG/ITU-T2003各个领域
MPEG4MPEG2001不温不火
MPEG2MPEG1994数字电视
VP9Google2013研发中
VP8Google2008不普及
VC-1Microsoft Inc.2006微软平台

音频编码格式

作用:将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。
常见的音频编码格式如下:

名称推出机构推出时间目前使用领域
AACMPEG1997各个领域(新)
MP3MPEG1993各个领域(旧)
AC-3Dolby Inc.1992电影
WMAMicrosoft Inc.1999微软平台

视频像素数据

保存了屏幕上每个像素点的像素值。

RGB

Red、Green、Blue三种颜色可以混合成世界上的所有颜色。
如图彩色像素的每个点都由R、G、B三个分量组成。
在这里插入图片描述

YUV

相关实验表明,人眼对亮度敏感而对色度不敏感。因而可以将亮度信息和色度信息分离,并对色度信息采取更“狠”一点的压缩方案,从而提高压缩效率。

YUV格式中,Y只包含亮度信息,而UV只包含色度信息。
以YUV420P为例,图像像素数据的存储方式如图所示。
在这里插入图片描述
从图中可以看出,YUV420首先存储了整张图像的Y信息,
然后存储了整张图像的U信息,
最后存储了整张图像的V信息。

音频采样数据

保存了音频中每个采样点的值。PCM(Pulse Code Modulation)也被称为脉冲编码调制。PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准的数字音频数据。

裸流音频采样数据体积很大,根据如下公式:

音 频 大 小 = 时 间 ( s ) × 采 样 频 率 ( H z ) × 量 化 位 数 ( b i t ) × 声 道 数 ( b i t / s ) 音频大小=时间(s)×采样频率(Hz)×量化位数(bit)×声道数(bit/s) =(s)×(Hz)×(bit)×(bit/s)

假定采样率为44100H在,采样精度为16bit(即2Byte)情况下,一首4分钟的PCM格式的歌曲体积为

4 × 60 × 44100 × 2 × 2 = 42.3 M B y t e 4×60×44100×2×2=42.3MByte 4×60×44100×2×2=42.3MByte

而且,pcm中只存储了音频采样数据裸流,采样频率、位深度、通道数等信息都没有进行存储,需要将音频采样数据进行编码才能被播放器播放。


关注"麻辣软硬件",获取更多有料的软硬件知识
在这里插入图片描述

内容由流媒体协议等基本知识,视频媒体基本知识,流媒体服务器搭建实战,流媒体工具使用实战等内容组成。由本人“天地会珠海分舵”(http://blog.csdn.net/zhubaitian)耗时一个月整理而成,现分享给大家。 章节内容分布如下: 第1章Streaming 协议和服务器概览学习摘录 7 1.1 Protocol support 8 1.2 Media Container format support 12 第2章Streaming 协议学习摘录 15 2.1 MMS协议简介 15 2.2 RTP相关协议简介 15 2.2.1 RTP与RTCP协议简介 15 2.2.2 RTSP协议简介 16 2.2.3 流传输过程 17 2.3 RTMP vs RTMFP 18 2.3.1 RTMP协议简介 18 2.3.3 RTMFP 简介 19 2.3.4 RTMP VS RTMFP 20 2.4 MPEG-TS 20 2.4.1 MPEG2-TS与MPEG2-PS的区别 20 2.4.2 PES/ES/TS简介 20 2.5 Smooth Streaming 21 2.5 HLS简介 24 2.6 MPEG-DASH 26 2.6.1 简介 26 2.6.2 Dash播放器列表 28 2.6.3 MPD格式 30 2.6.5 MPD在线检查器 31 2.6.5 MPD 格式理解个人小结 31 2.6.6 PMD格式的多样性 32 2.6.7 MPD 支持的Profiles 44 2.6.8 DASH传输协议支持 44 2.7 HLS VS MPEG-DASH 45 2.8 Real Data Transport Protocol 45 2.9 webM 45 第3章 视频容器格式学习摘录 47 3.1 视频容器VS 视频编码 47 3.2 3GP容器 48 3.2 AVI容器(.avi) 49 3.3 WMV vs ASF 容器(.wmv/.asf) 49 3.3.1 ASF高级串流格式简介以及和WMA/WMV的区别 49 3.3.2 ASF和WMA/WMV的区别官方解析 50 3.4 QuickTime容器(.mov) 50 3.5 Ogg vs Ogm容器(.ogg) 51 3.5.1 Ogg容器格式 51 3.5.2 Ogm 51 3.5.3 Ogg vs Ogm 52 3.6 Matroska容器(.mkv|.mka|.mks) 52 3.7 MP4容器 53 3.7.1 简介 53 3.7.2 MP4格式详解 53 3.8 MPEGE TS容器 61 3.9 FLV容器 62 3.10 ABS – Adaptive Bitrate Streaming 自适应串流容器 62 3.11 码率 63 3.12 流媒体的3种格式 63 3.12.1 压缩媒体文件格式 63 3.12.2 流文件格式 64 3.12.3 流媒体发布格式 64 第4章 视频编码格式学习摘录 66 4.1视频编码格式简介 66 4.2主流视频编码格式比较 67 4.2.1 MPEG编码格式 67 4.2.2 DivX/XviD编码格式 68 4.2.3 H.264/X264编码格式 69 4.2.4 WMA-HD/VC-1编码格式 71 4.2.5 各主流编码格式比较 72 4.3 视频解码 73 第5章ffmpeg学习摘录 74 5.1 简介 74 5.2 功能 74 5.3 支持的格式编码 75 5.4 支持的流媒体协议 76 5.5 ffmpeg视频解码架构示例简略 76 5.5.1 解复用(Demux) 77 5.5.2 解码 (Decode) 78 5.5.3 Ffmpeg中解码流程对应的API函数 78 第6章GStreamer学习摘录 80 6.1 GStreamer简介 80 6.2 GStreamer编写MP3播放器实例 80 6.2.1 初始化GStreamer 80 6.2.2 创建GStreamer管道元件 81 6.2.3 创建元件三元组之GStreamer数据源 81 6.2.4 创建元件三元组之解码器 (即GStreamer过滤器) 插件 81 6.2.5 创建元件三元组之GStreamer接收器 81 6.2.6 链接GStreamer元件三元组到管道 – 播放 82 6.2.7 启动GStreamer管道数据处理流程 82 6.2.8 MP3命令行播放器源代码完整实例 82 第7章 ffmpeg VS GStreamer比较学习摘录 85 7.1 Pipeline设计模式简介 85 7.2 ffmpeg vs GStreamer 86 7.2.1 网上解析翻译 86 7.2.1 FFmpeg和GStreamer异同小结 87 第8章 流媒体服务器搭建摘录 88 8.1 VLC 88 8.1.1 VLC编码和容器兼容性 88 8.1.1 VLC 配置VOD点播 88 8.1.2 VLC 配置组播服务器 90 8.2 Wowza Streaming Engine 91 8.2.1 简介及安装 91 8.2.2 MPEG-DASH 支持 92 8.2.3 如何使用VLC作为直播源 95 8.2.4 点播VOD配置 112 8.3 Nex Gen Media Server (NGMS) 114 8.3.1 Introduction 114 8.3.2 Feature List 115 8.3.3 Practice in Action 116 8.4 IIS Smooth Streaming(IIS Media Service) 117 8.4.1 Getting Started with IIS Smooth Streaming 117 8.4.2 Use VLC to play the Smooth Stream 128 8.4.3 创建Smooth Stream 文件 129 8.4.4 提供DASH服务时IIS的关键设置 129 8.4.5 Dash on IIS步骤 130 第9章 相关工具学习摘录 137 9.1 Bento4 MP4工具包 137 9.1.1 Introduction 137 9.1.2 所包含的工具简介 138 9.1.3 MPEG DASH Adaptive Streaming 139 9.1.4 Serving DASH Streams 147 9.2 MP4Box 149 9.2.1 简介 149 9.2.2 对DASH的支持命令帮助 150 9.2.3 MP4Box: fragmentation, segmentation, splitting and interleaving 153 9.2.4 把MP4转换成TS 155 9.2.5生成不同profile的MPD 155 9.2.6指定每个Representation的bandwidth 156 9.2.7生成多个period的MPD 156 9.2.8生成多个Representation的MPD 156 9.2.9 生成多个Segment的MPD 156 9.2.10 生成(Subsegment) SegmentBase拥有 indexRangeExact 为true的MPD 157 9.2.11 生成多个AdaptionSet的MPD 158 9.2.12 模拟live直播 158 第10章 流媒体服务器搭建指导 159 10.1 所需搭建服务器Matrix 159 第11章 附录 163 11.1 Wowza支持格式 163 11.2 ISO Base Media File Format (IBMFF) 163 11.3 DASH所支持Profile分类 164
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值