一、MPV播放器

MPV是一个基于 MPlayer 和 mplayer2 的开源极简全能播放器。支持各种视频格式、音频解码、支持特效字幕(电影动漫的ass特效字幕都没啥问题),不仅支持本地播放,同样支持网络播放。重点是 MPV 具有多系统平台支持、命令行、自定义、GPU 解码、脚本支持等特点……另外界面简单美观,操作方便,无广告,启动快。

1. 官方网站:https://mpv.io/ 

2. 开源可以用于二次开发,源代码https://github.com/mpv-playerGitHub上有相关源代码:目录结构,到时候直接克隆到本地即可。二次开发较易,因为开发的空间较大,可以定制修改,功能的扩展。)

3. MPV是一个很小众的播放器分支,而且也支持android、ios 、windows、linux 、unix、 mac等主流操作系统和移动平台,它的代码很多来自MPlayer, 为了更好的支持移动平台,整体框架被改写,和MPlayer的风格一样,界面及其简单,设置可以说没有界面,但是对第三方软件的调用支持的非常友好,各种的支持.MPV目前已经被移植到了android , ios平台,虽然在windows平台,mpv还有很多不足,例如有声音无画面等,但是在移动平台,mpv播放器做的很不错,顶多就是影音不同步等小bug,通常通过切换网络协议,例如从ftp切换到http播放,就可以暂时消除这个bug.

4. 安装说明:以Windows为例,下载对应版本,解压之后找到一个install.bat文件,点击这个文件后会自动安装,然后将系统视频播放默认程序改为MPV播放器。卸载点击对应的uninstall.bat文件即可。

5. 界面操作说明

Windows平台测试:

测试结果如下:

1. 不能智能识别文件名,乱码。

2. 加速拖动滚动条,音画同步,字幕同步,没有延迟卡顿。

3. 无法单独调节音量,只能静音或者全音。

4. 将视频文件夹拖入播放器内闪退。

5. 播放暂停正常,无停止键。

6. 有一些快捷键可以控制播放器的相关功能需要查阅相关资料。

 

二、VLC media player

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

1. 官方网站:http://www.videolan.org/

2. 开源可用于二次开发,源代码http://www.videolan.org/vlc/download-sources.html(在Linux平台开发,下载相关的tar.xz,然后解压。功能比较完善,适合作为二次开发对象,可以运用其相应的功能。)

3. 能播放任何内容---文件、光盘、摄像头、设备以及流媒体。

4. 可播放大多数格式,无需安装编解码器包---MPEG-2,MPEG-4,H.264,MKV,WebM,WMV,MP3.........。

5. VLC播放器采用了c++语言开发,支持windows/linux/unix/mac,目前移动平台支持ios android两大系统,VLC的优点在于很成熟,由于采用了现代的c++开发,因此很多最新的技术,更多的开发人员都堆积在了这个项目中,发展的非常快,虽然它是在MPlayer之后才出现的,但是短时间内在功能上就超越了mplayer,并且在移动平台出现后,很轻松的移植到了ios android等系统,同样完整支持流播放,最主要的就是它有一个完整的界面,这对用户,特别是咱中国用户来说,是很受欢迎的。

Windows平台测试:

测试结果如下:

1. 正常显示文件名。

2. 暂停、播放、停止正常,停止后播放正常。

3. 快进、快退、加速拖拉滚动条,音画同步,字幕同步,没有延迟卡顿。

4. 支持文件夹列表播放。

5. 支持位置记忆继续播放功能,在默认情况下,会询问是否继续上次位置播放。

6. 播放器比较完善,功能强大。

 

三、SMPlayer

SMPlayer 是免费媒体播放器,内置解码器,可以播放几乎所有格式的视频和音频文件。无需再安装任何外部解码器。只要安装了 SMPlayer,你就能够播放所有的格式,不用再费事查找安装解码包。

1. 官方网站:http://www.smplayer.info/

2. 开源可用于二次开发,源代码http://www.smplayer.info/zh/downloads(仍然是Linux平台下开发,下载相应的压缩包,解压即可。虽然功能比较完善,但是存在bug,不是很推荐作为二次开发对象。)

3. SMPlayer 可用于Windows 和 Linux不了解是否支持Android、iOS

4. SMPlayer会记住您播放过的所有文件的设置。它将恢复到您离开时的播放位置,并使用相同的设置:音轨、字幕、音量...

5. SMPlayer 是个用于屡获殊荣的MPlayer的图形化界面 (GUI),它能够播放几乎所有已知的视频和音频格式。但除了提供MPLayer的大多数常用命令外 SMPlayer也有一些好玩的特性,例如:支持播放Youtube视频和下载字幕。

