媒体中的一个音频流
声道
声音在录制或回放时候在不同的空间位置采集或回放的相互独立的音频信号
混音
N个声道的数据混合到一个声道播放
采样率
采样频率,每秒从连续信号中提取并组成离散信号的采样个数
HTTP Live Streaming.
Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件
平时的直播技术中,播放模式中必须等待整个文件下载完才行,在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。
M3U
m3u格式的文件只是存储多媒体播放列表,里面没有任何音视频数据,它提供了一个指向其他位置的音频视频文件的索引,你播放的还是那些被指向的文件,用记事本打开m3u文件可以查看所指向文件的地址及文件的属性,以选用合适播放器播放。
M3U8
M3U8也是一种M3U,只是它的编码格式是UTF-8格式
1080P解码、去隔行、马赛克掩盖、视角比切换、静帧切台、帧率转换、局部缩放.
音频:
音轨切换、声道切换、杜比认证、ByPass、 DownMix、Mono、ID3
杜比音效
杜比定向逻辑环绕声(Dolby Pro Logic)是美国杜 比公司开发的环绕声系统。它是把四声道立体声在录制时通过特定的编码手段合成为两声道,即将原来的左声道(L)、右声道(R)、中置声道(C)、环绕声道 (S)的4个信号,经编码后合成为LT、RT复合双声道信号,重放时通过解码器将已编码的双声道复合信号LT和RT还原为编码的左、右、中、环绕四个互不 干犹的独立信号,经放大后分别输入左音箱、右音箱、中置音箱和环绕音箱。
ffplay xxxx.mkv
ffprobe xxxx.mkv
b.帧速率:帧速率是每秒显示的图像数。标准影片(NTSC) 是 29.97 帧第秒 (fps),电影是每秒
24 帧 fps。欧洲标准是(PAL) 25 帧 fps。
c.关键帧:很多编码软件使用 frame differencing(帧差异)来压缩图像。帧差异其实是判断从
开始帧起哪些信息发生了变化 (称为 key frame 关键帧)。关键帧包含了图像的所有信息。
后来的帧仅包含改变了的信息。对于一般的用途,一个比较好的原则是每 5
秒设一个关键帧。如果你正在建立一个 RTSP 流文件,并且关心传输网络
的可靠度,你可能要 1 到 2 秒增加一个关键帧。要让编码软件来处理关键帧的间隔,选择
Automatic。针对 H.264,我们推荐让编码软件来确定关键帧的间隔,为
此你要选择 Automatic 以获得最佳品质。
e.码率:通常情况下,高码率就有高的品质,但文件也会很大。在大多数情况下,你要根据
你观看的影片设置码率,例如,对于 384K 连接速度,你要限制码率为
350-360k 每秒来留一些带宽给网络传输。如果文件是下载回来后播放,那码率可以很高(高
码率,然而,网速比较慢的用户将要花比较长的时间来等待播放的开
始)
。另外,记住在对话框中设置码率时,你要留一些空间给音频。
针对 H.264, 这里有一些常用的码率方案:
§ 画面尺寸 1920 x 1080 (真正高清), 选择码率为 7,000-8,000 Kbps。
§ 画面尺寸 1280 x 720 (通用高清), 选择码率为 5,000-6,000 Kbps。
§ 画面尺寸 640 x 480 (标清), 选择码率为 1,000-2,000 Kbps。
§ 画面尺寸 320 x 240 (网络传输), 选择码率为 300-500 Kbps。
§ 画面尺寸 176 x 144 (3G), 10-15 fps 的内容选择码率为 50-60 Kbps, 24-30 fps 的内容选
择码率为 150-200 Kbps。
2.1 时间戳
音视频同步-时间戳
媒体内容在播放时,最令人头痛的就是音视频不同步。从技术上来说,解决音视频同步
问题的最佳方案就是时间戳:首先选择一个参考时钟(要求参考时钟上的时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一
般包括开始时间和结束时间);在播放时,读取数据块上的时间戳,同时参考当前参考时钟上的时间来安排播放(如果数据块的开始时间大于当前参考时钟上的时间,则不急于播放该数据块,直到参考时钟达到数据块的开始时间;如果数据块的开始时间小于当前参考时钟上的时间,则“尽快”播放这块数据或者索性将这块数
据“丢弃”,以使播放进度追上参考时钟)。
可见,避免音视频不同步现象有两个关键——一是在生成数据流时要打上正确的时间戳。
如果数据块上打的时间戳本身就有问题,那么播放时再怎么调整也于事无补。假如,视频流内容是从 0s 开始的,假设 10s 时有人开始说话,要求配上音频流,
那么音频流的起始时间应该是 10s,如果时间戳从 0s 或其它时间开始打,则这个混合的音视频流在时间同步上本身就出了问题。
打时间戳时,视频流和音频流都是参考参考时钟的时间,而数据流之间不会发生参考关系;也就是说,视频流和音频流是通过一个中立的第三方(也就是参考时钟)
来实现同步的。第二个关键的地方,就是在播放时基于时间戳对数据流的控制,也就是对数据块早到或晚
到采取不同的处理方法。图 2.8 中,参考时钟时间在 0-10s 内播放视频流内容过程中,即使收到了音频流数据块也不能立即播放它,而必须等到参考时钟的时间达
到 10s 之后才可以,否则就会引起音视频不同步问题。
反馈机制,也就是要将当前数据流速度太快或太慢的状态反馈给“源”,让源去放慢或加快数据流的速度。
同步是一个动态的过程,是一个有人等待、有人追赶的过程。同步只是暂时的,而不同步才是常态。人们总是在同步的水平线上振荡波动,但不会偏离这条基线太远。
播放器是指能播放以数字信号形式存储的音视频文件的软件。
音视频是怎么播出来的
任何影片的播放都分为3个步骤: 拆包-> 解码-> 渲染 ,分别对应播放器的 分离器(demuxer)-> 解码器(decoder)-> 渲染器(render) 。
平时我们所说的格式,如avi 、ts 、mkv 、mp3 、ape 、mov 、wmv 、flv等等,不是视频音频编码格式,而是封装包的格式。封包只是个容器而已,里面装的是压缩的视频、压缩的音频、字幕等。而传说中的 xvid,divx,mpeg4等等才是视频编码格式,mp3,aac,flac,ape等等才是音频编码格式。
举个通俗的例子,想象有红、蓝、绿三种彩带,上面都写着密密麻麻的文字,分别代表视频流、音频流和字幕。下面我们把三种彩带都剪成一段一段的,然后 用胶水按红蓝绿的顺序(其他顺序也行)重新连接起来(是不是很好看?),就OK了。所谓的封装包的格式就是这些红彩带、蓝彩带、绿彩带的段长啊,连接顺序 啊等,有些mkv格式的文件包含多种语言的字幕,就可以理解为红、蓝、绿、紫、橙等多种彩带剪开后重新连接到一起。所谓音视频编码格式,就是彩带上的文字 所用的语言。
- 拆包: 即是播放器调用分离器,将封包中的视频轨道和音频轨道正确的取出来的过程。这样想,所谓拆包就是把连接好的彩带在胶水粘连的位置剪开的过程。剪开之后,不同颜色的彩带被分发到不同的解码器那儿 。
- 解码: 当分离器正确的从封包中取出视频轨道和音频轨道以后,播放器识别文件编码格式,然后调用相应的解码器进行解码。这个过程就像,彩带上的内容可能是用英语、法语、德语写的,你看不懂,怎么办?那就找一个懂这门外语的给你翻译成汉语。这个翻译过程就是解码。
- 渲染: 解码器将音频视频翻译完毕,由渲染器输出的过程。可以理解为画面出来了,显示在屏幕上,声音处理好了,从喇叭出来的过程。这个过程很有意思,我们可以作很多干涉,以取得某些特殊的效果。
什么是多媒体容器
举个例子,咱们平常所见的那种 .mkv .avi视频文件都是多媒体容器文件格式。所谓容器格式就是将不同的多媒体数据流(多条音频流,字幕流和视频流)联合起来加到一个文件(载体)里面.播放 的时候分别对各条多媒体数据流进行解码。多媒体容器 (Multimedia Container)也称为多媒体封装格式,它不同于H.264、DivX、 MP3这类编码格式,它只是为多媒体编码提供了一个“外壳”。
多媒体容器文件格式一般都包括 文件头部分 、 索引部分 和 多媒体数据部分
- 文件头部分: :说明了多媒体数据符合的压缩标准和规范信息。常见的多媒体数据的压缩标准有:MPEG系列(MPEG运动图象专家组开发的一系列视频音频编码)和 H.26X系列(ITU国际电信联盟主导的编码系列)。除了 ITU 与 ISO 开发的行业标准以外,还出现了几种专用于因特网流媒体应用、广受欢迎的专有解决方案,其中包括Real Networks Real Video (RV10)、Microsoft Windows Media Video 9 (WMV9) 系列、ON2 VP6 以及 Nancy等等。多媒体数据符合的规范信息可以包括视频的分辨率、帧率,音频的采样率等。
- 索引部分: 由于多媒体数据通常会被分成若干块,各块数据之间也可能是不连续存储的,因此需要再索引部分建立多媒体数据的存储位置索引(如图2所示),其详细显示了视 频数据存储位置索引,用来记录相应数据块的存储位置的偏移量,由于各数据块的大小可能不同,因此也可能需要在索引部分建立各种多媒体数据块的尺寸大小索 引,用来记录相应数据块的尺寸大小。此外在索引部分还建立了其他索引,比如音视频同步索引等等。PC上播放这些多媒体容器文件时,一般是将索引一次性的全 部放到内存中,然后在播放中根据操作(快进、快退等)来通过数据索引得到所需的数据。
- 多媒体数据部分: 就是经过压缩的多媒体数据,包括视频数据、音频数据、文本数据及其他多媒体数据。
常见的多媒体容器
- MPG/MPEG: MPEG编码采用的容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用于 HDTV、DVB传输。
- AVI: 最常见的音频视频容器。它可以容纳多种类型的视频编码和音频编码,像VP6、DivX、XviD等视频编码和PCM、MP3、AC3等音频编码。
- VOB: DVD采用的容器格式,支持多视频多音轨多字幕章节等。另一种特点更为鲜明的媒体容器,它可容纳MPEG-2视频流、多个AC3、 DTS、THX、PCM音频流、多个不同语言的图形字幕流。
- MP4: MPEG-4编码采用的容器,基于 QuickTime MOV 开发,具有许多先进特性。
- ASF: Windows Media 采用的容器,能够用于流传送,还能包容脚本等。 Microsoft公司推出的Advanced Streaming Format (ASF,高级流格式),也是一个在Internet上实时传播多媒体的技术标准,Microsoft公司的野心很大,希图用ASF取代 QuickTime之类的技术标准。ASF的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、以及扩展性等。ASF应用的主要部件是 NetShow服务器和NetShow播放器。有独立的编码器将媒体信息编译成ASF流,然后发送到NetShow服务器,再由NetShow服务器将 ASF流发送给网络上的所有NetShow播放器,从而实现单路广播或多路广播。这和Real系统的实时转播则是大同小异。
- WMV: 又是一种独立于编码方式的在Internet上实时传播多媒体的技术标准,Microsoft公司希望用其取代QuickTime之类的技术标准以及 WAV、AVI之类的文件扩展名。主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、可伸缩的媒体类型、流的优先级化、多语言支持、环境独立 性、丰富的流间关系以及扩展性等。
- MOV/QT: QuickTime 的容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,3GP都没有这么厉害。QuickTime是Apple计算机公司开发的一种音频、视频文件格式,用于保存音频和视频信息,具有先进的视频和音频 功能,被包括Apple Mac OS、Microsoft Windows 95/98/NT在内的所有主流电脑平台支持。QuickTime文件格式支持25位彩色,支持RLE、JPEG等领先的集成压缩技术,提供150多种视 频效果,并配有提供了200多种MIDI兼容音响和设备的声音装置。新版的QuickTime进一步扩展了原有功能,包含了基于Internet应用的关 键特性,能够通过Internet提供实时的数字化信息流、工作流与文件回放功能,此外,QuickTime还采用了一种称为QuickTime VR (简作QTVR)技术的虚拟现实(Virtual Reality, VR)技术,用户通过鼠标或键盘的交互式控制,可以观察某一地点周围360度的景像,或者从空间任何角度观察某一物体。QuickTime以其领先的多媒 体技术和跨平台特性、较小的存储空间要求、技术细节的独立性以及系统的高度开放性,得到业界的广泛认可,目前已成为数字媒体软件技术领域的事实上的工业标 准。国际标准化组织(ISO)最近选择QuickTime文件格式作为开发MPEG 4规范的统一数字媒体存储格式。
- MKV: MKV它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。Matroska媒体定义了三种类型的文件:MKV是视频文件,它里面可能还包含有音频和字 幕;MKA是单一的音频文件,但可能有多条及多种类型的音轨;MKS是字幕文件。这三种文件以MKV最为常见。最大的特点就是能容纳多种不同类型编码的视 频、音频及字幕流,即使是非常封闭的RealMedia及QuickTime也被它包括进去了,并将它们的音视频进行了重新组织来达到更好的效果。可以说 是对传统媒体格式的一次大颠覆!它现在几乎变成了一个万能的媒体容器。
- WAV: 一种音频容器,大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。
- 3GP: 3GPP视频采用的格式,主要用于流媒体传送。3GPP 的视频采用了 MPEG-4 和 H.263 两种编码,可能还将加入 H.264,音频方面音乐压缩采用 AAC,语音则采用先进的 AMR,另一个 aacPlus 随着 V2 版本的推出,底码率下的效果更加突出,也有望加入标准。
- OGG: Ogg 项目采用的容器,具有流的特性,支持多音轨,章节,字幕等。
- OGM: Ogg 容器的变种,能够支持基于 DirectShow 的视频音频编码,支持章节等特性。
- NSV: Nullsoft Video 的容器,用于流传送。
什么是音视频编解码
简而言之,音视频的编解码过程就是音视频的压缩和解压缩过程。
- 编码: 编码主要有三个方面的含义:模拟信号的数字化过程,数据压缩的过程,数据加密的过程。
- 解码: 编码的反过程,对编码过的数据进行处理,处理成渲染器可以接收的数据。
LettleBox PanScan的处理
其他音视频相关术语
- 视角比: 一个视频帧的宽和高的比例。宽//高。
- 比特率: 就是常说的码率,媒体每秒钟播放所需的数据量。常说的VBR表示媒体的比特率不是恒定的,是动态变动的。
- 采样率: 音频每秒钟采样的次数。
- ES: 原始流,一个单独的音频、视频、数据、字幕流。
- PVR: 录制、时移。
- PIP: 画中画。
- 音轨: 媒体中的一个音频流就叫一个音轨。每条音轨分别定义了该条音轨的属性,如音色、通道数、音量等。
- 声道: 所谓声道是指声音在录制或回放时候在不同的空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时候的音源数量或回放时候相应的扬声器的数量。
什么是PVR
什么是PVR呢?英文全称是Personal video recorder。用一句概括起来讲,PVR 实际上是不需要录像带的VCR(录像机)。 普通的VCR只是将电视机节目录制到VHS 录像带上,而PVR用一块内置硬盘驱动器代替了录像带。在将电视节目录制到PVR的内置硬盘中,您就可以播放录制的节目,可以快进,想看多少便就看多少 遍,等最后看够了,就从硬盘上删除。
我们的PVR支持什么功能
支持 录制和时移 。时移是指在观看数字电视节目时,随时暂停或后退/快进电视节目。
什么是PIP