是否有可能在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. 拍摄UICollectionViewCell的快照
- 10. 拍摄快照的CCGLView
- 11. 用c#拍摄快照(AForge)
- 12. 拍摄页面快照javascript
- 13. 拍摄报告快照
- 14. 拍摄SQL表的快照
- 15. 如何使用VLC Web插件拍摄视频快照
- 16. 使用php/js/as3拍摄flv视频的快照
- 17. Javascript或jQuery拍摄视频文件第一秒的快照
- 18. 如何使用动作脚本3.0拍摄视频快照?
- 19. 如何拍摄视频控件的快照?
- 20. 如何快速拍摄高质量的视频/照片?
- 21. 下拍摄视频
- 22. 如何在使用表面视图录制视频时拍摄图片(快照)
- 23. 实时视频拍摄?
- 24. 在iPhone上拍摄视频
- 25. 我需要拍摄正在浏览器中播放的视频的快照
- 26. 使用DirectShowLib-2005的摄像头拍摄的照片和视频
- 27. 如何在活动中同时拍摄**视频和照片**
- 28. 在视频输入过程中拍摄照片
- 29. 拍摄快照,缩放并重复拍摄
- 30. 如何在Flex中拍摄摄像头快照图片?