安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程

这篇具有很好参考价值的文章主要介绍了安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文主要从实际的角度去解读和选型
入职新公司,需要做一款涉及到播放器,播放rtsp 流的app,要求到我来选型,并给了我下面三个选择
安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程,Android基础,android
在这之前我只是一名普普通通的安卓应用开发工程师,没有接触过音视频,如果你也和我一样,那么这件事真的太酷啦😝

然后就是为期几天的对比与选型


一、vlc

遇事不决问群友,群友给我推荐了vlc这个开源的播放器,并友好的向我推荐了文章和vlcDemo,我记不得是否是他自己的文章和demo了,这是连接

  • 安卓使用VLC播放视频,实现截图和录制功能
  • android 使用VLC,录像 截图功能,支持rtsp rtmp http SMB 等等。 流媒体,点播视频等等

然后我浏览了vlc的github地址和示例代码的地址,并参考上面两个连接,实现了一个简单的vlcdemo,也对其有了一点简单的了解

优点:

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

缺点:

  • Android 平台编译出的包较大,有 16M 左右;
  • 在 Android 平台上可能存在性能问题,需要优化(这个我没体会到)
  • 根据群友的友好提醒,如果涉及到截图录像的功能要改so,要会c++,我不会,所以算缺点!🐶

最终因为Android 平台编译出的包较大这个缺点,没有采用vlc。😔

二、EXOplayer

然后就是EXOplayer的调研,什么?你问我为什么不先调研其他的,我有我自己的考量好吧,你不要教本安卓开发做事,首先我们排除mediaplayer,因为百度过后基本没有推荐的,然后就是Ijkplayer已经是一个哔哩哔哩不维护的开源项目了,而EXOplayer是谷歌开源的持续维护的,你说我先调研谁?好了,话不多说,我们骑上心爱的🛵,开始。

我先找到EXOplayer的github地址 :https://github.com/google/ExoPlayer

然后找到文档:https://exoplayer.dev/

然后就狗血的发现啊这个EXOplayer啊,他套娃

安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程,Android基础,android
这是什么❔,这是谷歌找安卓,老爹找儿子🐶;

然后我又去安卓官网看:https://developer.android.google.cn/guide/topics/media/exoplayer?hl=zh_cn安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程,Android基础,android

好好好,你官方这么玩是吧❔,我整个一看下来,发现EXOplayer的最新依赖已经带media3的前缀了,前面几个版本还有前缀不同的代码相同的库,玩的是真滴花啊,又长见识了(更正,出现杨奇怪的场景是因为带Google前缀的exoplayer将要被废弃,新的EXOplayer被整合到media3中)

说了那么多其实都是插曲,工作赚钱嘛,不寒碜,最后我又学习并实现了用EXOplayer播放视频和自定义实现播放器界面,发现如果只是身为一个api高级调用师的话,其实使用方法都是大差不大的,这个时候我对播放器心里大概就有个底了。

再说下EXOplayer的优缺点:
优点:

  • 接入包体积小,1.1M
  • 护团队强大,更新速度快
    缺点:
  • 跨平台,不太适合直播
  • 可扩展性一般,视频软解接入较麻烦
  • 适合播放场景简单的项目,播放过程中无切换码流的情况

虽然说上手起来简单,包体积又小,现在还纳入了安卓官方文档,但是不太适合直播,我们的需求是实时播放一个rtsp流的视频,并且播放场景有一定复杂度,所以最后选择放弃😔

三、Ijkplayer

我们老规矩,首先是找github地址 :https://github.com/Bilibili/ijkplayer

了解过后,我同样实现了一个demo,基础使用都差不多,就是so要不然自己编译,要不然在网上找下别人编译好的,还有一件事(老爹说的不是我说的)就是有一些版本是有问题的,使用的时候最好看下,总得体验下来对于我来说就是引入的时候是最麻烦的。

优点:

  • 包体积比 VLC 小
    -资料比较齐全(但我个人认为这也是一个缺点,到处都是问题)

缺点:

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

但是因为Ijkplayer支持rtsp,所以如果没有更好的选择就决定采用了,直到我发现了宝藏和本篇文章的主角GSYVideoPlayer

四、GSYVideoPlayer🔥🔥🔥

github地址: https://github.com/CarGuo/GSYVideoPlayer

让我们看看介绍:
视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS支持,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频本身自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,直接添加控件为封面,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,其他一些小动画效果,rtsp、concat、mpeg。(总结,高端大气上档次)
让我们看看作者:
安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程,Android基础,android
曾经有人和我说过,在中国做安卓开发不认识这个人,就不要说自己是安卓开发🐶

让我们看看文档:
安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程,Android基础,android
现在,告诉我你们的答案!🎇🎆✨🎇🎆✨🎇🎆✨(郭神o( ̄▽ ̄),我爱你我要xxxxx)
咳咳,开个小小的玩笑

因为地址在这里了,要是github没有条件的可以去https://gitee.com/CarGuo/GSYVideoPlayer看下文档我就不详细介绍了,我拉了项目过后自己改吧改吧,用的很满意,最终决定使用GSYVideoPlayer来开发项目

优点

  • 支持好几种开源播放器,集大成者
  • 可以按需引用所需要的依赖,这样一来包体积不会太大
  • 作者维护很勤快,有什么问题issues,作者也会帮忙看看
  • 文档写的很清楚不需要额外查资料,实在不懂代码拉下来一跑,对照着代码基本上就能理解了

缺点:

