给产品组开发的一个PYQT工具,用来播放视频,并能进行截图操作等,一开始我用的PYQT自带的phonon库实现的,比较简单,视频截图则通过代码调用Windows截图,效果不是很好,后来测试同事想让视频播放可以快进,调研了网上,几乎没有比较好用的,后来发现海康官网(https://www.hikvision.com/cn/download_more_406.html)提供的HIK 播放库就有快进慢放功能,于是考虑将其集成到自己的工具上来,其实比较简单,就是通过Python来加载该库的dll文件,然后调用其中的函数接口即可,具体实现过程如下:
目前的问题
- 自开发工具采用pyqt自带的phonon库实现的视频播放功能,没有快进功能。
- 视频播放需要展示智能人脸跟踪框,phonon库无法满足。
- 工具的视频截图功能体验较差,图片不太清晰。
实现过程
- 初始化PlayCtrl播放库
通过ctypes库加载dll动态链接库,进行初始化PlayCtrl库操作,后续就可以直接调用PlayCtrl库中的接口进行操作。
- 编写播放控制等函数
开始播放
播放截图
快放
- 定义播放线程类video_mythread
该类用来提供所有与播放相关的函数,比如播放控制,进度条展示,播放速度展示,播放过程操作记录展示等。
- 设置进度条
通过不断获取播放时间进度进行进度条控制,同时,当用户拖动进度条时,可以计算拖动的进度进行播放进度跳转。
- 工具上播放视频
通过信号传递联动播放进度条以及播放速度展示,通过开启播放线程进行播放。
- 实现结果
通过PlayCtrl库实现了快放慢放功能,还可以展示人脸跟踪框,并且截图更清晰,极大的完善了工具的视频播放功能。
播放效果展示: