凌霄的博客
视频开发基础篇
视频开发基础篇

在进行视频开发之前,如果你对颜色编码格式不是很熟悉,建议先阅读一下这篇文章:yuv和rgb的相关知识。有一个大概了解之后,在看下面的视频相关的基础知识。

封装格式的辨认很简单,大多数情况下,拓展名就是封装格式的名字。比如一个文件“金刚狼.avi”,那它就是属于avi的封装格式,“钢之炼金术师.Mkv”,那它就属于mkv封装格式, “喜羊羊与灰太狼.rmvb”就是rmvb封装格式。简而言之,视频文件后缀名就是封装格式的名字。不过wmv和rmvb就比较特殊,后面编码器部分再说。封装格式就是酒瓶。酒瓶就不影响酒的口感,同样,封装格式一样不影响视频画质。它只负责把内部的视频轨和音频轨集成在一起,只起到一个文件夹(或者压缩包)的作用,并没有对视频轨和音频轨造成影响。

几种主流媒体格式

  1. AVI(Audio Video Interactive) 比较早的AVI是Microsoft开发的。其含义是Audio Video Interactive,就是把视频和音频编码混合在一起存储。
    AVI也是最长寿的格式,已存在10余年了,虽然发布过改版(V2.0于1996年发布),但已显老态。AVI格式上限制比较多,只能有一个视频轨道和一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,如文字等。AVI格式不提供任何控制功能。扩展名:avi
    总结:只能封装一条视频和一条音频,不能封装字幕,没有流媒体功能(就是不能使用它进行在线播放的意思)
  2. WMV(Windows Media Video)是微软公司开发的一组数字视频编解码格式的通称,ASF(Advanced Systems Format)是其封装格式。 ASF封装的WMV档具有“数字版权保护”功能。扩展名:wmv/asf、wmvhd 其音频编码采用WMA,视频编码采用WMV,需要版权支持且机顶盒支持的不多。
  3. MPEG(Moving Picture Experts Group)是一个国际标准化组织(ISO)认可的媒体封装形式,受到大部份机器的支持。其存储方式多样,可以适应不同的应用环境。MPEG-4档的档容器格式在Part 1(mux)、14(asp)、15(avc)等中规定。MPEG的控制功能丰富,可以有多个视频(即角度)、音轨、字幕(位图字幕)等等。
    1. MPEG1是最早出现的,VCD这个具体的格式最早是从日本来的并遵从MPEG1规格
    2. MPEG2:其代表是DVD。一般为480P(640*480)。DVD当时都符合这个标准。Xvid 和H.264同属于MPEG4,MPEG-2还可能称作MPEG2-HD,MPEG2-TS,其实在ITU-T的命名规范中被称之为H.262
    3. H.264有两个名称,一个是沿用ITU-T组织的H.26x名称,叫“H.264”,另一个则是“MPEG-4AVC(MPEG4第10部分)”,AVC意为高级视频编码。
    4. H264的数据压缩率比当前DVD系统中使用的MPEG-2高2-3倍,比MPEG-4高1.5-2倍。x264编码,是H.264编码的一个开源分支,它符合H.264标准,其功能在于编码(encoding),而不作为解码器(decoder)使用,264编码最大的特点在于注重实用,它在不明显降低编码性能的前提下,努力降低编码的计算复杂度,X264对于H.264编码中的一些复杂编码特性做了折衷处理,其压缩视频体积小于Xvid(MPEG4)编码视频
    5. mp4格式是H.264编码指定使用的标准封装格式,3GP是MP4格式的一种简化版本,减少了储存空间和较低的频宽需求,让手机上有限的储存空间可以使用可以封装多种多条编码的视频和音频,也可以封装字幕,但没有流媒体功能,可以做成分片式进行流式播放。
  4. Matroska 是一种新的多媒体封装格式,这个封装格式可把多种不同编码的视频及16条或以上不同格式的音频和语言不同的字幕封装到一个Matroska Media档内。它也是其中一种开放源代码的多媒体封装格式。Matroska同时还可以提供非常好的交互功能,而且比MPEG的方便、强大。扩展名:mkv
  5. Real Video或者称Real Media(RM)档是由RealNetworks开发的一种档容器。它通常只能容纳Real Video和Real Audio编码的媒体。该档带有一定的交互功能,允许编写脚本以控制播放。RM,尤其是可变比特率的RMVB格式,体积很小,非常受到网络下载者的欢迎。扩展名:rm/rmvb
  6. QuickTime File Format 是由苹果公司开发的容器。1998年2月11日,国际标准组织(ISO)认可QuickTime文件格式作为MPEG-4标准的基础。QT可存储的内容相当丰富,除了视频、音频以外还可支持图片、文字(文本字幕)等。扩展名:mov、qt
  7. Ogg Media 是一个完全开放性的多媒体系统计划,OGM(Ogg Media File)是其容器格式。OGM可以支持多视频、音频、字幕(文本字幕)等多种轨道。扩展名:ogg
  8. MOD 格式是JVC生产的硬盘摄录机所采用的存储格式名称
  9. MKV 和mp4差不多,但有流媒体功能,可以使用它进行在线播放,还可以使用它封装rv(rm/rmvb)编码

