请选择 进入手机版 | 继续访问电脑版

默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
音视频通信之采集

作者:图鸭科技   来源:图鸭科技官方公众号(tucodec)


视频通信采集是视频通信的第一步,采集主要包括两个方面:视频采集和音频采集。视频主要是通过摄像头进行采集,由于各个厂商的摄像头存在差异,因此这方面也会有一些差异。音频则通过麦克风进行采集,不同产品的麦克风对音频采样率的支持不同。

音视频通信采集技术要点


1、图像采集技术要点:
摄像头、图像比例、兼容性等问题

2、音频采集技术要点:
麦克风、音频采样率、回声消除处理、缓冲区大小等问题

图片1.png

在iOS开发中,对音视频的采集都可以用<AVFoundation>框架。而Android开发主要是基于其C/S层架构,客户端提供调用接口,而实现工作则是在服务端完成。


图像采集



1采集内容


图像的采集过程主要由摄像头等设备拍摄成 YUV 的原始数据,然后经过编码器压缩成数据分发出去。
图像是一个视频内容的主要部分。图像采集时主要涉及到下面的参数:

图像格式:
通常采用 YUV 格式存储原始数据信息,其中包含用 8 位黑白表示的灰度图,以及由 RGB 组合成的彩色图。

传输通道:
正常情况下视频的拍摄只需 1 路通道,随着 3D、VR等技术的日渐成熟,为了拍摄一个360° 的视频,需要进行不同角度的拍摄,然后经过多通道传输后合成。

分辨率:
现在的设备屏幕尺寸的日益增多增大,视频采集过程中原始视频分辨率就起着越来越重要的作用,因为后续处理环节中使用的所有视频分辨率的定义都以原始视频分辨率为基础。

采样频率:
采样频率反映了采集卡处理图像的速度和能力。在进行高度图像采集时,需要注意采集卡的采样频率是否满足要求。采样率越高,图像质量越高,同时保存这些图像信息的数据量也越大。
以上,构成了一个视频采集的主要技术参数,而对于视频通信开发者来说,在了解这些细节后,有利于在实际开发中对采集环节中技术参数的控制,减少后续编码环节的压力。

2采集源


图像的采集源有摄像头、屏幕录制等,视频通信的采集源主要是摄像头,通过摄像头获取图像信息。这里简单说一下Android和iOS。

Android中很多基本的架构都是C/S层架构。Android Camera的架构也是C/S架构,service端为Client进程提供丰富的接口,使它能轻松获得Camera数据的地址,然后处理这些数据。但是在Android中调用摄像头需要相应的权限,而且权限申请在Android 6.0后变成了动态申请。

而iOS端视频采集,相比安卓更加便利,使用AVFoundation框架提供的一系列的API即可实现。

音频采集

在说音频采集内容之前,先了解一些音频基础知识:
  • PCM,脉冲编码调制,一种将声音数字化方法。
  • 采样精度(bit pre sample),每个声音样本的采样位数。
  • 声道(channel),相互独立的音频信号数,单声道(mono)立体声(Stereo
  • 语音帧(frame),在音频数据中,帧(frame)是所有通道的一个样本。
  • 采样频率(sample rate)每秒钟采集多少个声音样本


1采集内容


声音在经过麦克风后,会转换成一连串电压变化的信号。要将这样的电压变化的信号转化成为PCM信号则需要进行三个过程:抽样、量化、编码。要实现这三个过程,则需要使用三个参数,它们是:采样频率、采样位数和声道数。

2采样频率


采样频率即每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原度越高,但同时它占的资源比越多。由于人耳的对声音的频率分辨有限,太高或太低的频率并不能分辨出来。在16位声卡中有22KHz、44KHz等几级,其中,22KHz相当于普通FM广播的音质,44KHz已相当于CD音质了,目前的常用采样频率不超过48KHz。

3采样位数


采样位数(采样值)即将采样样本幅度量化。它是用来衡量声音波动变化的一个参数。它的数值越大,分辨率也就越高,所发出声音的强度越强。
在计算机中采样位数一般有8位和16位之分,8位不是说把纵坐标分成8份,而是分成2的8次方即256份; 同理16位是把纵坐标分成2的16次方65536份。采样位数的值越大,其记录的波形就越接近原始信号。

4声道数


声道主要有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的pcm可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果。
说完采样频率、采样位数和声道数,接下来我们看一线PCM文件所占容量公式:
PCM文件存储量 = (采样频率·采样位数·声道数·时间)/8 (单位:字节数)

采集源



1音频源:



音频源相比视频源来说,其采集源有限主要就是麦克风。安卓端音频采集大都使用AudioRecord,iOS端则会使用苹果自身的Audio Unit进行采样。


2缓冲区


说完音频源接下来就说一下缓冲区。缓冲区是麦克风采集到的数据后放置的一个地方。数据库在这里进行存放,再被读取获得录制的音频数据。这里会牵扯到缓冲区大小。缓冲区设置得大一些,可以增加系统的稳定性;而把缓冲区设置得小一写,则会提升系统的响应时间,减少音频延迟。






即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

图片2.png
上一篇:新来的想问下有关实时视频的问题?下一篇:利用percona-zabbix-template监控MYSQL
推荐方案
评论 2
楼主你们公司几轮融资了?看你推广的很卖力啊
引用:JackJiang 发表于 2018-03-12 17:46
楼主你们公司几轮融资了?看你推广的很卖力啊

正在进行A轮融资
签名: Make video smaller and smarter.   官网:www.tucodec.com
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部