Android音视频——相关概念

简介: Android音视频——相关概念

在学习Android音视频里,讲过音视频数据从哪里来,怎么获取,其实无论在哪个平台,图 像、视频最初都 是来自摄像头,而音频最初都是来自麦克风,相较于视频,其实音频是更不易于观察,那么你们知道麦克风是如何采集声音的吗?


许嵩-有何不可


麦克风里面有一层碳膜,非常薄而且十分敏感。声音其实是一种纵波,会压缩空气也会压缩这层碳膜,碳膜在受到挤压时也会发出振动,在碳膜的下方就是一个电极,碳膜在振动的时候会接触电极,接触时间的长短和频率与声波的振动幅度和频率有关,这样就完成了声音信号到电信号的转换。之后再经过放大电路处理,就可以实施后面的采样量化处理了。


1.1帧率

帻率(Fume Rate)是用于测量显示帧数的量度、所谓的测量单位为每秒显示销数(frames per second,简称ps)或“赫兹”(Hz)。

每秒显示帧数(ts)或者帧率表示图形处理器处理场时每秒能够更新的次数。高顿率可以得到更流畅、更逼真的动画,一般来说,30fps 就是可以接受的,但是将性能提升至60tp期可以明显提升交互感和逼真感,但是超过75fps 就不容易察觉有明显的流畅度提升了。如果城丰超过屏幕刷新率,则只会浪费图像处理能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。


1.2 分辨率

视频分辨率是指视频成像产品所形成的图像大小或尺寸。


1.3刷新率

剧新率是指屏幕每秒画面被刷新的次数,刷新率分为垂直刷新率和水平刷新率,一般提到的剧新率通常指垂直刷新率。垂直刷新率表示屏幕上图像每秒重绘多少次,也就是每秒屏幕剧新的次数,以Hz(赫兹)为单位。刷新率越高,图像就越稳定,图像显示就越自然清晰,对眼睛的影响也越小。刷新率越低,图像闪烁和抖动得就越厉害,眼睛疲劳得就越快。一般来说,如能达到 80Hz以上的刷新率,就可以完全消除图像闪烁和抖动感,眼睛也不太容易疲惫。


1.4 编码格式

编码的目的是压缩数据量,采用编码算法压缩冗余数据。常用的编码格式有如下这两种 ·MPEG(MPEG-2、MPEG-4)

·H26X(H.263、H.264/AVC、H.265/HEVC)


1.5 封装格式

把编码后的音视频数据以一定格式封装到一个容器,封装格式有 MKV、AVI、TS等。


1.6码率

码率也就是比特率,比特率是单位时间播放连续的媒体(如压缩后的音频或视频)的比特数量。比特率越高,带宽消耗得越多。比特(bit)就是二进制里面最小的单位,要么是0,要么是1。

文件大小(b)=码率(b/s)x时长(s)


1.7 画质与码率

此处提出一个问题,是码率越大,画质越好,视频越流畅吗?这是错误的说法,实际上视频质量和码率、编码算法都有关系。


1.8 DTS 与 PTS

下面分别介绍一下 DTS和 PTS.

·DTS:即 Decode Time Stamp,主要用于标示读入内存中的比特流在什么时候开始送入解码器中进行解码。

PTS:即 Presentation Time Stamp,主要用于度量解码后的视频帧什么时候被显示出来。


1.9 YUV与 RGB

下面分别介绍一下颜色空间模型 YUV与RGB。

·YUV:是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是 PAL 和 SECAM模拟彩色电视制式采用的颜色空间模型。其中的Y、U、V几个字母不是英文单词的首字母,其中Y代表亮度,UV代表色关,U和V是构成颜色的两个分量。

RGB:是一种颜色空间模型,通过对红®、绿(G)、蓝(B)3个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色,RGB 即代表红、绿、蓝3个通道的颜色。


1.10 视频帧及音频帧

常见的视频帧有1、P、B帧等,下面分别进行介绍。

