媒体参数使用附加说明 - 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毫秒比较理想。