Windows平台测试:

 

测试结果如下:

1. 文件名无法智能识别,存在乱码。

2. 播放、暂停、停止正常,但停止后播放存在卡顿。

3. 切换视频存在卡顿,响应慢。

4. 快进、快退、加速拖拉滚动条,音画同步,字幕同步,没有延迟卡顿。

5. 音量可以任意调节。

6. 有些功能存在反应卡顿。

7. 功能较齐全。

 

 

四、MPlayer

MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流操作系统使用,例如Linux和其他类Unix系统、WindowsMac OS X系统。但是移植到android ios等移动平台困难重重,一堆mplayer志愿者就设立了新的分支,这就是mpv播放器。

1. 官方网站:http://www.mplayerhq.hu/design7/news.html

2. 开源不可用于二次开发,源代码:http://www.mplayerhq.hu/design7/dload.html(比较经典的播放器,但是开发难度较大,几乎停止开发,不建议做二次开发。)

3. 安全低消耗,兼容多种格式,另外支持P2P点播。

Windows平台测试:

 

测试结果如下:

1. 智能识别文件名,无乱码,但是加载视频进入播放器比较慢。

2. 播放、暂停、停止正常,但停止后播放存在卡顿。

3. 快进、快退、加速拖拉滚动条,音画同步,字幕同步,没有延迟卡顿。

4. 音量可以任意调节。

5. 不能列表播放,只能单个添加进去播放。

6. 功能比较少。

 

五、用户行为的埋点说明

参照微信公众平台对视频数据的统计分析,然后分别对四款开源播放器的以下几个方面进行相关的调研,得出以下结论:

1. MPV播放器

①用户拖拽:用户开始拖动进度条的位置点至用户停止拖动进度条的位置点,MPV播放器界面简单,支持网络播放,另外GitHub上面代码文件夹分类明确,可以在原有基础之上实现用户拖拽(用代码分别识别拖拽起点、终点)

②用户完播率:MPV内置编解码器对视频完美编解码(提前将视频编解码至缓冲区,然后等待播放),当然也可以满足此需求

③用户播放时长:现在的视频播放时间基本控制在3小时以内(包括电视剧、电影),当然直播除外,MPV架构比较稳定,性能强大,对播放时长没有限制,可以完成相应需求

④是否可以加入互动广告:MPV播放器整体架构比较简洁,连 GUI 界面都没有提供,直接通过命令行或配置文件设置,这样只需要将广告的链接嵌入其中进行相应配置即可。所以可以加入互动广告(当用户暂停播放时)。

说明:可以自定义相应功能。 

2. VLC media player

①用户拖拽:VLC源代码里的Control函数有获取拖拽起点的时间位置参数以及终点的时间位置参数,然后获取拖拽的总时长,在这个区间进行测试。因此可以满足此需求。

②用户完播率:VLC具有记忆功能,自动上次播放的位置,更好的支持用户的播放体验,性能也是很完美。因此满足此需求。

③用户播放时长:同上,Control函数有控制时长参数。此项需求亦满足。

④是否可以加入互动广告:可以。做一个联动控制,在播放视频前或者暂停时引入,看需求。

3. SMPlayer

①用户拖拽:满足。基于MPlayer的图形化界面,也可以很好的捕捉拖拽起终点。

②用户完播率:满足。(不多解释,同上,因为它会记住您播放过的所有文件的设置。)

③用户播放时长:满足。(不多解释,同上,因为内置解码器,完全识别视频时长。)

④是否可以加入互动广告:不能加入。因为SMPlayer本身不能播放多媒体文件,它需要多媒体引擎的支持(MPlayer、MPV)。

4. MPlayer

①用户拖拽:满足。不同平台有不同的图形化界面,也可以很好的捕捉拖拽起终点。

②用户完播率:不满足。因为自身BUG导致播放时,不能完整播放。

③用户播放时长:满足。(不多解释,同上,因为内置解码器,完全识别视频时长。)

④是否可以加入互动广告:可以。因为其本身也自带广告(暂停或停止时),只需改变广告相应地址。

 

六、总结

1. 经过自己的了解以及测试,可用于二次开发比较好的播放器有MPV、VLC。但首推VLC,因为技术比较成熟,有许多程序员将其作为开发对象,所以适合做为二次开发。

2. 备注:同样结合七牛云DEM文档说明,发现做埋点信息的时候,需要对这几款播放器做相应的测试,在我们实现用户拖拽、用户完播率、用户播放时长、是否可以加入广告等等用户需求的时候,是否存在BUG、是否很好支持PC端、移动端。这些需要我们在开发的时候做相应的监控调试,才能达到我们的需求。

Scroll to top