Sony/Philips Digital Interface Format
是SONY、PHILIPS数字音频接口的简称。就传输方式而言,SPDIF分为输出(SPDIF OUT)和输入(SPDIF IN)两种。目前大多数的
声卡芯片都可以支持SPDIF OUT,但咱们须要注意,并非每一种产品都会提供数码接口。而支持SPDIF IN的
声卡芯片则相对少一些,如:EMU10K一、YMF-744和FM801-AU、CMI8738等。SPDIF IN在
声卡上的典型应用就是CD SPDIF,但也并非每一种支持SPDIF IN的声卡都提供这个接口。
就传输载体而言,SPDIF又分为同轴和光纤两种,其实他们可传输的信号是相同的,只不过是载体不一样,接口和连线外观也有差别。但光信号传输是从此流行的 趋势,其主要优点在于无需考虑接口电平及阻抗问题,接口灵活且抗干扰能力更强。经过SPDIF接口传输数码声音信号已经成为了新一代PCI声卡广泛拥有的 特色。
S/PDIF每每被用来传输压缩过的音频讯号,它由 IEC 61937标准而定制。
它一般被用在支持
杜比技术或DTS 环绕效果的家用DVD影院上。
另外一种是由CD机传输原始音频讯号至音频接收端。
固然,部分支持Dolby 或DTS技术的家用电脑、
笔记本也装载了S/PDIF。
a、SPDIF是传输通道
首先须要特别解释的是,你们不要觉得使用SPDIF传输AC-3信号就是AC-3解码,目前民用声卡中尚未一款产品可以支持硬件等级的Dolby Digital解码,SPDIF在此时的功能主要是把数字AC-3信号从声卡传输到解码器。
sudo aptitude install ffmpeg
ffplay xxxx.mkv
ffprobe xxxx.mkv
2.1 关于 frame 的一些基础知识
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等等才是音频编码格式。ide
举个通俗的例子,想象有红、蓝、绿三种彩带,上面都写着密密麻麻的文字,分别表明视频流、音频流和字幕。下面咱们把三种彩带都剪成一段一段的,而后 用胶水按红蓝绿的顺序(其余顺序也行)从新链接起来(是否是很好看?),就OK了。所谓的封装包的格式就是这些红彩带、蓝彩带、绿彩带的段长啊,链接顺序 啊等,有些mkv格式的文件包含多种语言的字幕,就能够理解为红、蓝、绿、紫、橙等多种彩带剪开后从新链接到一块儿。所谓音视频编码格式,就是彩带上的文字 所用的语言。性能
- 拆包: 便是播放器调用分离器,将封包中的视频轨道和音频轨道正确的取出来的过程。这样想,所谓拆包就是把链接好的彩带在胶水粘连的位置剪开的过程。剪开以后,不一样颜色的彩带被分发到不一样的解码器那儿 。
- 解码: 当分离器正确的从封包中取出视频轨道和音频轨道之后,播放器识别文件编码格式,而后调用相应的解码器进行解码。这个过程就像,彩带上的内容多是用英语、法语、德语写的,你看不懂,怎么办?那就找一个懂这门外语的给你翻译成汉语。这个翻译过程就是解码。
- 渲染: 解码器将音频视频翻译完毕,由渲染器输出的过程。能够理解为画面出来了,显示在屏幕上,声音处理好了,从喇叭出来的过程。这个过程颇有意思,咱们能够做不少干涉,以取得某些特殊的效果。
什么是多媒体容器
举个例子,我们日常所见的那种 .mkv .avi视频文件都是多媒体容器文件格式。所谓容器格式就是将不一样的多媒体数据流(多条音频流,字幕流和视频流)联合起来加到一个文件(载体)里面.播放 的时候分别对各条多媒体数据流进行解码。多媒体容器 (Multimedia Container)也称为多媒体封装格式,它不一样于H.26四、DivX、 MP3这类编码格式,它只是为多媒体编码提供了一个“外壳”。ui
多媒体容器文件格式通常都包括 文件头部分 、 索引部分 和 多媒体数据部分编码
- 文件头部分: :说明了多媒体数据符合的压缩标准和规范信息。常见的多媒体数据的压缩标准有: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: 最多见的音频视频容器。它能够容纳多种类型的视频编码和音频编码,像VP六、DivX、XviD等视频编码和PCM、MP三、AC3等音频编码。
- VOB: DVD采用的容器格式,支持多视频多音轨多字幕章节等。另外一种特色更为鲜明的媒体容器,它可容纳MPEG-2视频流、多个AC三、 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的处理
画中画是利用数字技术,在同一屏幕上显示两套节目。即在正常观看的主画面上,同时插入一个或多个通过压缩的子画面,以便在欣赏主画面的同时,监视其它频 道。画中画是将副画面安置在主画面以内,通常4:3彩电设画中画;而画外画则是将副画面安置在主画面以外,通常16:9彩电设画外画。