移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)

您所在的位置:网站首页 因版权原因不支持声音播放 移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)

移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)

#移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)| 来源: 网络整理| 查看: 265

一、各播放器简述 1、ExoPlayer

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

starforkissue20.5k5.9k723

跨平台特性:只支持 Android

优点:

接入包体积小,1.1M护团队强大,更新速度快

缺点:

不跨平台,不太适合直播可扩展性一般,视频软解接入较麻烦适合播放场景简单的项目,播放过程中无切换码流的情况 2、ijkplayer

ijkplayer 是 Bilibili 公司开源的播放器,基于 FFmpeg 开发, 支持 Android 的 MediaCodec、iOS 的 VideoToolBox 硬解码,可以实现软硬解码自由切换,同时得益于 FFmpeg 的能力,也能支持多种流媒体协议,多种音视频编码格式,具有很高的灵活性,可以定制实现自己特色的播放器。 Github : https://github.com/bilibili/ijkplayer

starforkissue31.2k8k2.7k

跨平台特性:跨平台,支持 Android/iOS 优点:

结构比较简单,基本以 ffplay 展开,入手相对简单包体积比 VLC 小应用比较广泛, issue 和资料比较丰富

缺点:

可扩展性较差,基本上没有提供 modules 供开发者二次开发官方目前基本不维护,不更新 3、VLC

VLC 是 VideoLAN 计划所研发的工程,最早于 1996 年开始,是一个完全的跨平台播放器。VLC 的整体框架是设计成一套 module 的管理机制,将功能分类并抽象成 modules。 Github : https://github.com/videolan/vlc

starforkissue10.5k3.3k/

跨平台特性:跨平台,支持 Android/iOS/MacOS/Windows/Linux/BSD/Haiku 优点:

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

缺点:

Android 平台编译出的包较大,有 16M 左右;在 Android 平台上可能存在性能问题,需要优化 4、GStreamer

GStreamer 是一个跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。 Github :https://github.com/GStreamer/gstreamer

starforkissue1.6k458/

跨平台特性:跨平台,支持 Android/iOS/Windows/Linux 优点:

GStreamer 框架是基于插件的,它的可插入组件能够很方便的接入到任意的管道当中结构清晰,具有灵活的可扩展性:所有的 GStreamer 对象都可以采用 GObject 继承的方法进行扩展,所有的插件都可以被动态装载。

缺点:

使用起来较为复杂性能差,包体积较大 5、SmarterPlayer

SmarterPlayer 是大牛直播出品的业内为数不多致力于极致体验的超强全自研跨平台流媒体内核,通过模块化自由组合,支持实时 RTMP/RTSP 推流、RTMP/RTSP 播放器、录像、多路流媒体转发、音视频导播、动态视频合成、音频混音、直播互动、内置轻量级 RTSP 服务等,比快更快,业界真正靠谱的超低延迟直播 SDK(1 秒内,低延迟模式下 200~400ms)。 Github : https://github.com/daniulive/SmarterStreaming

starforkissue1.4k2.7k5

跨平台特性:跨平台,支持 Android/iOS/Windows/Linux 优点:

支持多种常见的流媒体协议,例如 HLS、RTMP、FLV 等提供了多种播放器皮肤和自定义选项支持 P2P 网络协议,可以实现点播和直播功能

缺点:

SmartPlayer 是商业软件,需要购买授权才能使用在某些特定的硬件和软件平台上可能存在兼容性问题 二、播放器选型结论

在选型上我个人比较倾向于选择 ijkplayer,理由如下:

ijkplayer 基于 ffmpeg,软解效果非常好,可以配置想要支持的协议,项目本身也使用 ffmpeg ,可以复用,新增的包体积较小ijkplayer 移动端跨平台,满足双端需求,并且支持 Android 的 MediaCodec、iOS 的 VideoToolBox 硬解码,可以实现软硬解码自由切换ijkplayer 相对简单,资料比较丰富,入手相对较快针对官方不更新的问题,长远来看,可以基于 ijkplayer 逐渐演化迭代改造成自己的播放器

不选择其他的原因:

VLC 为了兼容所有的平台,有些库选择的不是非常合理,导致 Android 平台编出来的包很大VLC 代码虽然高度解耦,但是用到了很多不常见的库,学习成本较大ExoPlayer 只支持 AndroidGStreamer 使用起来复杂,包体积大SmarterPlayer 需要购买授权


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3