ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-27 20:00:49  阅读:511  来源: 互联网

标签:播放器 ijkPlayer MediaPlayer VLC modules ExoPlayer Android


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


————————————————
版权声明:本文为CSDN博主「唐诺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhijiandedaima/article/details/119734586

标签:播放器,ijkPlayer,MediaPlayer,VLC,modules,ExoPlayer,Android
来源: https://www.cnblogs.com/javalinux/p/16200327.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有