花了四天时间用VLC解决方案实现了这个Winform播放器,开发之初是因为迅雷看看非常讨厌,动不动弹广告让人不胜其烦,于是就对标迅雷播放器,开发了这款自己的播放器。

所谓双模式是指:

1、可以播放本地媒体文件,常见格式都支持:mp3、mp4、mkv、mpg、wmv、flv等等……

2、支持播放网络视频流rtsp协议,这也是促使我开发这个播放器的另外一个原因,rtsp、rtp等在线流媒体协议被广泛使用在:直播、监控等领域,我认为还是有必要做一些知识储备的。

视频领域全球两大解决方案:FFmpeg和我今天用的VLC,都是非常牛逼的多媒体解决方案,我还没资格去比较人家的优劣。

开始展示我的软件:

vlc插件的功能(Winform实现的一个双模式媒体播放器)(1)

本地播放模式的界面

vlc插件的功能(Winform实现的一个双模式媒体播放器)(2)

直播流模式的界面

有些朋友可能对直播流这个领域不太熟悉,这么说吧:网络直播、监控等行业你能看到的实时画面都是通过直播流这个方法进行的,换句话说你通过抓包工具,抓到直播软件的视频源,一样可以在这个播放器里看小姐姐跳舞。当然了抓包软件抓监控地址,在这里看也没问题。

为啥要在自己的播放器上看呢,其实主要是为了后期的二次开发,比如做视频墙、各种深加工、录像、识别、轨迹跟踪等等。

vlc插件的功能(Winform实现的一个双模式媒体播放器)(3)

支持音轨选择

音轨部分费了我很大的功夫,国内那C*DN心已经黑心了,大多数都是垃圾文章,少部分有价值的内容,你要掏钱才让你看,结果付了钱一看更垃圾。音轨功能是我反编译人家的类库,找到了一点蛛丝马迹,然后去官网翻文档搞定的。

你千万别小看一个播放器,似乎就那么几个按钮,这里面真是有大学问呢。web开发人员给网页里嵌一个video标签万事搞定,应用程序开发可完全不是这么回事儿。

vlc插件的功能(Winform实现的一个双模式媒体播放器)(4)

官网各种各样的方法,一个连一个的依赖让人发疯

vlc插件的功能(Winform实现的一个双模式媒体播放器)(5)

我的代码片段

vlc插件的功能(Winform实现的一个双模式媒体播放器)(6)

连续快照功能测试

vlc插件的功能(Winform实现的一个双模式媒体播放器)(7)

快照测试

做完以后我喜悦了一会儿,更多的是陷入了沉思。我干的这个活儿相比一般的信息化项目“增、删、改、查”而言,算是很复杂了,但再复杂说到底也是个套壳而已。20年前我很欣赏那些软件大神,一会儿做这个软件、一会儿实现那个软件。到后来入行越深,越发现自己的无知。

咱们国家在软件行业真的非常贫瘠,其实和芯片一样的贫瘠。市场上能看到的(除了信息化软件,那些增删改查的花活实在不值一提外),大多数商业软件基本都是空白。只是软件行业的发展让你有种国产软件崛起的错觉而已,之前老外开发软件当产品卖给你,让你觉得受制于人了。现在老外给你提供的是dll和各种类库、框架、工具包、各种协议、各种解决方案。这回可倒好,自己套个壳儿就意淫成了这东西是自己的了,这碗迷魂汤一吃就是十多年,表面上我们国产软件欣欣向荣百花齐放,事实上我们的软件产业更加落后了。

国内所有的播放器用的基本都是FFmpeg或VLC内核、所有浏览器用的都是谷歌内核、所有压缩软件用的都是rar或7zip算法。随着前后端分离理念的深入,几乎所有软件都能套壳,甚至连windows和office也不例外(官方教你套壳二开的文档无比详细),绝对迎合你喜欢扒皮换脸的需求。这都是你能看到的,还有那些你很少注意到的解决方案类的、协议类的,例如:BT协议、电驴协议、各种工业应用的协议等等……

从桌面应用说到web应用,现在无处不在的框架、类库让我们很多程序员迷失了。这几年随着python的火热,有句话也被很多人津津乐道:“不要重复造轮子”。你仔细品咂过这句话么?你觉不觉得这像一碗甜蜜的迷魂汤?

你冷静地想想:你是不会造轮子而用别人的轮子呢?还是你会造轮子因为懒得动手而去用别人的轮子?另外,你有没有自己的轮子?

迷魂汤喝多了人会残废的,练武之人招数学会了,依然要每天练功。程序员也不例外吧?

关注我的朋友知道:前几天我实现一个音乐播放器(调音台)也是用第三方的解码器实现的。 那阵子我的初衷是从设计音乐文件的编码、到压缩算法、到播放器的解码、播放、音色处理、到声卡硬件的各种优化、虚拟驱动、windowsDirectX等相关知识、音乐领域相关知识。我身边的大牛说真的不少,但听到我的需求后连讨论的勇气都没有。这个想法后来也就流产了,退而求此次做了那个调音台。

灵魂一问:20年前的mp3播放器winamp,让你你徒手从零开始 你能搞定么?这还仅仅是个可有可无的音乐播放器,其他的专业应用软件,我去年推了一单,我根本就搞不定(我42岁的一线开发者,我完全无招架之力)

事儿是这样的:一个医学院要做一款化学药剂仿真软件,简单地说就跟美国灾难电影里那些教授用电脑配药水,某种药水和某种配在一起会有什么结果,通过屏幕反应出来。 你能搞定么?或者有思路么? 是的,我和你一样一脸懵逼……

西安疫情加过年将近两个月,我几乎每天都在磨刀,做点小软件把思路再打开一点,把知识再融会贯通一下,为以后做个空白领域的应用做个准备。 我一直都没想明白一个问题,人家老外一两个人在车库里捣鼓几个月,动不动就能出一款填补空白的产品,我们难道是缺个车库么?

vlc插件的功能(Winform实现的一个双模式媒体播放器)(8)

寄语:希望与真正的开发者做朋友

,