一、前语
最开始接触视频监控这块的时候,用的便是vlc作为解码的内核,主要是因为vlc运用简略便利,直接传入一个句柄即可,简略几行代码就可以完成一个视频流播映,很合适初学者运用,也引荐初学者用qt+vlc来做播映器,供给的接口还是非常友好的,并且门类特别多,想要获取媒体文件的各种信息比如宽高,设置宽高比等,直接调用接口函数传入参数就能设置。
所有用vlc做视频监控解码的人都会遇到一个问题,那便是鼠标事情被接管阻拦了,不能辨认鼠标事情,比如双击最大化等,这就很憋屈了,明明很好用的一个东西,怎样突然之间鼠标事情也辨认不到了呢,网上一搜一大把,主要有三个解决办法。
修改vlc源码,重新编译,替换动态库文件。
大局鼠标钩子阻拦鼠标音讯进行处理。
设置句柄今后直接将控件/承受视频渲染的控件禁用掉。
最终采用方法3,完成起来简略快速,修改vlc源码的编译工作量太大了,毕竟vlc依赖一大堆的插件,用vlc的人一般都是初学者半吊子,哪里有能力去编译一遍vlc哦。
二、功用特色
多线程实时播映视频流和本地视频。
支撑windows+linux+mac,支撑vlc2和vlc3。
多线程显示图画,不卡主界面。
主动重连网络摄像头。
可设置边框大小即偏移量和边框颜色。
可设置是否绘制OSD标签即标签文本或图片和标签方位。
可设置两种OSD方位和风格。
可设置是否保存到文件以及文件名。
可直接拖曳文件到vlcwidget控件播映。
支撑h265视频流+rtmp等常见视频流。
可暂停播映和继续播映。
支撑回调形式和句柄两种形式。
支撑线程读取进度等信息和事情回调两种处理形式。
主动将当前播映方位和音量大小是否静音以信号发出去。
供给接口设置播映方位和音量及设置静音。
支撑存储单个视频文件和定时存储视频文件。
自定义顶部悬浮条,发送单击信号告诉,可设置是否启用。
三、效果图
四、相关站点
国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
世界站点:https://github.com/feiyangqingyun/QWidgetDemo
个人主页:https://blog.csdn.net/feiyangqingyun
知乎主页:https://www.zhihu.com/people/feiyangqingyun/
体会地址:https://blog.csdn.net/feiyangqingyun/article/details/97565652