是否有可能在Qt Multimedia中拍攝視頻快照?怎麼樣?在Qt Multimedia中拍攝視頻快照
0
A
回答
2
這取決於平臺,但你也許可以做的是使用QMediaPlayer
,通過setVideoOutput
設置一個子類的視頻表面,並獲得來自QVideoFrame
在present
方法傳遞的幀數據。然後你必須處理幀格式並映射它們是否不在CPU內存中。
但是,根據您的需要,我會使用ffmpeg/libav從特定位置獲取幀。
1
(文檔在這裏:http://doc.qt.io/qt-5/qml-qtquick-item.html#grabToImage-method)試試這個
import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
import QtMultimedia 5.0
Window {
id: mainWindow
visible: true
width: 480
height: 800
MediaPlayer {
id: player
source: "file:///location/of/some/video.mp4"
autoPlay: false
}
ColumnLayout {
anchors.fill: parent
VideoOutput {
id: output
source: player
Layout.fillHeight: true
Layout.fillWidth: true
}
Row {
id: buttonsRow
height: 100
spacing: 20
anchors.horizontalCenter: parent.horizontalCenter
Layout.margins: 10
Button {
id: playPauseButton
text: player.playbackState === MediaPlayer.PlayingState ? "Pause" : "Play"
onClicked: {
var playing = player.playbackState === MediaPlayer.PlayingState;
playing ? player.pause() : player.play();
}
}
Button {
text: "Snapshot"
onClicked: {
output.grabToImage(function(image) {
console.log("Called...", arguments)
image.saveToFile("screen.png"); // save happens here
});
}
}
}
}
}
相關問題
- 1. 拍攝視頻快照
- 2. 拍攝快照視頻的快照
- 3. 拍攝快照QML視圖
- 4. AVCaptureVideoPreviewLayer:拍攝快照
- 5. 如何在android中播放視頻時拍攝videoview的快照?
- 6. 拍攝AVCaptureVideoPreviewLayer視圖的快照
- 7. 拍攝快照的視圖包含UIDatePicker
- 8. 當拍攝背景時拍攝iOS拍攝的快照
- 9. 拍攝快照的CCGLView
- 10. 如何使用VLC Web插件拍攝視頻快照
- 11. 拍攝報告快照
- 12. 使用php/js/as3拍攝flv視頻的快照
- 13. 拍攝SQL表的快照
- 14. Javascript或jQuery拍攝視頻文件第一秒的快照
- 15. 如何拍攝視頻控件的快照?
- 16. 如何快速拍攝高質量的視頻/照片?
- 17. 在iPhone上拍攝視頻
- 18. 實時視頻拍攝?
- 19. 使用DirectShowLib-2005的攝像頭拍攝的照片和視頻
- 20. 拍攝快照,縮放並重復拍攝
- 21. 如何在Flex中拍攝攝像頭快照圖片?
- 22. 在沒有JMF的java中拍攝攝像頭快照?
- 23. 用Jade拍攝視頻
- 24. iPhone:5秒視頻拍攝
- 25. 拍攝UIScrollView中支持CATiledLayer的視圖的圖像快照
- 26. 拍攝裝載機的快照
- 27. 快速拍攝照片崩潰
- 28. 如何拍攝卡桑德拉快照?
- 29. 拍攝JavaFX TextArea和WebView的快照
- 30. 拍攝CGL內容的快照?