美文网首页
硬解码,软解码

硬解码,软解码

作者: 星_025f | 来源:发表于2020-06-22 15:34 被阅读0次

原文:https://www.jianshu.com/p/93b7f7ec2d04

硬解,用自带播放器播放,android中的VideoView

软解,使用音视频解码库,比如FFmpeg

一、硬解码

硬解:就是调用GPU的专门模块编码来解,减少CPU运算,对CPU等硬件要求也相对低点。软解需要CPU运算,变相加大CPU负担耗电增加很多。硬件解码是将原来全部交由CPU来处理的视频数据的一部分交由GPU来做,而GPU的并行运算能力要远远高于CPU,这样可以大大的降低对CPU的负载,CPU的占用率较低了之后就可以同时运行一些其他的程序了。

对于android设备,目前用得比较多的soc就是高通、海思和联发科,这些soc大都集成了很多的功能,CPU、GUP、DSP、ISP包括视频解码、音频解码等等,所以我们说的是SOC而不是直接说CPU,目前手机的中央处理器的集成度非常高,下面是我们大华为的海思麒麟950的组成图:

我们可以看到这颗SOC集成了单独的音视频解码单元。

在Android中使用硬件解码直接使用MediaCodec就可以了,虽然MediaPlayer也是硬件解码,但是被封装得太死了,支持的协议很少。而MediaCodec就很好拓展,我们可以根据流媒体的协议和设备硬件本身来自定义硬件解码,代表播放器就是Google的ExoPlayer。

点击打开:Google开源ExoPlayer

硬件码优势:更加省电,适合长时间的移动端视频播放器和直播,手机电池有限的情况下,使用硬件解码会更加好。减少CPU的占用,可以把CUP让给别的线程使用,有利于手机的流畅度。

二、软解码

软解码:即通过软件让CPU来对视频进行解码处理,就是通过CPU来运行视频编解码代码,我们最最常见的视频软解码开源看就是FFmpeg:

FFmpeg官网:https://ffmpeg.org/

国内FFmpeg教程:雷霄骅(leixiaohua1020)的专栏

目前基于FFmpeg的开源播放器有B站的ijkplayer,教程请移步:http://blog.csdn.net/u010072711/article/details/51728537

点击打开:B站开源播放器ijkplayer

软解码优势:具有更好的适应性,软件解码主要是会占用CUP的运行,软解不考虑社备的硬件解码支持情况,有CPU就可以使用了,但是占用了更多的CUP那就意味着很耗费性能,很耗电,在设备电量充足的情况下,或者设备硬件解码支持不足的情况下使用软件解码更加好!

三、总结

在Android设备硬件支持的情况下优先使用Android设备的硬件解码,减少CPU的占用,更加省电。

在Android设备硬解不支持的情况下选择使用软解码,不管怎么样,视频至少能够播放,具有更好的适应性,但是增加了CPU的占用,更加费电。

软硬结合才是王道,根据实际情况合理选择。

相关文章

  • H.264, H.265,编解码

    1、硬编解码与软编解码的区别 硬编解码:使用了GPU 软编解码:只使用了CPU MediaCodec(androi...

  • 32.FFmpeg+OpenGLES+OpenSLES播放器实现

    项目源码FFmpeg开发文档解码分为软解码和硬解码,那么什么是软解码和硬解码,二者有什么区别?简单来说,在于是否使...

  • 软解码和硬解码的区别

    软解码和硬解码有什么区别?硬解码:由显卡核心GPU来对高清视频进行解码工作,CPU占用率很低,画质效果比软解码略差...

  • 硬解码,软解码

    原文:https://www.jianshu.com/p/93b7f7ec2d04 硬解,用自带播放器播放,and...

  • 直播-编码

    编码分为硬编码和软编码。 硬解码:由显卡核心GPU来对高清视频进行解码工作,CPU占用率很低,画质效果比软解码略差...

  • android进阶必备技能

    系统篇 android不同版本所做的性能优化 硬解码,软解码原理,如何解决硬解码花屏问题 binder原理,为什么...

  • [iOS]iOS上解码方式

    除了iOS从8开始之后的硬解码开放,其他分为两种 ffmpeg软解码libvlc解码

  • 音视频解码器

    解码器分为音频与视频。视频又分为硬解与软解。 以下是初始化视频解码器: //视频解码器 软解码器AVCodec *...

  • 【iOS】FFmpeg编译+h264解码+yuv渲染

    从零开始认识视频解码和渲染,需求是用ffmpeg软解码和videoToolBox硬解码,现已完成ffmpeg方面,...

  • Android视频播放软解与硬解的区别

    硬解,用自带播放器播放,android中的VideoView 软解,使用音视频解码库,比如FFmpeg 一、硬解码...

网友评论

      本文标题:硬解码,软解码

      本文链接:https://www.haomeiwen.com/subject/ganxfktx.html