Qt/C++视频播放综合应用示例
简介
本资源文件提供了一个由Qt/C++编写的视频播放综合应用示例。该示例集成了多种视频播放内核,包括qmedia、ffmpeg、vlc、mpv、海康sdk和easyplayer等,旨在展示如何利用这些内核实现视频播放功能。
功能特点
- 基础功能
- 支持多种音频视频文件格式,如mp3、wav、mp4、asf、rm、rmvb、mkv等。
- 支持本地摄像头设备,可指定分辨率、帧率。
- 支持各种视频流格式,如rtp、rtsp、rtmp、http等。
- 自动识别文件长度、播放进度、音量大小、静音状态等。
- 支持倍速播放文件,可选0.5倍、1.0倍、2.5倍、5.0倍等速度。
- 支持开始播放、停止播放、暂停播放、继续播放。
- 支持抓拍截图,可指定文件路径,可选抓拍完成是否自动显示预览。
- 支持录像存储,手动开始录像、停止录像。
- 支持无感知切换循环播放、自动重连等机制。
- 特色功能
- 同时支持多种解码内核,包括qmedia内核(Qt4/Qt5/Qt6)、ffmpeg内核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5)、vlc内核(vlc2/vlc3)、mpv内核(mpv1/mp2)、监控厂家sdk内核等。
- 支持多种画面显示策略,如自动调整、等比例缩放、拉伸填充等。
- 支持多种视频显示模式,如句柄模式、绘制模式、GPU模式等。
- 支持多种硬件加速类型,如ffmpeg可选qsv、dxva2、d3d11va等,mpv可选auto、dxva2、d3d11va,vlc可选any、dxva2、d3d11va等。
- 解码线程和显示窗体分离,可指定任意解码内核挂载到任意显示窗体,动态切换。
- 支持共享解码线程,默认开启并且自动处理。
- 自动识别视频旋转角度并绘制,自动识别视频流播放过程中分辨率的变化。
- 音视频文件无感知自动切换循环播放,不会出现切换期间黑屏等肉眼可见的切换痕迹。
- 视频控件
- 可动态添加任意多个osd标签信息和图形信息。
- 内置悬浮条控件,悬浮条位置支持顶部、底部、左侧、右侧。
- 悬浮条控件一排工具按钮可自定义,图标可选图形字体还是自定义图片。
- 悬浮条按钮单击后用名称唯一标识作为信号发出,可以自行关联响应处理。
- 悬浮条空白区域可以显示提示信息,默认显示当前视频分辨率大小。
使用说明
- 下载并解压资源文件。
- 根据需要选择合适的解码内核和视频显示模式。
- 运行示例程序,体验多种视频播放功能。
注意事项
- 本示例程序适用于Qt4、Qt5、Qt6版本,兼容所有版本。
- 部分功能可能需要特定的硬件支持,如硬件加速等。
- 使用前请确保已安装必要的依赖库和工具。
联系我们
如有任何问题或建议,欢迎联系我们。