主要内容
对手机A的屏幕内容进行H265编码,再通过socket传输发送给手机B。主要利用过的技术是H265编解码和socket通信。
具体技术流程如下:
手机A 推流端:
- 手机A通过MediaProjection获取到手机屏幕内容数据
- 对获取到的屏幕内容数据进行H265编码
- 对编码后的数据进行处理再进行发送
编码之后的H265数据只有开头有VPS+SPS+PPS,但是用于网络传输,在传输的每一帧I帧前面都需要加上VPS+SPS+PPS
即遇到VPS+SPS+PPS的时候先保存起来,碰到I帧,就在I帧的前面加上VPS+SPS+PPS再发送。如果是P帧或者B帧则直接发送即可。
怎样判断帧类型呢?
具体方式可以看下这个系列的第三篇和第四篇,帧的前面有一个字节的中间6为表示帧的type。
手机A段编码部分代码:
public void encodeLive() {