基于FFmpeg的C#播放器
功能效果图(wpf编写)
图中功能业务都是独立的,界面可自定义
背景:
公司客户端系统需要播放相关地址视频,采用windows原生播放器内核进行播放,该播放器在进行常规的视频文件播放时没有问题(视频地址为.mp4文件)但是在播放点播地址、文件映射指向地址时无法播放(客户端没有相对应的解码)。由于业务需求、需要开发新的适配播放器
历史:
第一版:Vlc.DotNet.Wpf
Vlc.DotNet.Wpf是一套基于vlc播放器封装的C#源码,实现了播放器一些常规的功能,但是国内vlc相关的文档较少,可维护性较低,该内核播放器在播放某些手机视频时,会出现花屏、卡白的情况(VLC官方播放器同样出现),出现bug很难对其代码进行定位、修改
第二版:Ffmediaelement
市场上面的自主音视频播放器一般都是基于Ffmpeg开源框架进行开发的,在C端上机位的开发中,C#语言的Ffmpeg.Autogen开源框架对Ffmpeg的所有Api进行了封装以便上层调用,使之C#可以直接调用Ffmpeg底层进行音视频开发,偶然下,找到了一个国外友人C#写的一款播放器Ffmediaelement
Ffmediaelement:使用Ffmpeg.Autogen框架基于Ffmpeg底层开发的上机位播放器控件
源码地址:https://github.com/unosquare/ffmediaelement
源码框架基于windows最新的.net5进行的研发,框架代码相对较新,如果需要集成到已经上线的系统中,需要对源代码进行相应修改、重构、降级(主要是语法修改,量不大)适配低版本的.net,源码中也有播放器的实例可以参考,值得推荐