一、硬编码
硬编码,就是指有专门的硬件模块编码来负责编码。
举个例子,Android手机上,我们常见的高通、MTK、海思等芯片平台,它们都会有专门的编码模块,比如dsp模块等。
硬编码,有啥优点呢?
1、快,这个快是相对于软编码而言;
2、省电、功耗低;
缺点:
1、兼容性稍差,
二、软编码
软编码,就是指通过软件让CPU来进行编码处理。比如我们经常说的ffmpeg,就是用来进行软编码的。
优点:
1、兼容性好;
缺点:
1、耗资源,需要耗费cpu资源;
2、效率低,相对于硬编码而言。
1)灵活性高,能够适应不同的音视频格式和压缩率。
2)可以在普通的计算设备上进行解码,不需要专门的硬件支持。
3)由于是通过软件算法进行解码,因此可以更容易地进行升级和优化。
[图片上传失败...(image-7f33c3-1706328353898)]
1)相比硬解码,软解码需要消耗更多的 CPU 资源,可能导致设备过热、
电池寿命降低等问题。
2)软解码依赖于 CPU 的性能,因此对于某些高清视频或低端设备,
可能无法提供稳定的播放体验。
[图片上传失败...(image-39a6a0-1706328353898)]
总结:
在实际的应用开发中,开发者可以根据设备性能和支持情况来选择软编码或硬编码方式。能硬编码优点选择硬编码。
附:开源播放器
1)B站的ijkplayer
https://github.com/Bilibili/ijkplayer
2)google ExoPlayer
https://github.com/google/ExoPlayer
3)vlc
[图片上传失败...(image-d15287-1706328353898)][图片上传失败...(image-2c0431-1706328353898)]编辑
推荐阅读:
深圳上班,
从事Android Camera相关软件开发工作,