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

这篇具有很好参考价值的文章主要介绍了移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、各播放器简述

1、ExoPlayer

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

star fork issue
20.5k 5.9k 723

跨平台特性:只支持 Android

优点:

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

缺点:

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

2、ijkplayer

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

star fork issue
31.2k 8k 2.7k

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

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

缺点:

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

3、VLC

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

star fork issue
10.5k 3.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

star fork issue
1.6k 458 /

跨平台特性:跨平台,支持 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

star fork issue
1.4k 2.7k 5

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

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

缺点:

  • SmartPlayer 是商业软件,需要购买授权才能使用
  • 在某些特定的硬件和软件平台上可能存在兼容性问题

二、播放器选型结论

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

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

不选择其他的原因:文章来源地址https://www.toymoban.com/news/detail-482025.html

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

到了这里,关于移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源音乐播放器!

    导读 音乐是生活的一部分。维基百科关于音乐发展历史的文章有这样一段不错的描述说:“全世界所有的人们,包括哪怕是最孤立、与世隔绝的部落,都会有自己的特色音乐……”好吧,我们开源人就构成了一个部落。我建议我们的“音乐形式”应该包括开源音乐播放器。

    2024年02月08日
    浏览(27)
  • Html5播放器按钮在移动端变小的问题解决方法

    Html5播放器按钮在移动端变小的问题解决方法 用手机浏览器打开酷播云视频,有时会出现播放器按钮太小的情况,此时只需在head中加入下面这段代码即可解决: meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1, maximum-scale=1,minimum-scale=1,user-scalable=no\\\" Html5播放器按钮  Html5播放

    2024年02月14日
    浏览(27)
  • 开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化

    本文介绍,开源播放器GSYVideoPlayer的简单介绍及播放rtsp流的优化 github地址: https://github.com/CarGuo/GSYVideoPlayer 让我们看看介绍: 视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS支持,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动

    2024年02月06日
    浏览(34)
  • 开源html播放器Plyr 2.0.12自述文件

    A simple, accessible and customizable HTML5, YouTube and Vimeo media player. Donate to support Plyr Checkout the demo We wanted a lightweight, accessible and customizable media player that supports modern browsers. Sure, there are many other players out there but we wanted to keep things simple, using the right elements for the job. Accessible - full support

    2024年04月12日
    浏览(29)
  • 开源小项目 - 基于无源蜂鸣器实现的音乐播放器

    目录 一、音乐简谱相关知识 1、音符 2、音调 3、识读简谱 1. 找到简谱中C调的音符对应的蜂鸣器频率(确定音调对应的频率) 2. 确定蜂鸣器演奏一拍所需的时间(即确定一个音调对应的节拍数) 3.创建结构体确定一个音符所需的两个属性(音调频率、节拍数) 4.将《两只老虎

    2024年03月10日
    浏览(32)
  • 推荐一款好用的开源视频播放器(免费无广告)

    mpv是一个自由开源的媒体播放器,它支持多种音频和视频格式,并且具有高度可定制性。mpv的设计理念是简洁、高效和功能强大。 软件特点: 1. 开源、跨平台。可以在WindowsLinuxMacOSBSD等系统上使用,完全免费无广告。Windows版解压即用,绿色便携。 2. 兼容性好。支持绝大多

    2024年02月11日
    浏览(31)
  • 挑选几款开源的、优秀的H.265网页播放器,进行特征整理及使用评价

    H265和H264都是视频编码规范,H265是新一代视频编码规范,与H264相比压缩比更高,同样的码率下视频质量更高,或者说同样质量的视频占用的带宽和存储更少。之前由于终端支持有限,h265的推广使用一直较为缓慢,最近随着越来越多的设备终端开始支持H265,H265的使用范围在迅

    2024年02月04日
    浏览(28)
  • 【Navidrome 开源音乐服务器】手把手教你打造属于自己的音乐播放器随时随地想听就听

    目录 1. 前言 2. Navidrome网站搭建 2.1 Navidrome下载和安装 2.1.1 安装并添加ffmpeg 2.1.2下载并配置Navidrome 2.1.3 添加Navidrome到系统服务 2.2. Navidrome网页测试 3. 本地网页发布 3.1 cpolar的安装和注册 3.2 Cpolar云端设置 3.3 Cpolar本地设置 4. 公网访问测试 5. 结语 不知从何时开始,我们能用的音

    2023年04月19日
    浏览(54)
  • csf格式手机播放器(安卓csf格式播放器)

    手机播放视频文件的方法: 1.使用手机自带的安卓播放器播放即可。 2.如果您的手机不支持所播放的视频文件格式,请下载第三方视频播放器播放。播放这种格式,需要下载一个CSF转化器的CSF编译软件,软件名字叫ScenicEditor。 另外也可以直接用格式工厂转换,将CSF直接转换成

    2024年02月10日
    浏览(39)
  • Android 13.0 系统多个播放器app时,设置默认播放器

     在13.0的系统产品开发中,对于在系统中有多个播放器的时候,这时候如果调用代码打开播放器,会出现多个播放器列表让用户 选择启动哪个播放器,所以产品开发需求需要设置默认播放器,当打开播放器的时候,就直接打开播放器就可以了,所以就需要 了解查询播放器列

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包