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 Widgets. |
| Playing audio and video using Qt Quick | |
| Playing audio and video using the QML MediaPlayer type. | |
| 使用 Qt Quick 錄製音頻和視頻。 |
| 抽象視頻數據 | |
| QAbstractVideoBuffer::MapData 結構描述映射的平麵布局 | |
| 用於獲取可捕獲窗口的基本信息 | |
| 允許捕獲音頻/視頻內容 | |
| 允許播放媒體文件 | |
| 用於編碼和錄製捕獲會話 | |
| 此類用於捕獲屏幕 | |
| 錶示視頻數據幀 | |
| 指定視頻呈現錶麵的流格式 | |
| 用於嚮 QMediaRecorder 提供自定義視頻幀 (或透過 QMediaCaptureSession 輸齣視頻) | |
| 錶示視頻數據的一般匯點 | |
| 呈現媒體對象産生視頻的小部件 | |
| 此類用於捕獲窗口 |
| Type is used getting basic of a window that is available for capturing via WindowCapture | |
| 允許捕獲音頻/視頻內容 | |
| 將媒體迴放添加描述到場景 | |
| 用於編碼和錄製在 CaptureSession 中生成的媒體 | |
| 此類型用於捕獲屏幕 | |
| 展示指定視頻的方便類型 | |
| 渲染視頻或攝像頭取景器 | |
| 此類型用於捕獲窗口 | |
| 描述攝像頭設備 | |
| 描述攝像頭設備所支持的視頻格式 | |
| 為媒體文件提供元數據 |