教程:音视频知识科普/01 音视频基础知识

来自音MAD维基
这是一篇原创教程
library_books
这是本站收录的 音视频科普 原创教程。

页面未完成

页面未完成

页面未完成

写给对Wiki不熟的人:正文中某些段落的末尾有像这样"[1]"的标记,为本人写的注释,可以将鼠标移动到上面查看,或点击以跳转到页面底部的引用栏。建议阅读完本文后检查一下引用栏以免看漏。

介绍

本教程将尽可能使用浅显的词语,一些图像和实际例子介绍音视频基础知识和术语,以便让广大音mader在各种场合碰见音视频相关的问题时能更好的解决。

若有音视频技术神触发现本文中的错误,还请帮忙更正,或向我反馈;即使你在音视频方面是个新人,也可以帮忙修改我小学生般的写作水平,以改进这篇教程。

本教程可以较详细地解答下列常见问题:

未完成,以下内容将会大改,使文章更加通俗

什么是封装格式?什么是音视频编码格式?什么是编码/解码器?什么是编码/解码/转码/压制?

封装格式(Container format)

封装格式又叫容器格式,是指像MP4、MKV、AVI、MOV、MP3、FLAC这样可以将多个(或单个)基本流(Elementary stream)和元数据(Metadata)嵌入到单个文件中的文件格式。

基本流,简称(Stream),俗称轨道(Track),指单个封装进文件里的比特流格式(Bitstream format),常见的流有视频(Video)流、音频(Audio)流、字幕(Subtitles)流;还有其他一些流,例如附件(attachments),音频封装格式里的封面(cover)就属于附件。

元数据,或者说是标签(Tag),就是主动记录的关于多媒体(音视频)文件的信息。例如视频的分辨率、码率、帧率等(这些一般是自动写入的),还有标题、作者、专辑、备注等(这些一般是人为写入的)。 在Windows系统上可以在右键菜单→属性→详细信息页里查看元数据(不完整),或通过MediainfoFFmpeg(FFprobe)等软件查看。

容器格式里所包含的各种数据可以用下图来表示:

容器格式说明图

如果把多媒体文件想象成一个装在包装盒的商品,容器格式就是外面的包装盒,基本流就是里面的商品,而元数据则是盒上的商品信息。

而将这些商品(数据)装入包装盒里的行为就叫做封装(Muxing,来自Multiplex 混流)。

不同的封装格式进行封装的方式不同,能封装的东西也有所不同。

例如MP4,可以封装入音频流、视频流,但不能封装字幕流,而MKV就可以。

而像MP3、FLAC这样的音频封装格式,就只能封装音频流和封面,不能封装视频流。

同样,并不是能封装就一定有,例如某些MP4(或其它)格式的BB素材就没有音频流。

音视频编码格式(Audio/Video coding format)

音视频编码格式是指像AVC(H.264)、HEVC(H.265)、FFV1、MP3、AAC、FLAC这样的由原始数字信号进行编码[2]后得到的数据(即比特流格式)。

一些规定了如何通过各种算法进行编码的技术规范文档被叫做音视频编码规范(Audio/Video coding specification),其中部分规范由标准化组织(例如MPEG,动态图像专家组)编写并批准为技术标准,因此又被称为音视频编码标准(Audio/Video coding standard)。

对于视频来说,压缩是非常有必要的。举个例子,你在YouTube看的一个4分钟、1080P 、30FPS的音mad假如没有经过任何压缩的话,它的大小约是22.4GB(约是Windows系统中的20.9GB,或者叫GiB)。

编码/解码器

编码器(Encoder)是指像x264、x265、LAME(Lame Ain't an MP3 Encoder)、QAAC、FLAC这样可以将原始数字信号进行编码的软件/硬件,也可以认为是对音视频编码规范进行实现的软件/硬件。而编码器输出的就是比特流。

解码器(Decoder)则刚好相反,是可以将比特流通过逆运算得到原始数字信号的软件/硬件

如果说音视频编码规范是一个商品的设计图纸,那么编码器就是制造商品的机器(这台机器还可以调节加工参数以制造不同精度、尺寸、颜色的商品,就像可以在编码器里调节编码参数一样),音视频编码格式(比特流)就是造好的商品;商品造好后,就只剩把商品装入包装盒里了。

编码(Encoding)/解码(Decoding)/转码(Transcoding)/压制

编码,就是通过各种算法将原始数字信号转换成另一种数字信号(又叫代码,code)的过程

解码,就是编码的逆运算,将比特流解压回原始数字信号的过程。

转码则是指将已经编码好了的比特流解码后重新编码为另一种比特流的过程,例如将H.264流转码为H.265流。

压制本来是Rip组[3]的一个术语,指工作流程中最后高压输出的环节。现在泛指将比特流或原始数字信号通过编码器压缩的过程(通常得到的文件比源文件小)。

页面未完成

页面未完成

页面未完成

  1. 测试文本
  2. 编码过程中可能会进行压缩也可能不会,压缩可能是无损的也可能是有损的
  3. 专门从BD、DVD等片源翻录、修复动漫、电影的一批人,精通各种滤镜(Filter)处理(一般使用VapourSynth或AviSynth进行处理;也有一些组会选择"裸压"——不对片源进行任何处理),以及高级编码参数(知道编码器数十个参数的作用,不同的片子一般会对十多个参数进行微调以达到尽可能高的压缩率,同时几乎不影响画质)。和字幕组有所不同,通常字幕组只负责制作字幕,并把字幕压到片里,片源质量追求度一般不高。