Qt(5): 使用 QtMultimedia 在 2 个不同的表面上渲染相同的视频
Qt(5): Render same video on 2 different surfaces using QtMultimedia
我正在用 Qt(5) 开发一个应用程序,基本上我尝试使用 QtMultimedia5 将相同的视频源渲染到窗口中的 2 个位置。我在 QML 中这样做,但如果C++有解决方案,我将很乐意实现它。
我在窗口中显示视频没有问题。当我尝试使用相同的 QMediaSource 但将其渲染到 2 个窗口/控件上时,问题就开始了。
我看到的是QMediaService::requestControl被调用,它返回一个QVideoRendererControl对象。然后调用 QVideoRendererControl::setSurface 来设置它渲染视频的表面。因此,从我收集的信息来看,QMediaService有一个表面,它可以在任何给定时间将视频渲染到该表面。
如何渲染到 2 个或更多表面?还有其他课程更适合我的需求吗?
干杯
嗯,这很简单,不是我期望的方式。你必须喜欢QtQuick2。
所以我的QML代码中有一个媒体播放器源和一个视频输出项:
MediaPlayer {
id: mp1
source: "slide-1.wmv"
}
VideoOutput {
id: tbltSlides
anchors.fill: parent
visible: true
source: mp1
}
我所要做的就是添加一个ShaderEffectSource并将tbltSlides设置为其源。如此简单:
ShaderEffectSource {
id: slides
x: 600
width:250
height: 250
sourceItem: tbltSlides
visible: true
}
编辑:显然,为了获得最佳质量,您希望tbltSlides项大于ShaderEffectSource,以便着色器缩小原始图像的大小。
相关文章:
- Linux的Cpp上的计时器
- 如何在网格查看器上的选择性表面内删除边缘
- 视频捕获上的图片和文字
- 使用OpenCV从文件中更改视频捕获上的fps
- 一台相机上的多个视频贴
- 在导入的视频上运行 Camshift 演示
- Qt(5): 使用 QtMultimedia 在 2 个不同的表面上渲染相同的视频
- WiFi上的原生C++webrtc客户端降低了视频质量,但对来自chrome的呼叫很好
- 在QGraphicsScene中的视频上画一条线
- 在来自相机的视频上显示一个矩形
- 检测实时视频上的冲浪点
- 我可以将处理后的视频输出从 PC 上的 OpenCV 流式传输到安卓平板电脑吗?
- 实时视频上的霍夫线变换会导致断点
- 如何在视频控件上添加透明控件,如媒体元素上的wpf标签
- 在android的OpenGL视图上播放视频
- 想要在OSX上的OpenCV中实时镜像视频,不知道从哪里开始
- 单位半球表面上快速均匀分布的随机点
- 在自动分配的表面上使用SDL_FreeSurface
- C 库,用于直接从 Linux 上的缓冲区构建视频,最好可移植到 Windows 和 Mac OS X
- 在c++服务器上处理用WebRTC (Socket.IO)捕获的视频数据