Qt Multimedia 提供用于播放和操纵视频数据的高级/低级 C++ 类,及用于播放和录制的 QML 类型。这里呈现的一些类有重叠同呈现在 摄像头概述 and 音频概述 .
可以使用 QMediaPlayer 类解码视频文件,和显示它使用 QVideoWidget , QGraphicsVideoItem ,或自定义类。
此处范例,使用 QVideoWidget :
player = new QMediaPlayer; player->setSource(QUrl("http://example.com/myclip1.mp4")); videoWidget = new QVideoWidget; player->setVideoOutput(videoWidget); videoWidget->show(); player->play();
和范例采用 QGraphicsVideoItem :
player = new QMediaPlayer(this); QGraphicsVideoItem *item = new QGraphicsVideoItem; player->setVideoOutput(item); graphicsView->scene()->addItem(item); graphicsView->show(); player->setSource(QUrl("http://example.com/myclip4.ogv")); player->play();
可以使用 VideoOutput 渲染的内容提供通过 MediaPlayer 或 Camera 。 VideoOutput 是视觉组件,可以嵌入 QQuickScene 或 Window ,而所有媒体解码和回放控制的处理是通过 MediaPlayer or CaptureSession 。 视频 元素为方便起见提供。它组合 MediaPlayer , VideoOutput and AudioOutput 元素在一项中。
Qt Multimedia 提供了许多低级类以使处理视频帧变得更容易一些。这些类首要用于编写处理视频或摄像头帧的代码 (例如:检测条码或应用花哨晕影效果),或需要以其它不受支持的特殊方式显示视频。
The QVideoFrame 类封装视频帧并允许将内容映射到系统内存用于操纵或处理。使用自己的 QVideoSink 允许接收这些帧从 QMediaPlayer and QCamera .
任何类型的音频/视频捕获 (或录制) 的中心类是 QMediaCaptureSession (或 CaptureSession QML 类型)。可以连接 QCamera (摄像头在 QML) 和 QMediaRecorder ( MediaRecorder ) 到会话然后询问媒体录制器以开始录制。
支持什么媒体格式,最终从属目标系统配置。
默认情况下,在微软 Windows 目标什么可用从属版本化的 Windows 媒体播放器 与 OS 一起打包。见 Windows 媒体播放器文档编制 了解官方信息。
独立于 Windows Media Player,当然有很多编解码器包可以安装。见 编解码器指南 站点有一些范例。
见 Android 支持的媒体格式 了解此信息。
在 Linux,这是关于安装正确的 GStreamer 插件。
对于 Linux 桌面目标,强烈建议使用
gstreamer1.0-libav
为良好的编解码器覆盖和
gstreamer1.0-vaapi
以获得硬件加速。
在嵌入式 Linux,要求的插件集可能有所不同。
可以确定目标系统中什么格式可用,在运行时使用静态 QMediaFormat API.
存在 C++ 和 QML 两种可用范例。
Shows how to capture a still image or record video. | |
播放音频和视频。 |
Playing audio and video using Qt Quick | |
Playing audio and video using the QML MediaPlayer type. | |
使用 Qt Quick 录制音频和视频。 |
用于获取可捕获窗口的基本信息 | |
允许捕获音频/视频内容 | |
允许播放媒体文件 | |
用于编码和录制捕获会话 | |
此类用于捕获屏幕 | |
表示视频数据帧 | |
指定视频呈现表面的流格式 | |
表示视频数据的一般汇点 | |
呈现媒体对象产生视频的小部件 | |
此类用于捕获窗口 |
Type is used getting basic of a window that is available for capturing via WindowCapture | |
允许捕获音频/视频内容 | |
将媒体回放添加描述到场景 | |
用于编码和录制在 CaptureSession 中生成的媒体 | |
此类型用于捕获屏幕 | |
展示指定视频的方便类型 | |
渲染视频或摄像头取景器 | |
此类型用于捕获窗口 | |
描述摄像头设备 | |
描述摄像头设备所支持的视频格式 | |
为媒体文件提供元数据 |