ijkplayer、VLC Player、SmartPlayer、ExoPlayer播放器比较

ijkPlayer

ijkPlayer是BiliBili公司维护的一个开源工程,基于ffmpeg开发的一个播放器软件,支持Android和iOS平台,整个ijkplayer就是以ffplay为基础,如果只是使用它进行播放,集成也较为简单,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。支持软硬编解码,支持倍速播放,可以定制化集成需要的功能,集成占用体积也很小,更详细的解释参看下面官方介绍:

Features

  • Common
  • remove rarely used ffmpeg components to reduce binary size config/module-lite.sh
  • workaround for some buggy online video.
  • Android
  • platform: API 9~23
  • cpu: ARMv7a, ARM64v8a, x86 (ARMv5 is not tested on real devices)
  • api: MediaPlayer-like
  • video-output: NativeWindow, OpenGL ES 2.0
  • audio-output: AudioTrack, OpenSL ES
  • hw-decoder: MediaCodec (API 16+, Android 4.1+)
  • alternative-backend: android.media.MediaPlayer, ExoPlayer
  • iOS
  • platform: iOS 7.0~10.2.x
  • cpu: armv7, arm64, i386, x86_64, (armv7s is obselete)
  • api: MediaPlayer.framework-like
  • video-output: OpenGL ES 2.0
  • audio-output: AudioQueue, AudioUnit
  • hw-decoder: VideoToolbox (iOS 8+)
  • alternative-backend: AVFoundation.Framework.AVPlayer, MediaPlayer.Framework.MPMoviePlayerControlelr (obselete since iOS 8)

VLC Media Player

VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。

Plays all formats

MPEG-1/2, DivX® (1/2/3/4/5/6), MPEG-4 ASP, XviD, 3ivX D4, H.261, H.263 / H.263i, H.264 / MPEG-4 AVC, Cinepak, Theora, Dirac / VC-2, MJPEG (A/B), WMV 1/2, WMV 3 / WMV-9 / VC-1, Sorenson 1/3, DV, On2 VP3/VP5/VP6, Indeo Video v3 (IV32), Real Video (1/2/3/4).

MPEG Layer 1/2, MP3 - MPEG Layer 3, AAC - MPEG-4 part3, Vorbis, AC3 - A/52, E-AC-3, MLP / TrueHD>3, DTS, WMA 1/2, WMA 3, FLAC, ALAC, Speex, Musepack / MPC, ATRAC 3, Wavpack, Mod, TrueAudio, APE, Real Audio, Alaw/µlaw, AMR (3GPP), MIDI, LPCM, ADPCM, QCELP, DV Audio, QDM2/QDMC, MACE.

DVD, Text files (MicroDVD, SubRIP, SubViewer, SSA1-5, SAMI, VPlayer), Closed captions, Vobsub, Universal Subtitle Format (USF), SVCD / CVD, DVB, OGM, CMML, Kate.

ID3 tags, APEv2, Vorbis comment.

Advanced formats

 Input Media

UDP/RTP Unicast, UDP/RTP Multicast, HTTP / FTP, MMS, TCP/RTP Unicast, DCCP/RTP Unicast, File, DVD Video, Video CD / VCD, SVCD, Audio CD (no DTS-CD), DVB (Satellite, Digital TV, Cable TV), MPEG encoder, Video acquisition.

 Input Formats

MPEG (ES,PS,TS,PVA,MP3), AVI, ASF / WMV / WMA, MP4 / MOV / 3GP, OGG / OGM / Annodex, Matroska (MKV), Real, WAV (including DTS), Raw Audio: DTS, AAC, AC3/A52, Raw DV, FLAC, FLV (Flash), MXF, Nut, Standard MIDI / SMF, Creative™ Voice.

 Miscellaneous

SAP/SDP announces, Bonjour protocol, Mozilla/Firefox plugin, ActiveX plugin, SVCD Menus, Localization, CD-Text, CDDB CD info, IGMPv3, IPv6, MLDv2, CPU acceleration.

SmartPlayer

