媒体参数使用附加说明 - housekeeper-software/soft GitHub Wiki

从摄像头采集到视频编码输出的流程

1.SDK从CaptureConfig中获得摄像头采集的参数,然后打开摄像头,并枚举设备的支持的分辨率和帧率,并且选择最接近的一种分辨率  
2.对摄像头输出的图像进行旋转,缩放到编码分辨率所要求的尺寸。所谓的旋转是根据摄像头的选择角度来定,最终输出的确保是正像。剪裁是以同比剪裁,确保图像不会变形,然后再缩放到  
  编码器要求的尺寸。 
3.处理过的图像送到编码器,并且根据情况送到本机预览画面。  

音频采集到发送的流程

1.音频采集会使用系统默认的采样率和通道数进行采集,不需要上层设置。这样音频延迟最低  
2.对采集到的音频根据上层设置的采样率通道数等进行重采样  
3.编码并传输  

解码的时候的是个逆向过程。  

回音消除

1.每个平台,回音消除的工作方式不同。对android而言,有两种情况:   
  (1)硬件平台内置的回音消除芯片,比如PX30,但是在framework中无法检测到回音消除已经开启。此刻需要disable_aec,这样就不会开启软件回音消除。另外,此刻回音消除芯片  
       绕过了framework,所以,可以选择任何一种音频引擎都无所谓。 这样场景一般针对定制设备。  
  (2)标准的android设备,比如移动端。如果系统内置了回音消除,SDK可以在framework中检测到,此刻必须选择java引擎。只有java引擎才能支持framework中的回音消除。其他  
       引擎都不能支持。所以,移动端disable_aec=false。  
2.latence设置。默认都是150ms即可。这是webrtc推荐的默认值。  只有定制设备,可以实测出具体的长度。比如瑞芯微的3288,设置为80毫秒比较理想。