视频解码硬解和软解的区别及如何选择

硬解

  • 字面上理解就是用硬件解码。通过显卡的视频加速功能对高清视频进行解码。可以理解为有一个专门的电路板来进行视频的解码工作,是依靠GPU。
  • 调用GPU的专门模块编码来解码,减少CPU运算。显卡核心GPU拥有独特的计算方法,解码效率非常高,这样不但能够减轻CPU的负担,还有着低功耗,发热少等特点。
  • 但是,由于硬解码起步比较晚,软件和驱动对他的支持度很低,基本上硬解码内置什么杨的模块,就解码什么样的视频,面对网上各色各样的视频编码样式,兼容性不好。此外,硬解码的滤镜、字幕、画质方面都做的不够理想。
  • 对于android设备,目前用得比较多的芯片就是高通、海思和联发科,这些芯片大都集成了很多的功能,CPU、GUP、DSP、ISP包括视频解码、音频解码等等
  • 在Android中使用硬件解码直接使用MediaCodec就可以了,虽然MediaPlayer也是硬件解码,但是被封装得太死了,支持的协议很少。而MediaCodec就很好拓展,我们可以根据流媒体的协议和设备硬件本身来自定义硬件解码,代表播放器就是Google的ExoPlayer。

软解

  • 字面上理解就是用软件解码。但是实际上还是要硬件支撑。这个硬件就是CPU。
  • 在软解码过程中,需要对大量的视频信息进行运算,所以对CPU性能的要求非常高。尤其是对高清大码率的视频来说,巨大的运算量就会造成转换效率低,发热量高等问题。
  • 我们最最常见的视频软解码开源库就是FFmpeg。目前基于FFmpeg的开源播放器有B站的ijkplayer
  • 不过,软解码不需要过多的硬件支持,兼容性非常高,即使出现新的视频编码格式,只要安装好相应的解码器文件,就可以顺利播放。而且软解码拥有丰富的滤镜,字幕,画面处理优化等效果,只有你CPU够强悍,就能够实现更加出色的画面效果。

总结

  • 在Android设备硬件支持的情况下优先使用Android设备的硬件解码,减少CPU的占用,更加省电。
  • 在Android设备硬解不支持的情况下选择使用软解码,不管怎么样,视频至少能够播放,具有更好的适应性,但是增加了CPU的占用,更加费电,软硬结合才是王道,根据实际情况合理选择

视频解码硬解和软解的区别及如何选择相关推荐

  1. android播放器和视频拍摄中的硬解和软解以及硬编和软编的区别

    转载 原文地址:https://blog.csdn.net/ltym2014/article/details/82354606 https://blog.csdn.net/lipengshiwo/ar ...

  2. 播放器解码硬解跟软解有什么区别

    1.什么是硬解?硬解是要机器中的专门的解码芯片来完成,质量因厂家的技术能力而定,部分厂商技术实力强,兼容性和解码效果做的比较好,而有些厂商技术实力稍差,兼容性和解码效果做的就不尽如意. 2.什么是软解 ...

  3. 硬解还是软解?手机视频播放功耗揭秘

    "硬解的功耗比软件低很多!"相信这是大多数人对硬解码和软解码的印象.然而具体低多少呢?却很少有人能够给出答案.为了揭开这个问题的谜底,北大数字媒体研究中心专门使用功耗仪进行了测试. ...

  4. Android 解码时 硬解和软解 的概念

    解码分 硬解 和 软解. 如果CPU支持硬解,就会在HAL层专门添加一些代码,用来调用硬件解码功能. 如果不支持硬解,就会调用stagefright 来实现软解. 软解首先还是会调到 framewor ...

  5. “硬解码”与“软解码”的区别

    关于"硬解码"与"软解码" 忧蓝 发布于: 2010-08-02 11:03 由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高.再加上VC-1 ...

  6. 硬编码和软编码的区别

    Android 视频 硬编码和软编码的区别 软编码和硬编码如何区分 软编码:使用CPU进行编码 硬编码:使用非CPU进行编码,如显卡GPU.专用的DSP.FPGA.ASIC芯片等 软编码和硬编码比较 ...

  7. [转]video视频解码硬解和软解的区别及如何选择

    如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意 声明:本文只用于个人学习交流,若不慎造成侵权,请及时联系我,立即予以改正 锋影 email:1741 ...

  8. 基于ffmpeg与nvidia-video-sdk-8.1.24视频硬解与软解多路rtsp,支持Qt的QOpenglWidget与qml接口显示

    https://blog.csdn.net/wanghualin033/article/details/82050448 为了解决工程上的一个问题,我研究了nvidia较新的video-sdk-8.1 ...

  9. 手机视频硬解码和软解码的区别

    在手机评测视频播放能力的时候经常会提到"硬解码"和"软解码",但是很多人不太明白是什么意思,其实问题很简单.大家都知道PC都有CPU和GPU(显卡),在手机上也 ...

最新文章

  1. Mac OS X Yosemite Arduino安装CH340 USB转串口驱动
  2. 深度洞见|体验经济浪潮兴起,什么才是企业制胜密钥?
  3. Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
  4. OpenCV_轮廓的查找、表达、绘制、特性及匹配
  5. 打开My Lead detail page会发生timeout的错误的解决方案
  6. Smart Template tile的绘制原理
  7. JMH:如何设置和运行JMH基准
  8. double和float的误区!
  9. 转《针对不同版本的ie调用不同css样式》
  10. jQuery中的read 和JavaScript中 的onload函数的区别
  11. Docker之旅:了解Swarm集群
  12. Crush Crouse 心理学笔记
  13. 为什么建议每个开发人员都需要学Python?
  14. win10安装iNode客户端软件就不能连接无线网络的问题解决
  15. 02.Mirth Connect client API 调用
  16. 人体神经元细胞分布图片,神经元人体分布大图
  17. 基于微信小程序的毕业设计题目(26)php视频电影播放小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  18. LeetCode 1823. 找出游戏的获胜者 (约瑟夫环)
  19. stm32输出正弦波
  20. linux查看snmp的端口号,Linux的snmp 详解

热门文章

  1. 基于springboot超市进销存管理系统(Java毕业设计,包含部署文档)
  2. matlab箱图所有点,MATLAB:多个不同维度的箱线图画在一起
  3. Android工程师面试宝典面试实战试题详解01
  4. RedmiAX5400路由器静态IP上网报错“静态IP地址不合法“
  5. 树的四种遍历案例和AVL树的旋转的四种情况
  6. 【Java】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  7. 关于求和号的若干问题
  8. 蓝桥杯最小公倍数算法总结
  9. 安卓linux免root权限,手机免root安装Linux发行版 Termux v0.106+Tmoe-linux
  10. csgo卡住关不掉_csgo卡屏死机画面定格