SmartPlayer是大牛直播SDK(Github)开发的全自研跨平台(windows/android/iOS)流媒体内核,支持RTSP、RTMP,功能齐全、高稳定、超低延迟,超低资源占用,适用于安防、教育、单兵指挥等行业。如不单独说明,系Windows、Android、iOS全平台支持。

  •  [支持播放协议]RTSP、RTMP;
  •  [多实例播放]支持多实例播放;
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持H.265、H.264,此外,还支持RTSP MJPEG播放;
  •  [音频格式]支持AAC/PCMA/PCMU;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解;
  •  [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解;
  •  [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
  •  [RTSP模式设置]支持RTSP TCP/UDP模式设置;
  •  [RTSP TCP/UDP自动切换]支持RTSP TCP、UDP模式自动切换;
  •  [RTSP超时设置]支持RTSP超时时间设置,单位:秒;
  •  [RTSP 401认证处理]支持上报RTSP 401事件,如URL携带鉴权信息,会自动处理;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:surfaceview/OpenGL ES,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时音量调节]支持播放过程中实时调节音量;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持);
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]支持和录像SDK组合使用。

ExoPlayer

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

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.

Documentation

  • The developer guide provides a wealth of information to help you get started.
  • The class reference documents the ExoPlayer library classes.
  • The release notes document the major changes in each release.

Using ExoPlayer

Via jCenter

The easiest way to get started using ExoPlayer is by including the following in your project's build.gradle file:

compile 'com.google.android.exoplayer:exoplayer:rX.X.X'

where rX.X.X is the your preferred version. For the latest version, see the project's Releases. For more details, see the project on Bintray.

As source

ExoPlayer can also be built from source using Gradle. You can include it as a dependent project like so:

// settings.gradle
include ':app', ':..:ExoPlayer:library'// app/build.gradle
dependencies {compile project(':..:ExoPlayer:library')
}

As a jar

If you want to use ExoPlayer as a jar, run:

./gradlew jarRelease

and copy library.jar to the libs folder of your new project.

总结

ijkplayer结构比较相对比较清晰,可扩展性较差,基本上没有提供modules供开发者二次开发,官方更新比较慢,值得欣慰的是,好多开发者基于ijkplayer做了扩展,填了非常多的坑,往上资料非常多;

VLC对点播的支持比较好,但是工程庞大,接入或二次开发难度比较大;

SmartPlayer对RTSP和RTMP直播播放支持非常优秀,毫秒级延迟,稳定性比较好;

ExoPlayer不太适合直播,视频解码无法接入软解,可扩展性一般,而且只支持Android平台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11系统设置绿色护眼模式的方法

随着Win11系统电脑的逐步推广,Win11系统在市场上的用户量也是越来越大,不少电脑办公群体也是很青睐于使用Win11系统,然而,长时间的办公容易造成视觉疲劳,为此,很多人希望把电脑的显示颜色改成”护眼绿“&am…

浏览器播放RTSP视频流几种解决方案

方案一: H5 websocket_rtsp_proxy 实现视频流直播 Streamedian 提供了一种“html5_rtsp_player websock_rtsp_proxy”的技术方案,可以通过html5的video标签直接播放RTSP的视频流。 整个架构如下图所示,分为服务器端和浏览器端两部分: 方案…

技术员联盟Win11 64位官方全新旗舰版镜像V2021.08

技术员联盟Win11 64位官方全新旗舰版镜像V2021.08以微软官方纯净版作为母盘对系统进行了全面优化更新,用户使用更加流畅顺手,轻松体验到系统的优秀性能,适用目前市场最新机型以及老旧机型,多种安装方式供用户选择,且更…

Android播放器之SurfaceView与GLSurfaceView

先看Surface Surface的官方介绍:Handle onto a raw buffer that is being managed by the screen compositor,Surface是一个raw buffer的句柄,通过它在raw buffer上进行绘制,可以通过Surface获得一个Canvas。 Canvas canvas mS…

几款知名RTMP推流模块比较:OBS VS SmartPublisher VS Flash Media Live Encoder

OBS 功能强大,几乎所有你想要的场景它都有,用起来很顺手。可以将桌面、摄像头、程序窗口通过rtmp推送到流媒体服务器上。 当然如果你是开发者,想基于OBS做二次开发,实现二次产品化的化,难度比较大,OBS代码…

中关村Win11 32位微软原版ISO V2021.08

中关村Win11 32位微软原版ISO V2021.08以微软官方原版作为母盘对系统进行了全面优化更新,支持一键化智能安装,在操作舒适性和便捷性方面进行了优化设计,流畅稳定,系统进行了全面优化,大大降低了发生蓝屏和黑屏的可能&a…

如何用轻量级RTSP服务本地生成RTSP测试URL

最近发现好多开发者都在搜索可用的RTSP测试URL,目前公网实际可测试的RTSP URL非常少,即便是可用,分辨率和网络也非常差,不适合长期测试。 针对此,我们的建议是最好直接网上买个海康或大华的摄像头,一般来说…

