首页| 论坛| 消息

标题:Qt编写linux上视频流播放器(支持海康大华宇视等各种网络摄像机)
作者:liudianwu
日期:2022-11-11 10:53
内容:

## 一、前言
在windows上的视频流播放器有很多,而且各个监控厂家无论大厂还是小厂,基本上都提供了客户端,甚至很多第三方的监控平台软件厂商,也都提供了windows的版本,基本的都没有提供linux版本和mac系统版本,在当下国产操作系统(以linux内核为主)强势推进的大环境下,越来越多的需求是需要在linux对接视频监控设备,于是借助Qt这个超级强大跨平台的开发工具,直接移植到linux系统mac系统即可,顺带还有国产系统的视频监控系统平台。
移植最大的难点是如何兼容各大linux系统,经历过长达好几年的摸索探索,最终发现找一个低版本的linux系统安装低版本的Qt开发环境,静态编译可执行文件,ffmpeg动态库,这种组合适用硬件平台相同的所有linux系统,唯独位数不一样,32位和64位的要分别提供,而且不需要安装,绿色版运行,对可执行文件做了rpath设置,解压出来双击就能运行。
## 二、功能特点
### 2.1 基础功能
1. 支持各种音频视频文件格式,比如mp3、wav、mp4、asf、rm、rmvb、mkv等。
2. 支持本地摄像头设备,可指定分辨率、帧率。
3. 支持各种视频流格式,比如rtp、rtsp、rtmp、http等。
4. 本地音视频文件和网络音视频文件,自动识别文件长度、播放进度、音量大小、静音状态等。
5. 文件可以指定播放位置、调节音量大小、设置静音状态等。
6. 支持倍速播放文件,可选0.5倍、1.0倍、2.5倍、5.0倍等速度,相当于慢放和快放。
7. 支持开始播放、停止播放、暂停播放、继续播放。
8. 支持抓拍截图,可指定文件路径,可选抓拍完成是否自动显示预览。
8. 支持录像存储,手动开始录像、停止录像,部分内核支持暂停录像后继续录像,跳过不需要录像的部分。
9. 支持无感知切换循环播放、自动重连等机制。
10. 提供播放成功、播放完成、收到解码图片、收到抓拍图片、视频尺寸变化、录像状态变化等信号。
11. 多线程处理,一个解码一个线程,不卡主界面。
### 2.2 特色功能
1. 同时支持多种解码内核,包括qmedia内核(Qt4/Qt5/Qt6)、ffmpeg内核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5)、vlc内核(vlc2/vlc3)、mpv内核(mpv1/mp2)、海康sdk、easyplayer内核等。
2. 非常完善的多重基类设计,新增一种解码内核只需要实现极少的代码量,就可以应用整套机制。
3. 同时支持多种画面显示策略,自动调整(原始分辨率小于显示控件尺寸则按照原始分辨率大小显示,否则等比例缩放)、等比例缩放(永远等比例缩放)、拉伸填充(永远拉伸填充)。所有内核和所有 ..

回复 发表
主题 版块