-有一些版本对应会有不同的问题,比如我使用的时候用了最新的依赖,按照文档不能播放rtsp流,降低了依赖过后就可以播放了

五、其他的开源播放器

本着学习的态度,我期间也看了一些别的开源播放器,和大家一起分享一下

jiaozivideoplayer

https://github.com/Jzvd/JZVideo
知道这个是因为前公司的短视频播放是用饺子改的,我在app上看效果也不是很好,原本好像叫节操,现在改名叫饺子,网友都说难用,所以没有详细尝试,感兴趣的兄弟可以去看看

MediaPlayer

https://developer.android.google.cn/guide/topics/media/mediaplayer?hl=zh_cn
因为原生的MediaPlayer不支持rtsp流,所以我也没有过多的看

QPlayer2

https://github.com/pili-engineering/QPlayer2-Android

七牛播放器的衍生品,原本的七牛播放器已经停止维护,也是因为不支持rtsp流所以没有尝试

SmarterStreaming

https://github.com/daniulive/SmarterStreaming

大牛直播,看起来很牛逼的样子,可惜要收费


总结

在我这个需求下我最终选用了GSYVideoPlayer,但各位朋友们还是要看自己的需求,选用自己适合的三方框架,开发起来才能事半功倍

参考

Ijkplayer、ExoPlayer、VLC播放器综合比较文章来源地址https://www.toymoban.com/news/detail-618405.html

到了这里,关于安卓的播放器对比与选型(vlc,EXOplayer,Ijkplayer,GSYVideoPlayer)详细过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 用VLC开发视频播放器/组件(两种方式:libVLC / VLC-Qt)

    MSVC-2015 Qt 5.14.2 QCreator 参考:心流剑 libVLC 各版本 下载链接 我的下载版本为:3.0.11 sdk/lib文件夹目录 qmake vlc 部分的配置(路径根据自己的修改) 只需要 : libvlc.lib、libvlccore.lib 把 plugins 文件夹、libvlc.dll、libvlccore.dll 复制到 bin_Debug / bin_Release VLC-Qt 下载地址 参考链接1:链接

    2024年02月12日
    浏览(79)
  • 【Android入门到项目实战-- 11.4】—— ExoPlayer视频播放器框架的详细使用

    目录 什么是ExoPlayer 一、基本使用  1、添加依赖项  2、布局 3、Activity 二、自定义播放暂停 1、首先如何隐藏默认的开始暂停和快进? 2、自定义 三、控制视频画面旋转和比例调整 四、全屏放大和缩小 1、双击视频放大缩小 2、按钮放大缩小 五、完整的实现代码 XML Activity   

    2024年02月11日
    浏览(39)
  • 【Ubuntu】Ubuntu20.04下安装视频播放器vlc和录屏软件ssr

    vlc是一款比较简洁的视频播放器,如下所示 安装mpv播放器 ssr是一款比较好用的录屏软件,如下所示

    2024年01月18日
    浏览(30)
  • csf格式手机播放器(安卓csf格式播放器)

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

    2024年02月10日
    浏览(41)
  • 安卓APP源码和报告——音乐播放器

    课   程   设   计   报   告 院 系: 专 业: 题 目: 科 目: 学 生: 指导教师: 完成时间: 目 录 1. 引言1 1.1 目的1 1.2 背景1 2. 需求分析1 3. 系统设计1 3.1总体设计1 3.2功能设计1 4. 系统开发2 4.1源程序清单2 4.2功能实现2 5. 系统测试2 5.1测试方法2 5.2测试实现2 5.3测试结果2

    2024年02月08日
    浏览(32)
  • 安卓手机APP开发__媒体开发部分__播放器的接口

    安卓手机APP开发__媒体开发部分__播放器的接口 目录 概述 组件之间的共同的接口 媒体3的播放的架构 播放器的状态 对改变的监听 当前的播放 定制的播放器实现 一个播放器是你的APP中完成媒体项的播放的组件. 媒体3的播放器接口提供了一个关于播放器处理的功能的总结. 这包

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

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

    2024年02月08日
    浏览(52)
  • Android 中封装优雅的 MediaPlayer 音频播放器,支持多个播放器

    Android 中封装优雅的 MediaPlayer 音频播放器,支持多个播放器实例的示例: 上述代码中,使用 getInstance() 方法获取 AudioPlayer 的单例对象,参数传入 Context 对象。 在 getInstance() 方法中判断单例对象是否为空,如果为空则创建新的 AudioPlayer 对象,否则返回已有的单例对象。 这样

    2024年02月12日
    浏览(34)
  • 学习笔记(1)——粤嵌gec6818实现电子相册,音乐播放器,视频播放器。

    (1)设计一个初始界面,并且设置电子相册,音乐播放器,视频播放器三个触摸按键。 (2)电子相册——能够实现相册的幻灯片功能,实现相册左右滑动切换相片。 (3)音乐播放器实现——切歌,播放和暂停功能。 (4)视频播放器实现——播放、暂停、音量大小、快进倒

    2024年02月11日
    浏览(37)
  • B站播放器播放策略介绍

    AV1 、 HEVC 和 AVC 是目前常用的三种视频编码标准,它们在性能、兼容性和许可方面存在一些差异。下面是这三种编码格式的比较: 1. AV1 (AOMedia Video 1) 效率 :AV1被设计为一种高效的编码格式,比HEVC提供约30%的压缩效率提升。 许可 :AV1是开源和免版税的,这使得它在各种平台

    2024年02月13日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包