【发布时间】:2015-07-10 21:20:14
【问题描述】:
我有一个使用 Qt5 构建的项目,它必须播放视频。就像在 videowidget 示例代码中一样。
我已按照these 的说明在我的 Pi 上构建 qt5。一切顺利。但是当我尝试运行任何使用 QMediaPlayer 的 qt 程序时,我收到错误消息:
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
这意味着我没有播放视频的后端,对吧?有没有我可以使用 Qt 的,比如 ffmpeg?我怎样才能让它工作?专门用于 h264 视频。
我已尝试按照this link 上的说明安装 gstreamer,但它不起作用。我是否需要重新构建整个 qt5?
P.S.:我有安装了 raspbian 的树莓派 1 型 B。
编辑:正如Greenflow 所说,我检查了./configure 日志,发现GStreamer 已编译进去,但视频应用程序仍然无法运行...
日志上的信息是这样的:
GStreamer .............. yes (0.10)
Greenflow 日志上的信息是这样的:
GStreamer .............. yes (1.0)
显然这是 GStreamer 的另一个版本,但这是问题所在吗?
我还发现 this post 说 Pi 上的 QtMultimedia 相当没用,但该帖子是 2013 年的,所以我不确定它是否真的相关。我想让这个应用在我的 Raspberry Pi 上播放硬件加速视频,但我几乎放弃了这个想法。
无论如何,感谢 Greenflow 的领先优势。
编辑 2:在 Qtcentre 上找到 this thread。妈的,这件事估计也不好解决吧……
【问题讨论】:
-
是的,我愿意。最新版本。
-
你在编译Qt的时候,有没有检查'make'之前的summary?如果 gstreamer 是在其中编译的,应该告诉你。gstreamer 1.0 对我来说很好用。如果已编译,您可能只需要安装缺少的 gstreamer 模块。如果没有...重新编译 qt 玩得开心。顺便说一句...设置交叉编译器比在 RPi 本身上编译要方便得多。
-
嗯,我保存了日志,然后我会在那里寻找它。如果是编译进去的,我怎么知道缺少哪些模块?
-
我为在 Raspian 上交叉编译 Qt 准备了一个问题/自我回答。似乎是普遍的兴趣。而且....烦人?尝试在 Windows 上使用 MinGW 编译 Qt5...然后你知道什么是烦人的。 :-D
-
我在这里开始了如何为 Raspberry Pi 创建必要的跨工具链:stackoverflow.com/questions/30072209/…。看看你对这一步是否有任何问题,如果有必要,我会修改我的答案。
标签: c++ qt ffmpeg raspberry-pi h.264