Android 常见的视频播放器,ijkPlayer、VLC、ExoPlayer、MediaPlayer、SmartPlayer简单对比:

1、MediaPlayer

在Android系统中对于视频播放器有原生的实现MediaPlayer, 以及将MediaPlayer,SurfaceView封装在一起的VideoView, 两者都只是使用硬解码播放,

基本上只支持本地和HTTP协议的视频播放,扩展性都很差,只适合最简单的视频播放需求。

2、ijkPlayer

ijkplayer 是Bilibili公司开源的播放器实现,整合了FFMpeg, ExoPlayer, MediaPlayer等多种实现,提供了类似于MediaPlayer的API,可以实现软硬解码自由切换,自定义TextureView实现,同时得益于FFMpeg的能力,也能支持多种流媒体协议(RTSP,RTMP,HLS等),多种视频编码格式(h264, mpeg4, mjpeg),具有很高的灵活性,可以定制实现自己特色的播放器(比如支持视频缩放,视频翻转等)。

如果只是使用它进行播放,集成也较为简单,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。

支持软硬编解码,支持倍速播放,可以定制化集成需要的功能,集成占用体积也很小。

优点:
1.ijkplayer结构比较简单,基本以ffplay展开,开发难度较小;
2.ijkplayer包比VLC小一点,经过裁剪,约为4.2M左右;

缺点:
1.ijkplayer可扩展性较差,基本上没有提供modules供开发者二次开发;
2.ijkplayer 官方维护力度小,版本更新很慢;

3、ExoPlayer

ExoPlayer 是google推出的开源播放器,主要是集成了Android 提供的一套解码系统来解析视频和音频,将MediaCodec封装地非常完善,并加入了对DASH和HLS等直播协议的支持,形成了一个性能优越,播放稳定性较好的一个开发播放器。

但也只支持硬码,如果项目中只需要支持对H264格式、以及流媒体协议比较常规(比如HTTP,HLS),基于ExoPlayer定制也是不错的选择。

优点:
1.接入包小,1.1M;
2.维护团队强大,更新速度快;

缺点:
1.不太适合直播;
2.视频解码无法接入软解,可扩展性一般;
3.适合播放场景简单的项目,播放过程中无切换码流的情况

问题:ExoPlayer 会替代MediaPlayer成为Android平台上的默认播放器吗?

不会,两个原因:

  • Android 5.0 之后Android的Codec架构做了依次重大调整,放弃了AwesomePlayer
    ,使用NuPlayer架构,ExoPlayer 没有做过多的兼容;
  • ExoPlayer 目前还是一个小而轻的播放器,如果要合成到系统中,它需要调整的东西太多,代码量会变得很繁杂,很可能得不偿失;

4、VLC Media Player

VLC 是VideoLAN 计划所研发的工程,最早预1996年开始,是一个完全的跨平台播放器,适合Windows、Mac OS、Linux、Android、iOS等系统,目前完全的跨平台播放器很少,VLC是最受欢迎的一种播放器;目前累计下载13亿次,是真真正正的全球播放器;

VLC的整体框架是设计成一套module的管理机制,将功能分类并抽象成modules。
VLC main:player的main。初始化libVLC 并加载用户界面。
libVLCcore:libvlc的核心,抽象出了一个libvlc_instance_t 对象,提供modules的装载/卸载机制。
modules:modules提供具体的功能,比如上面的access,demux,decode就是以一个模块的形式存在。
External libraries:外部开源库。

优点:
1.跨平台,兼容性好;
2.功能全面,支持rtsp、rtmp、ftp、http、https等协议;
3.代码完全解耦,modules相互独立,不影响,引入新modules方便;
4.维护团队强大,更新频繁;

缺点
1.Android平台编译出的包较大,有16M左右;

5、SmartPlayer

SmartPlayer系大牛直播SDK(Github)出品的全自研内核的RTSP和RTMP直播播放器SDK,跨平台(Windows、Android、iOS)、功能齐全、高稳定、超低延迟,超低资源占用,适用于安防、教育、单兵指挥等对延迟和稳定性要求比较苛刻的场景。

在机器性能没有瓶颈的前提下,SmartPlayer的RTSP播放器和RTMP播放器延迟是业内为数不多毫米级的。

参考链接:
https://zhuanlan.zhihu.com/p/397425806