·【帧表示关键帧,你可以理解为这一帧画面的完整保留,解码时只需要本帧数据就可以完成(因为包含完整画面)。


·P帧表示的是这一帧和之前的一个关键帧(或P帧)的差别,解码时需要用之前级有画面叠加上本帧定义的差别生成最终而面。(也就是差别帧,P帧没有完整面数。

只有与前一帧的画面差别的数据。) ·B帧是双向差别帧。也就是B帧记录的是本帧与前后帧的差别(具体比较复杂。有4

通过前后面面数据与本帧数据的叠加取得最终的面而。B帧压缩率高,但是解码时 CPU会比较吃力。


精度就可以播放。比如采样率为44.1kHz,采样精度为 16位的音频,你可以算出比特率是4410016kb/s,每秒的音频数据是固定的4410016/8字节。

AMR顿比较简单,它规定每20ms的音频是1帧,每一帧音频都是独立的,有可能来用不同的编码算法以及不同的编码参数。

·MP3帧较复杂一些,包含了更多的信息,比如采样率、比特率等各种参数。具体如下:音频数据帧个数由文件大小和帧长决定,每一帧的长度可能不固定,也可能周定,由比特率决定,每一帧又分为帧头和数据实体两部分,帧头记录了MP3的比特率、采样率、版本等信息,每一帧之间相互独立。


1.11 量化精度

量化精度表示可以将模拟信号分成多少个等级,量化精度越高,音乐的声压振幅越接近原音乐。量化精度的单位是bit(比特)CD标准的量化精度是16bit,DVD标准的量化精度是24bit。也可理解为一个采样点用多少bit表示(8/16/24/32bit)。


1.12 采样率

采样率指每秒音频采样点个数(8 000/44 100Hz),采样率单位用Hz(赫兹)表示。


1.13声道

声道(Sound Channel)是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。常见声道有单声道、立体声道、4声道、5.1声道、7.1声道等,下面分别进行介绍。


单声道:设置一个扬声器,这个较为常见。


立体声道:把单声道一个扬声器扩展为左右对称的两个扬声器。声音在承制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果。这种技术在音乐欣赏中显得尤为有用,听众可以清晰地分辨出各种乐器来自何方,从而使音乐更富想象力,更加接近临场感受。立体声技术广泛应用于自 Sound Blaster Pro 以后的大量声卡,成为了影响深远的音频标准。


image.png声道:4 声道环绕规定了 4个发音点,分别是前左、前右、后左、后右,听众则被包围在中间。同时还建议增加一个低音音箱,以加强对低频信号的回放处理(这也就是如今4.1声道音箱系统广泛流行的原因)。就整体效果而官,4声道系统可以为听众带来来自多个不同方向的声音环绕,可以获得身临各种不同环境的听觉感受,给用户以全新的体验。


image.png5.1 声道:其实5.1声道系统来源于4.1声道系统,将环绕声道一分为二,分为左环绕和右环绕,中央位置增加重低音效果,如图1-1所示。

image.png7.1 声道:7.1声道系统在5.1 声道系统的基础上又增加了中左和中右两个发音点。简单来说,就是在听者的周围建立起一套前后相对平衡的声场,增加了后中声场声道,如图1-2 所示。image.png1.14 分贝dB

关于分贝dB,人们的第一感觉认为是声音的大小单位,如机械厂房中噪声为90分贝。dB真的是单位吗?其实分贝除了用于声学领域之外,在NVH测量领域,到处可见分贝。它似乎是一个测量值的单位,通常是纵轴,但实际上它不是一个单位,它是个无量纲。我们经常在声学、振动、电子学、电信、音频工程&设计等领域见到它。既然它是个无量纲,那我们为什么要用它呢,怎么正确使用它呢?


分贝最初使用是在电信行业,是为了量化长导线传输电报和电话信号时的功率损失而开发出来的。是为了纪念美国电话发明家亚历山大·格雷厄姆·贝尔(Alexander Graham Bell),以他的名字命名的。虽然分贝定义为1/10贝尔,但单位“贝尔”(Bel)却很少用。

分贝dB定义为两个数值的对数比率,这两个数值分别是测量值和参考值(也称为基准值)。存在两种定义情况。

一种为功率之比:


image.png简单的说就是量度两个相同单位之数量比例的计量单位,大家知道这个就好,更深的可以去查看相关资料。



目录
相关文章
|
开发工具 Android开发 开发者
Android如何回调编码后的音视频数据
有开发者提到,在RTMP推送端的基础上,希望能回调编码后的音视频数据,便于开发者对接第三方系统,如GB28181.
|
编解码 监控 网络协议
Android平台音视频推送选RTMP还是GB28181?
早在2015年,我们发布了RTMP直播推送模块,那时候音视频直播这块场景需求,还不像现在这么普遍,我们做这块的初衷,主要是为了实现移动单兵应急指挥系统的低延迟音视频数据传输。好多开发者可能会疑惑,走RTMP怎么可能低延迟?网上看到的RTMP推拉流延迟,总归要2-3秒起,如果是自己实现框架,RTMP推拉流逻辑自己实现的话,延迟确实可以控制在毫秒级,这个已无需赘述。
110 0
|
Web App开发 数据采集 物联网
Android平台基于RTMP或RTSP的一对一音视频互动技术方案探讨
随着智能门禁等物联网产品的普及,越来越多的开发者对音视频互动体验提出了更高的要求。目前市面上大多一对一互动都是基于WebRTC,优点不再赘述,我们这里先说说可能需要面临的问题:WebRTC的服务器部署非常复杂,可以私有部署,但是非常复杂。传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量,难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景,行话说的好:从demo到实用,中间还差1万个WebRTC。
156 0
|
监控 前端开发 网络协议
Android前端音视频数据接入GB28181平台意义
在我们研发Android平台GB28181前端音视频接入模块之前,业内听到最多的是,如何用Android或者Windows端,在没有国标IPC设备的前提下,模拟GB28181的信令和媒体流交互流程,实现GB28181整体方案的测试?
140 0
|
7月前
|
监控 Unix 应用服务中间件
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
|
3月前
|
Web App开发 网络协议 Android开发
Android平台一对一音视频通话方案大比拼:WebRTC VS RTMP VS RTSP,谁才是王者?
【9月更文挑战第4天】本文详细对比了在Android平台上实现一对一音视频通话时常用的WebRTC、RTMP及RTSP三种技术方案。从技术原理、性能表现与开发难度等方面进行了深入分析,并提供了示例代码。WebRTC适合追求低延迟和高质量的场景,但开发成本较高;RTMP和RTSP则在简化开发流程的同时仍能保持较好的传输效果,适用于不同需求的应用场景。
177 1
|
7月前
|
Java Android开发 设计模式
flutter音视频开发,Android开发需要学什么
flutter音视频开发,Android开发需要学什么
|
7月前
|
存储 Android开发 开发者
Android构建系统:Android.mk(1)基础概念赋值变量引用详解
Android构建系统:Android.mk(1)基础概念赋值变量引用详解
132 0
|
Web App开发 开发工具 Android开发
Android平台不需要单独部署流媒体服务如何实现内网环境下一对一音视频互动
我们在做内网环境的一对一音视频互动的时候,遇到这样的技术诉求:如智能硬件场景下(比如操控智能硬件),纯内网环境,如何不要单独部署RTMP或类似流媒体服务,实现一对一音视频互动。
|
编解码 Android开发 数据安全/隐私保护
Android平台GB28181设备接入端对接编码前后音视频源类型浅析
今天主要对Android平台GB28181设备接入模块支持的接入数据类型,做个简单的汇总: 1. 编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型),其中,Android平台前后摄像头数据,或者屏幕数据,或者Unity拿到的数据,均属编码前数据; 2. 编码后数据(如无人机等264/HEVC数据,或者本地解析的MP4音视频数据); 3. 拉取RTSP或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。