视频解码硬解和软解的区别及如何选择
视频解码硬解和软解的区别及如何选择
硬解
- 字面上理解就是用硬件解码。通过显卡的视频加速功能对高清视频进行解码。可以理解为有一个专门的电路板来进行视频的解码工作,是依靠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的占用,更加费电,软硬结合才是王道,根据实际情况合理选择
视频解码硬解和软解的区别及如何选择相关推荐
- android播放器和视频拍摄中的硬解和软解以及硬编和软编的区别
转载 原文地址:https://blog.csdn.net/ltym2014/article/details/82354606 https://blog.csdn.net/lipengshiwo/ar ...
- 播放器解码硬解跟软解有什么区别
1.什么是硬解?硬解是要机器中的专门的解码芯片来完成,质量因厂家的技术能力而定,部分厂商技术实力强,兼容性和解码效果做的比较好,而有些厂商技术实力稍差,兼容性和解码效果做的就不尽如意. 2.什么是软解 ...
- 硬解还是软解?手机视频播放功耗揭秘
"硬解的功耗比软件低很多!"相信这是大多数人对硬解码和软解码的印象.然而具体低多少呢?却很少有人能够给出答案.为了揭开这个问题的谜底,北大数字媒体研究中心专门使用功耗仪进行了测试. ...
- Android 解码时 硬解和软解 的概念
解码分 硬解 和 软解. 如果CPU支持硬解,就会在HAL层专门添加一些代码,用来调用硬件解码功能. 如果不支持硬解,就会调用stagefright 来实现软解. 软解首先还是会调到 framewor ...
- “硬解码”与“软解码”的区别
关于"硬解码"与"软解码" 忧蓝 发布于: 2010-08-02 11:03 由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高.再加上VC-1 ...
- 硬编码和软编码的区别
Android 视频 硬编码和软编码的区别 软编码和硬编码如何区分 软编码:使用CPU进行编码 硬编码:使用非CPU进行编码,如显卡GPU.专用的DSP.FPGA.ASIC芯片等 软编码和硬编码比较 ...
- [转]video视频解码硬解和软解的区别及如何选择
如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意 声明:本文只用于个人学习交流,若不慎造成侵权,请及时联系我,立即予以改正 锋影 email:1741 ...
- 基于ffmpeg与nvidia-video-sdk-8.1.24视频硬解与软解多路rtsp,支持Qt的QOpenglWidget与qml接口显示
https://blog.csdn.net/wanghualin033/article/details/82050448 为了解决工程上的一个问题,我研究了nvidia较新的video-sdk-8.1 ...
- 手机视频硬解码和软解码的区别
在手机评测视频播放能力的时候经常会提到"硬解码"和"软解码",但是很多人不太明白是什么意思,其实问题很简单.大家都知道PC都有CPU和GPU(显卡),在手机上也 ...
最新文章
- Mac OS X Yosemite Arduino安装CH340 USB转串口驱动
- 深度洞见|体验经济浪潮兴起,什么才是企业制胜密钥?
- Java黑皮书课后题第4章:*4.23(金融应用:酬金)编写一个程序,读取下面信息,然后输出一个酬金声明
- OpenCV_轮廓的查找、表达、绘制、特性及匹配
- 打开My Lead detail page会发生timeout的错误的解决方案
- Smart Template tile的绘制原理
- JMH:如何设置和运行JMH基准
- double和float的误区!
- 转《针对不同版本的ie调用不同css样式》
- jQuery中的read 和JavaScript中 的onload函数的区别
- Docker之旅:了解Swarm集群
- Crush Crouse 心理学笔记
- 为什么建议每个开发人员都需要学Python?
- win10安装iNode客户端软件就不能连接无线网络的问题解决
- 02.Mirth Connect client API 调用
- 人体神经元细胞分布图片,神经元人体分布大图
- 基于微信小程序的毕业设计题目(26)php视频电影播放小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
- LeetCode 1823. 找出游戏的获胜者 (约瑟夫环)
- stm32输出正弦波
- linux查看snmp的端口号,Linux的snmp 详解
热门文章
- 基于springboot超市进销存管理系统(Java毕业设计,包含部署文档)
- matlab箱图所有点,MATLAB:多个不同维度的箱线图画在一起
- Android工程师面试宝典面试实战试题详解01
- RedmiAX5400路由器静态IP上网报错“静态IP地址不合法“
- 树的四种遍历案例和AVL树的旋转的四种情况
- 【Java】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 关于求和号的若干问题
- 蓝桥杯最小公倍数算法总结
- 安卓linux免root权限,手机免root安装Linux发行版 Termux v0.106+Tmoe-linux
- csgo卡住关不掉_csgo卡屏死机画面定格