另外:
视频封装格式是MP4,MKV,或者其它,它们都是:视频流,音频流,字幕完全用自己独立的轨道,并且可以是外挂字幕。
字幕后缀名为str,ass,ssa等。这些字幕有自己的特效,什么时候以怎样的形式出现哪些文字,都是由写好的代码控制的。

编码格式

就是指通过特定的压缩技术,将某个视频格式的文件转换成另 一种视频格式文件的方式。目前视频流传输中最为重要的编解码标准有国际电联的H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家 组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的 QuickTime等。

在这里我们主要讲一下主流的H.264编码。H.264 使图像压缩技术上升到了一个更高的阶段,能够在较低带宽上提供高质量的图像传输,该优点非常适合国内运营商用户量大、接入网/骨干网带宽相对有限的状况。 在同等的画质下,H.264 比上一代编码标准MPEG2 平均节约64%的传输码流,而比MPEG4 ASP 要平均节约39%的传输码流。如果要具体讲解H.264相关的知识,又是一大篇,而且博主知识有限,不能很好的说清楚,所以这里就只能贴上一篇参考文章了:如何实现1080P延迟低于500ms的实时超清直播传输技术

视频码率

视频码率是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高,这样表现出来的的效果就是:视频画面更清晰画质更高。这里要和视频帧率区分开。

视频帧率

通常说一个视频的25帧,指的就是这个视频帧率,即1秒中会显示25帧;视频帧率影响的是画面流畅感,也就是说视频帧率超高,表现出来的效果就是:画面越显得流畅。你也可以这样理解,假设1秒只显1帧,那么一段视频看起来,就是有很明显的卡顿感,不流畅不连惯。当然视频帧率越高,意味着画面越多,也就相应的,这个视频文件的大小也会随之增加,占用存储空间也就增大了。

后话

封装格式和编码的关系,就是和酒与酒瓶的关系差不多,而播放器就是开酒器。为了可以喝更好的酒,最好先了解酒是什么酒,酒瓶是什么酒瓶,怎么使用开酒器开酒瓶。

码率或者可以比喻做酒的原料。对于同一个酒瓶和做同一种酒的情况下,如果原料太少,又要要求用酒把酒瓶灌满,此时只好兑水了,酒的品质就会变差了。然而,如果原料太多,又会造成原料浪费。所以要做好酒,我们就需要充足的原料。同样道理,压制一个视频,充足的码率是非常需要的。如果码率过高,画质提升不上去的同时还使视频体积过大。如果码率不足,视频容易出各种各样的问题,导致压崩。当然,码率不是画质的唯一指标,压制的时候的各种参数设置,各种滤镜也是非常重要的。如果码率给得足够高,理论上各编码的画质是一样的,不过体积完全不一样。

本篇文章只做一个大概介绍,因为每一个点往深入讲都能讲很长时间,视频开发中的每一个门类,都可以深挖,衍生出一个又一个充满技术挑战的话题。音视频的路很长,更多的还是要靠自己去学习和实践,希望我的文章能对你产生一点点意义。

参考链接:封装格式和编码格式

发表评论

textsms
account_circle
email

视频开发基础篇
在进行视频开发之前,如果你对颜色编码格式不是很熟悉,建议先阅读一下这篇文章:yuv和rgb的相关知识。有一个大概了解之后,在看下面的视频相关的基础知识。 封装格式的辨认很简单,大多…
扫描二维码继续阅读
2018-08-08