媒体播放工具,这里主要指视频播放,因为要面临庞大的兼容性和纷繁复杂的算法,从架构上看,能脱颖而出的体系屈指可数。大体来说业界主要有3大架构:MPC、MPlayer和VLC。这3大架构及其衍生品占领了90%的市场,凡是用户能看到的免费媒体播放软件,无一不是源自这3大架构。

MPC-HC架构
MPC(Media Player Classic)和它的后续者MPC-HC应该并列而说。MPC基于DirectShow架构,是Windows系统下元祖级别的播放器。包括KMP之流最早也就是抄来MPC的代码再换个界面。MPCHC则在MPC的原作者Gabest渐渐退出开发后的继承者,MPCHC有很多创新特性,包括开始融入ffmpeg和支持更多DirectX特性和DXVA等等。

优点:更直接的支持DXVA,对一些稀奇古怪的Windows平台上的格式可以通过调用第三方的Filter组件等,拥有更好的兼容性
缺点:有人说DirectShow是Windows中最难掌握的SDK,开发复杂;DirectShow允许第三方封装的特点也让兼容性和稳定性问题复杂化;第三方Filter出现异常时非常难以分析处理,更难以复用;
射手播放器的架构主要来自MPC-HC,但更多的融合了FFmpeg的优势,对DirectShow Filter进行了多处改写,大大加强了对ffmpeg的利用,提高了解码稳定性,同时扩展了解码能力和兼容性。

mplayer架构
如果说MPC是Windows上的元祖,那么mplayer就是linux上媒体播放的元祖了。mplayer使用ffmpeg作为解码核心,也是与ffmpeg结合最紧密的项目,ffmpeg的代码就是由mplayer来host,开发者群也有非常大的交集。借助linux开发/使用者的强大实力,mplayer建立了要比DirectShow稳定的多的工作流程。超越ffmpeg本身的功能外,后来又通过反向工程使之可以调用Windows上的DirectShow Filter DLL,让mplayer架构越来越吸引人,成为兼具稳定性和性能的优秀作品。

优点:稳定,兼容性也可以说相当不错
缺点:代码结构不清晰;纯C语言开发,难于阅读;显卡硬件加速还需要越过更多障碍

VLC架构
VLC是个后起之秀,开发速度的进展可以说是一只奇葩。虽然同样基于ffmpeg,但可能是相对于“左三年右三年缝缝补补又三年”的mplayer架构来说,VLC的架构在设计之初就很好的考虑到模块化开发,所以使它更吸引年轻的开发人员。成为近年发展非常快的架构。

优点:稳定,兼容性也可以说相当不错
缺点:纯C语言开发,难于阅读;硬件加速略有障碍
很多人都会发现,3大架构中都可以看到ffmpeg的名字。 说起ffmpeg,那真是”One Ring to rule them all,One Ring to find them, One Ring to bring them all“。在#ffmpeg有人和我说过,想不用ffmpeg去写媒体播放器,就像是造汽车而不用车轮。但是ffmpeg本身仅作为命令行工具或类库(常见的如libavcodec)出现。终端用户很少能直接接触到ffmpeg,所以知名度也较小。ffmpeg的详细架构,下次有时间时再续……
*注1:所有优缺点均仅针对架构本身而言
*注2:文中观点为个人意见,仅供参考

