一、硬解码
硬解定义:使用GPU的专门模块来解码。
Android中硬件解码直接使用MediaCodec就可以,虽然MediaPlayer也是硬件解码,但是被封装得太死了,支持的协议很少。MediaCodec很好拓展,可以根据流媒体的协议和设备硬件本身来自定义硬件解码,代表播放器Google开源ExoPlayer
二、软解码
软解定义:使用CPU来运行视频编解码代码。
最常见的视频软解码开源是FFmpeg
目前基于FFmpeg的开源播放器有B站的ijkplayer。
三、软硬解码对比
1.耗电:硬解使用GPU解码,GPU的并行运算能力要远远高于CPU,可以大大地降低CPU的负载,更加省电;软解使用CPU解码,更加耗性能和耗电。
2.硬件支持:软解兼容性好,在哪都能用;硬解需要设备硬件支持。
总结
在Android设备硬件支持的情况下优先使用Android设备的硬件解码,减少CPU的占用,更加省电,在Android设备硬解不支持的情况下选择使用软解码。
网友评论