Android屏幕共享-硬编码硬解码

这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战

Android屏幕共享-硬编码硬解码

说起Android之间的屏幕共享,第一次接触会比较陌生,不过大家多少有了解过ffmpeg,看上去是不是很熟悉?ffmpeg是一套处理音视频的开源程序,但对于C了解较少的同学,编译起来很复杂,有没有纯JAVA操作的方法呢,还真有。

一、效果图

  • GIF

1.gif

  • Demo界面

2.png

二、软解码和硬解码

  • 软解码

利用CPU的计算进行解码,比如使用FFmpeg解码,由于解码是通过CPU运算,所以加大CPU负担,增加耗电。

  • 硬解码

利用手机自带处理视频的芯片专门模块编码进行解码,如 dsp。对CPU要求比较低,主要依赖于硬件,所以解码芯片在不同的手机上,表现可能会有不一致的情况。好处是硬解由于是单独的处理芯片,所以速度比软解码要快。

三、代码分析

3.1 Android 硬编码

硬编码主要是使用MediaCodec访问底层的codec来实现编解码,它是Android提供的用于对音视频进行编解码的类。

整体来说步骤分为以下步骤:

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享