问题标签 [qtmultimedia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 Qt5 中使用 MPlayer
我的 BeagleBone Black 机器上的默认 QtMultimedia 后端 GStreamer 存在问题。当我在 GStreamer 上播放视频时,它有很多丢帧,而且视频很慢。当我通过 gstreamer 命令gst-launch-1.0 /home/debian/Desktop/video.mp4播放视频时,行为是相同的。
MPlayer 和视频播放并非如此,一切都很完美,所以我想在我的 Qt 应用程序中使用 MPlayer 而不是 GStreamer 来播放视频,从哪里开始这个实现?
linux - Qt5 VideoOverview 示例不起作用
我被Qt Video Overview中给出的视频示例卡住了一个月。
我尝试了该代码,但只有我得到的是空白方块(QWidget)。我正在使用 GStreamer0.10 通过 Qt5 进行媒体播放。我还使用 gst-launch-0.10 命令播放了视频,它工作正常,但我无法确定 Qt 中发生了什么以及为什么它不起作用?
我查看了位于 中的 X Server 的错误日志,/etc/X11/Xorg.0.log
当我使用 fbdev 作为其中配置的显示驱动程序时,/etc/X11/xorg.conf
它向我显示了错误:
“FBDEV(0):FBIOPUTCMAP:无效参数”
当我使用模式设置驱动程序时,一切都一样,但没有错误。我发现当我删除 xorg.conf 文件并再次启动 X 服务器时,视频可以正常工作,但缺少颜色和闪烁也可以在我的 Ubuntu VM 和 vnc 客户端上正常工作。每一个建议和帮助将不胜感激。
目标机器:BeagleBone Black
发行版:Debian Jessie 8.2
内核版本:4.1.15-ti-rt-r43
/usr/lib/xorg/modules/drivers 中的可用驱动程序列表:ati_drv.so、mach64_drv.so、nouveau_drv.so、r128_drv.so、vesa_drv.so、fbdev_drv.so、modesetting_drv.so、omap_drv.so、radeon_drv。所以
当我尝试在 Debian Jessie 8.2 下的 BeagleBone Black 上启动我的 Qt 应用程序时,这是来自 Xorg 的完整错误日志 -> http://pastebin.com/4x8KztBk
xorg.conf 文件来自 /etc/X11 -> http://pastebin.com/4WhX8pJc
c++ - Qt iOS 问题 - 使用 QAudioRecorder 更改音频输出设备
我正在使用 Qt 技术开发针对两个平台(iOS 和 Android)的移动应用程序。
应用程序正在录制声音并在经过一些处理后播放。为此,我使用了来自 QtMultimedia 模块的两个类:QAudioRecorder,用于录制音频并将其存储到 QBuffer 中,以及 QMediaPlayer 用于从处理过的缓冲区播放数据。
代码在 Android 上运行得非常好,但出于某种原因,在 iOS 上播放的音乐非常安静,即使我将手机音量设置为最大并调用 mediaPlayer->setVolume(100)。
完全意外的是,我发现声音不是来自主扬声器,而是来自用于电话交谈的小扬声器。这给了我一个必要的提示,并帮助我找到了问题的根源:
audioRecorder = new QAudioRecorder();
在注释了录音机实例的初始化及其所有引用后,音频输出恢复正常。但是当我尝试将它插入到我的代码中的任何位置时 - 它会立即再次切换输出,并且我无法知道将其更改回来。
我试过的:
录制完成后删除 QAudioRecorder 的对象
使用 QAudioOutput 而不是 QMediaPlayer 并将输出设备设置为默认设备: audioOutput = new QAudioOutput(QAudioDeviceInfo::defaultOutputDevice (), audioFormat, this); 这里还有另一个问题,因为 QAudioDeviceInfo::availableDevices(QAudio::AudioOutput) 只返回“默认” - 而 QAudioDeviceInfo::availableDevices(QAudio::AudioInput) 返回相同
使用 QAudioInput 而不是 QAudioRecorder 的情况相同
获取 QMediaPlayer 的 QMediaService 并从中获取 QAudioOutputSelectorControl QMediaService *service = mediaPlayer->service(); QAudioOutputSelectorControl *outputSelector = qobject_cast<QAudioOutputSelectorControl *>(service->requestControl(QAudioOutputSelectorControl_iid) ); 但是这个操作返回 null
如果您遇到同样的问题或有任何解决方法的想法,我想听听。我需要的是无需切换输出设备即可录制音频的能力
windows - 使用适用于 Windows 的 Qt5 QtMultimedia 程序分发 H264
我正在为 Windows/Linux 开发 Qt5 应用程序,它必须播放 H264/AAC flv 视频。
安装 gstreamer-plugins 后,这在 Linux 上效果很好。这也适用于在 Windows 上安装 K-lite 编解码器包后。
我需要将我的程序与所需文件一起分发,以便能够在不安装任何其他东西的情况下播放视频。我尝试复制 Process Explorer 列出的引用的 DLL 文件(所有与 A/V、libav*、av*、*.ax 等相关),但这不起作用。
我还需要设置什么?
qt5 - 无法使用 Qt Multimedia 和 gstreamer 播放我的视频
我刚刚在我的 Debian Jessie linux 上安装了 gstreamer。我实际上计划在 QtMultimedia 框架中使用它。虽然我对 vlc 很熟悉......我是 gstreamer 世界的新手。
我尝试运行以下非常基本的 qml 程序:
当我尝试播放视频时,我听到了声音,但没有视频。在应用程序输出中,我得到以下日志:
但是,如果我按以下方式启动 gstreamer 命令行,我可以正确播放视频:
我真的不明白发生了什么。我想知道我的 Qt 版本是否可能与一些 gst 东西静态链接?我已经使用常规 Linux 安装程序安装了 Qt 5.5。
我应该设置一些特定的设置吗?我应该分别重新编译特定的 Qt 组件吗?
Z。
qt - 使用 QML 将视频录制到文件
我正在使用 Qt Multimedia 框架,我可以使用 QML 和 Camera 模块在我的窗口上显示视频,如下所示:
我在运行 Ubuntu 14.04 (nvidia Jetson) 的基于 ARM 的处理器上运行它。
现在,我的问题是,当我录制视频时,UI 中的预览会完全停止。此外,录制的视频会丢失很多帧。我注意到的一件事是它总是使用ogg
容器而不是mp4
指定的容器。
使用 gstreamer,我可以同时运行以下显示和录制,而不会出现任何问题:
是否有可能使用 Camera 模块和 QML 建立类似的管道(我认为这些是基于 gstreamer 的)。
编辑:
我尝试设置videoRecorder.videoCodec: "video/x-h264"
,但这似乎没有任何效果。编码仍然使用Theora
.
qt - 相机视频上的 QML 叠加层
我正在尝试在 Qt/QML 中的 Camera 对象捕获的帧上绘制一些叠加层。相机本身定义为:
现在,当我打电话时camera.videorecorder.record()
,相机开始录制,当前帧显示在视频输出画布上。现在,我想做的是在框架上的任意位置绘制一个矩形。
我看到有一些着色器效果示例(http://doc.qt.io/qt-5/qtmultimedia-multimedia-video-qmlvideofx-example.html)但对于我想做的事情来说它们看起来真的很复杂,我是不熟悉 GLSL。
c++ - Qt:QVideoWidget 不显示并禁用应用程序中的所有按钮或极大地减慢应用程序的速度
为了弄清楚问题是:为什么当我向我的应用程序添加 QVideoWidget 时,所有按钮都变得不可点击,滚动条不起作用,组合框也变得不可点击?QVideoWidget 是否禁用了这些功能?或者这可能是(就像我在这个 SO 问题中读到的那样)QVideoWidget 只是通过添加到应用程序中而极大地减慢了我的应用程序?
现在详细说明: 我真的希望有人可以帮助我。我正在尝试使用以下代码将 QvideoWidget 放入我的桌面应用程序中(没什么特别的,就像在教程中一样):
所以有以下几种情况:
1)不添加视频小部件,一切正常......
2)只要我用上面的代码添加 QVideoWidget: 应用程序概述
怎么了? 视频播放器不会以任何方式显示。至少应该像其他小部件一样有灰色背景,但什么也没有。然而按钮位置降低了,所以我猜播放器被插入了......问题是:所有按钮(我的意思是我的应用程序中的所有按钮)都被禁用。组合框和滚动条也是如此。禁用我的意思是,当您单击它们时,它通常不会像单击按钮时那样“动画化”,并且滚动条不会滚动...
顺便说一句,QVideoWidget 没有与下面的按钮放置在相同的布局中。您可以在此处查看布局层次结构:Layouts with Qt Designer
我想我错过了一些非常简单的东西。有人为我找到解决方案吗?
信息:我正在使用带有 Qt 插件的 Visual Studio 2013 进行编程;我只使用标准库;gstreamer 也包含在项目中(尚未实现)。
旧编辑:可能是视频小部件的插入极大地减慢了应用程序的速度,因此给人一种滚动条和按钮不起作用的错觉,只是因为它们需要大量时间来处理用户交互. 这可能吗?有什么解决办法吗?
qt - 捕获图像的文件名
我正在开发一个包含相机功能的应用程序,但我不知道如何从捕获的图像中获取文件名。
是否有QML
关于如何获取我刚刚捕获的图像的文件名的选项?如果没有,是否有可能获取刚刚捕获的图像的文件名?
谢谢您的帮助。
qt - QAbstractVideoSurface 生成空图像
我从 QAbstractVideo Surface 重新实现了本方法,以便从 IP 摄像机捕获帧。
这是我重新实现的方法(必需的):
这就是我使用它的方式:
问题是创建的图像为空。据我所知,这只能是因为框架有效但不包含数据。
任何想法可能是什么问题?
重要细节:如果我将流设置为 QVideoWidget 并简单地显示它,它就可以正常工作。