开源播放器内核比较:ijkPlayer、VLC、ExoPlayer、MediaPlayer、SmartPlayer相关推荐

  1. 开源播放器 ijkplayer (一) :使用Ijkplayer播放直播视频

    1.ijkplayer 编码 IjkPlayer支持硬解码和软解码. 软解码时不会旋转视频角度这时需要你通过onInfo的what == IMediaPlayer.MEDIA_INFO_VIDEO_R ...

  2. 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)...

    前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...

  3. 开源播放器 Banshee 发布 1.0 beta 2

    Banshee也是个很是不错的开源播放器,同时也是SuSE的内置播放器,默许支持靠山播放,消息区域告诉,可以快速跳过以后曲目,评分等等,也支持全局热键,媒体库支持音频和视频. 新版本提供了对网络视频和 ...

  4. ExoPlayer播放器剖析(六)ExoPlayer同步机制分析

    关联博客 ExoPlayer播放器剖析(一)进入ExoPlayer的世界 ExoPlayer播放器剖析(二)编写exoplayer的demo ExoPlayer播放器剖析(三)流程分析-从build到 ...

  5. ExoPlayer播放器剖析(五)ExoPlayer对AudioTrack的操作

    关联博客 ExoPlayer播放器剖析(一)进入ExoPlayer的世界 ExoPlayer播放器剖析(二)编写exoplayer的demo ExoPlayer播放器剖析(三)流程分析-从build到 ...

  6. 搜狐影音播放器内核设计

    播放器内核设计 1 背景 2 主要功能 3 模块层次结构 4 线程模型/数据流 5 在线播放关键用例 5.1 Play mp4 5.1.1 单个分段 5.1.1.1 解封装 5.1.1.2 解码 5. ...

  7. qq浏览器开源播放器_使用极简的开源Web浏览器Min浏览网络

    qq浏览器开源播放器 世界是否需要其他Web浏览器? 尽管拥有多种浏览器供选择的日子已经一去不复返了,但是仍然有很多人在开发可以帮助我们使用Web的新应用程序. Min是这些新型浏览器之一. 顾名思义 ...

  8. Mark几款优秀的基于MPC开源播放器的源码供参考.

    SEP 11TH, 2016 2:00 PM MPC(Media Player Classic)是一款基于DirectShow由一名匈牙利大佬Gabest开发的一款开源播放器. 由于该项目基于GPL源 ...

  9. 迷你播放器--第一阶段(3)--MediaPlayer的封装

    迷你播放器--第一阶段(3) MediaPlayer的封装--利用intent实现消息传递 本文章为CSDN作者原创,转载请保留出处:http://blog.csdn.net/lrs0304/arti ...

  10. 开源播放器ijkplayer的使用

    编译 快速入门: ijkplayer是Bilibili发布的轻量级 Android/iOS 开源视频播放器.核心代码主要是用C写的,主要由ffmpeg(解码)+openssl(https)+播放器相关 ...

最新文章

  1. 分布式架构spring mvc +mybatis +shiro+ Activiti +Alibaba Druid
  2. FreeBSD下安装配置Hadoop集群(一)
  3. 通过Nagios监控weblogic服务
  4. 使用php操作qq第三方登录
  5. fastdfs windows部署_从零搭建分布式文件系统MinIO比FastDFS要更合适
  6. 第八章节 文件操作一 (文件对话框)
  7. 几款实用Chrome插件
  8. orbslam2+azure kinect DK稠密重建
  9. 几个小图像处理工具网址
  10. android开发点击版本号多次无法进入开发者模式模式
  11. 路由器的虚拟服务器干嘛用的,dmz和虚拟服务器(tp路由器虚拟服务器能干嘛)...
  12. js实现对数组每一项加1的三种方法
  13. cf/codeforces #365 E - Mishka and Divisors 数学+背包dp+gcd
  14. 基于改进胶囊网络的文本分类-论文研读
  15. File.createTempFile创建临时文件
  16. 计算机比赛证书p图,雅礼中学计算机协会第二届“P图”大赛报名正式启动
  17. dapper mysql_.NET Core Dapper操作mysql数据库
  18. 人脸识别考勤系统有哪些功能?嘉上物联全都有
  19. 小米android在哪里,教大家安卓手机小米miui10远程协助在哪里进入
  20. vue table获取复选框选中数据

热门文章

  1. 苹果手机如何上传文件到服务器,有限条件下,如何将IPhone手机照片传到Windows电脑中?...
  2. Java FTP 下载文件和文件夹
  3. 二维vector初始化方法
  4. 2020年Spring学习笔记目录
  5. TC与CATIA集成使用说明
  6. mongodb的基本使用_万金油_新浪博客
  7. 值得收藏!深度报告解读NB-IoT
  8. 搜罗到一个简洁、支持免费听和下载全网音乐的网站
  9. vue官网中文文档下载,vue官网最新版本下载
  10. js登录界面使用ajax连接数据库,js用ajax连接数据库数据