Windows平台RTSP|RTMP播放端SDK集成说明

2.1 demo说明 大牛直播SDK提供C/C#两套接口,对外提供32/64位debug/release库,C和C#接口一一对应,C#接口比C接口增加前缀NT_PB_;WIN-PlayerSDK-CPP-Demo:播放端SDK对应的C接口的demo;WIN-PlayerSDK-CSharp-…

微软为Win11用户更新了剪贴工具、计算器以及邮件和日历应用

微软今天宣布为Windows 11的几个预装应用程序推出第一次更新,以下应用程序的更新正在向开发渠道的Windows Insiders推出。微软正在将经典的Snipping Tool和Snip & Sketch合并为一个截屏应用程序,而计算器、邮件和日历都将以新的视觉风格以配合Window…

Windows平台RTMP直播推送集成简要说明

好多开发者在集成大牛直播SDK (官方)的Windows平台RTMP推送模块时吓一跳,怎么这么多接口?本文做个简单的拆分: 初始化 初始化之前,如需设置日志路径,调用NTSmartLog.NT_SL_SetPath(log_path);…

如何实现Android端获取RTSP|RTMP流转推RTMP

技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒介URL,简单来说&…

foxmail地址簿怎么添加分组 foxmail地址簿新建分组的教程

foxmail有很多联系人,想要合理管理联系人,该怎么创建分组呢?下面我们就来看看详细的教程。 1、在进行打开地址簿之后,进行点击选中一个文件夹,然后进行点击"新建组" foxmail地址簿怎么添加分组? foxmail地址簿新建分…

Android平台RTSP轻量级服务|RTMP推送摄像头或屏幕之音频接口设计

好多开发者在做Android平台录像或者RTSP轻量级服务、RTMP推送相关模块时,对需要设计哪些常用接口会心存疑惑,本文主要以大牛直播SDK(官方)为例,简单介绍下Android平台直播推送SDK所有音频相关的接口,感兴趣…

Win7系统更换软件图标的详细方法

Win7系统怎么更换软件图标?相信许多用户会安装很多软件或游戏,并且安装这些软件会在桌面上生成图标,但是一些用户认为某些软件图标不好,因此他们想替换这些图标,但他们不知道怎样做,这里小编就和大家分享Win7系统更换…

QT实现低延迟的RTSP、RTMP播放器

好多开发者在QT环境下实现RTMP或RTSP播放时,首先考虑到的是集成VLC,集成后,却发现VLC在延迟、断网重连、稳定性等各个方面不尽人意,无法满足上线环境需求。本文以调用大牛直播SDK(官方)的Windows平台播放端…

Android对接实现内网无纸化会议|智慧教室|实时同屏功能

背景 本文主要讲的是基于Android平台实现RTMP的技术方案设计,基础架构图如下: 组网注意事项 1. 组网:无线组网,需要好的AP模块才能撑得住大的并发流量,推送端到AP,最好是有线网链接; 2. 服务…

bilibili里的硬币有什么用 硬币的作用详细介绍

很多bilibili中的用户发现自己的账户中拥有很多的硬币,却不知道这些硬币有什么用,下面小编就为大家带来硬币的作用介绍。 bilibili里的硬币有什么用 硬币的作用详细介绍 1、视频评分。向喜欢的视频投硬币以示鼓励(一个视频收到的硬币多了就会被推荐) …

Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览

背景 大家在做Windows平台RTMP推送或轻量级RTSP服务的时候,不管是采集屏幕还是采集摄像头,亦或屏幕摄像头的叠加模式,总会有这样的诉求,采集到的数据,希望能本地看看具体采集的数据或者图像实际效果,也就是…

Outlook2016怎么修改默认数据库

Outlook2016中想要修改默认数据库,该怎么修改呢?下面我们就来看看详细的教程。 Outlook2016怎么修改默认数据库? 1、下载安装outlook软件。 Outlook2016怎么修改默认数据库? 2、双击打开outlook软件。 Outlook2016怎么修改默认数据库? 3、点击“文件”——…

Windows平台RTMP|RTSP播放器为什么要兼容GDI绘制

为什么要支持GDI 先说结论,Windows平台播放渲染这块,一般来说99%以上的机器都是支持D3D的,实现GDI模式绘制,除了为了好的兼容性外,在远程连接的场景下,D3D创建不成功,需要使用GDI模式。 简单来…