Android 投屏延时优化

1.音频优化

1.1音频投屏包含以下投屏路径:

  1. 播放原始音频
  2. 采集pcm数据
  3. 编码pcm数据
  4. 网络发送
  5. 网络接收
  6. 解码音频数据
  7. 播放pcm数据

1.2优化思路:

采集pcm数据不通过AudioRecorder采集,直接在AudioFlinger中采集pcm数据,注意需要采集内录模式下(REMOTE_SUBMIX)混音后的数据。

编码pcm数据可以尝试针对不同性能的设备采用不同的码率或格式。特别是软件编码的情况下,耗时较大。网络延时大时可以降低码率。

直接传送pcm数据,跳过编解码阶段。

播放pcm数据可以使用NDK进行播放,提高效率,指定播放策略为LOW_LATENCY.

2. 视频优化

1.1视频投屏包含以下投屏路径:

  1. 播放原始视频
  2. 采集yuv数据
  3. 编码yuv数据
  4. 网络发送
  5. 网络接收
  6. 解码视频数据
  7. 渲染yuv数据

视频编码及解码耗时更大,可以考虑多线程方案,如编码,网络发送,网络接收,解码和渲染分别采用不同的线程。记录不同线程buferqueue的实时大小,可用于定位耗时瓶颈。

不同性能的设备采用不同码率和格式,以提高效率。

在网络阻塞导致出现帧积累的情况下,消费者可能无法及时消耗掉,在渲染前应考虑丢帧,以免造成延时累计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值