【播放器】媒体播放器三大架构相关推荐

  1. 什么都能播放的媒体播放器——Potplayer

    什么都能播放的媒体播放器--Potplayer "它体积小巧.界面简洁.解码功能强大.它是视屏播放器的不二之选!" --来自一个朋友 "Pot Player is by ...

  2. VLC媒体播放器Web插件详细说明

    原文地址:https://wiki.videolan.org/Documentation:WebPlugin/ 简介:使用视频构建网页 该VLC媒体播放器 webplugins是原生浏览器插件,类似于 ...

  3. 易语言html5播放器问题,易语言媒体播放器 - 已处理问题存放区 - 中国红客联盟 - Powered by HUC...

    前几天吧,我们副组长教了个媒体播放器器.所以呢今天我就写这个媒体播放器.好了话不多说,请看源码.不好的话,请多多指教. 组件:高级表格.按钮×2.滑块条×2.时钟.媒体播放. 首先添加一个高级表格组件 ...

  4. 媒体播放器三大底层架构_射手科技zz

    媒体播放器三大底层架构_射手科技 自射手影音推出以来,生活中越来越多的时间开始被代码和各种Bug-Fix淹没.埋头在田里太久,常常会在一时之间忘记身处何方.所以偶尔上来透透气,顺便将一些经验和心得与大 ...

  5. 媒体播放器三大底层架构

    2019独角兽企业重金招聘Python工程师标准>>> 媒体播放工具,这里主要指视频播放,因为要面临庞大的兼容性和纷繁复杂的算法,从架构上看,能脱颖而出的体系屈指可数.大体来说业界主 ...

  6. 仿迅雷播放器教程 -- 媒体播放三大底层架构简析 (3)

    上一个教程中对比了数十种知名播放器,最终选定了VLC和MPlayer,那么这两种谁更胜一筹呢?  我们来看一看射手播放器作者的评价. 来源: <http://blog.splayer.org/i ...

  7. jwplayer html插件,jw player(网页媒体播放器插件) v2017 最新版

    软件标签: jwplayer flash插件 播放器插件 jwplayer是一款功能十分强大的网页播放器,安装此插件后,用户可以使用网页观看各种格式视频,功能有些类似于flash,不过支持的视频格式更 ...

  8. vb毕业设计——基于vb+VB.NET的媒体播放器设计与实现(毕业论文+程序源码)——媒体播放器

    基于vb+VB.NET的媒体播放器设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于vb+VB.NET的媒体播放器设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录: 基于 ...

  9. C#使用APlayer开发自制媒体播放器

    首先简单来了解下什么是APlayer.下面的内容你都可以通过http://aplayer.open.xunlei.com/轻松地进行查看. 引擎介绍 APlayer 媒体播放引擎是迅雷公司从 2009 ...

  10. 【媒体应用:Android平台VLC媒体播放器探索之路系列】之一:VLC播放器开篇

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWells ...

最新文章

  1. python 使用socks 爬虫_python爬虫基础之urllib的使用
  2. php heahd,heaheader phpder 详解
  3. swift-初探webView与JS交互
  4. Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
  5. 1、Power View—使用前的准备
  6. erlang分布式编程模型
  7. c 语言程序设计(清华大学郑莉),C+语言程序设计(清华大学郑莉)十一ppt课件
  8. 面试后要请你吃饭_做了15年HR,面试4千人,发现优秀的会计能将这些题应答如流...
  9. 年度调薪一般涨多少_宁愿辞职也不敢提加薪,心理专家告诉你加薪提多少才合适...
  10. JCreator Error : Invalid path
  11. linux搭建邮件服务器
  12. Nginx 配置域名
  13. kotlin数字与java数字的不同
  14. 转载:Think in AngularJS:对比jQuery和AngularJS的不同思维模式(大漠穷秋)
  15. 各种手机的User-Agent
  16. ios计算机隐藏功能,10个iOS12使用技巧和隐藏功能,让你快人一步成为玩机达人...
  17. java如何优雅的判空
  18. 2019-12-3 《网络安全法》学习
  19. 学习篇 | 浮点数的表示规则
  20. 深度学习数据驱动_3D目标检测深度学习方法数据预处理综述

热门文章

  1. 因创新而更美,永洪科技获大数据产业创新百强
  2. Static Single Assignment(SSA)
  3. 7年阿里Java人教你:秒杀活动就应该这样玩?
  4. Mikrotik路由器(有线)快速设置教程
  5. 阴阳师服务器维护6,《阴阳师》手游6月24日维护更新公告
  6. layui表格时间显示格式
  7. 计算机的硬盘配额如何更改,磁盘配额是什么怎么设置
  8. 18年第十二届东北四省赛
  9. 计算机桌面没有cd驱动器,win10没有cd驱动器怎么办_win10不显示dvd驱动器的解决方法...
  10. android edittext 下划线没了,关于android:如何在EditText中隐藏下划线