视频播放工具,因为要面临庞大的兼容性和纷繁复杂的算法,从架构上看,能脱颖而出的体系屈指可数。大体来说业界主要有3大构架:MPC、MPlayer和 VLC。这3大架构及其衍生品占领了90%的市场,凡是用户能看到的免费媒体播放软件,无一不是源自这3大架构。
MPC/HC(Windows)
MPC(Media Player
Classic)和它的后续者MPC-HC应该并列而说。MPC基于DirectShow架构,是Windows系统下元祖级别的播放器。包括KMP之流
最早也就是抄来MPC的代码再换个界面。MPC-HC则是MPC的继承者,MPC-HC有很多创新特性,包括开始融入ffmpeg和支持更多
DirectX特性和DXVA等等。
MPlayer(Windows,GUN/Linux,Mac OS X)
如果说MPC是Windows上的元祖,那么MPlayer就是Linux上媒体播放的元祖了。
MPlayer使用ffmpeg作为解码核心,也是与ffmpeg结合最紧密的项目,ffmpeg的代码就是由MPlayer来host,开发者群也有非常大的交集。
借助Linux开发/使用者的强大实力,MPlayer建立了要比DirectShow稳定的多的工作流程。超越ffmpeg本身的功能外,后来又通过反
向工程使之可以调用Windows上的DirectShow Filter
DLL,让mplayer架构越来越吸引人,成为兼具稳定性和性能的优秀作品。
VLC(Windows,Mac OS X,GUN/Linux,Other Systems)
VLC是个后起之秀,开发速度的进展可以说是一只奇葩。虽然同样基于ffmpeg,但可能是相对于“左三年右三年缝缝补补又三年”的MPlayer架构来
说,VLC的架构在设计之初就很好的考虑到模块化开发,所以使它更吸引年轻的开发人员。成为近年发展非常快的架构。
====================================================================
很多人都会发现,3大架构中都可以看到ffmpeg的名字。 说起ffmpeg,那真是“One Ring to rule them all,One Ring to find them, One Ring to bring them all”。
约有70%普通的用户都要直接或间接的通过ffmpeg解码视频,包括暴风影音、QQ影音、KMPlayer、PotPlayer