美文网首页
Linux 下Qt Multimedia 播放视频测试

Linux 下Qt Multimedia 播放视频测试

作者: 蓝点工坊 | 来源:发表于2018-05-10 11:31 被阅读748次

Qt 的multimedia 模块 对各个操作系统 媒体处理功能的封装。比如windows采用 DirectX,而Linux采用GStreamer作为底层库,使用Qt Qt Multimedia 模块编程可以让类似于音乐播放,视频播放相关代码与操作系统无关,我们用一个视频播放例子来测试在Linux下使用

测试项目

测试程序采用Qt 帮助自带的video播放例子,代码本身不复杂,但是运行环境复杂,所以经常造成运行不成功的问题 。
没安装帮助可从这个链接下载。
https://pan.baidu.com/s/1qXKLrcC

multimedia 完整的运行环境。
除了应用程序和Qt运行库外, 还需要一系列的运行库,其中除运行库外,其余均是动态加
载,也就是说未安装,app能运行起来,但无法播放。

App --+
|
+-- Qt运行库
|
+-- Qt MultiMedia 插件
|
+-- GStreamer 运行库
|
+ 媒体解码库

二. Ubuntu 下测试

App --+
|
+-- Qt运行库 (libQt5Core.so.5/libQt5Multimedia.so.5)
|
+-- Qt MultiMedia 插件 (libgstmediaplayer.so /libgstcamerbin.so ....)
|
+-- GStreamer 运行库 ()
|
+ 媒体解码库

安装 媒体插件

在Ubuntu下,Qt 程序会从指定目录查找插件so(通常是/usr/lib/x86_64-linux-gnu/qt5/plugins). 如果指定目录
没有播放插件,将会提示、

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

解决办法最快的是安装编译好的播放插件

sudo apt-get install libqt5multimedia5-plugins

但是是注意,如果应用程序没有使用缺省的Qt 目录,则要把安装的插件手工拷备相应目录,检查Qt目录有两个办法,一是用ldd 运行,其中Qt库显示就是相应路径,下例就是/usr/local/qt-x86库 路径

 ldd ./videographicsitem 
    linux-vdso.so.1 =>  (0x00007fffe4dbd000)
    libQt5MultimediaWidgets.so.5 => /usr/local/qt-x86/lib/libQt5MultimediaWidgets.so.5 (0x00007f24f08a6000)
    libQt5Multimedia.so.5 => /usr/local/qt-x86/lib/libQt5Multimedia.so.5 (0x00007f24f079e000)
    libQt5Widgets.so.5 => /usr/local/qt-x86/lib/libQt5Widgets.so.5 (0x00007f24f0030000)
    libQt5Gui.so.5 => /usr/local/qt-x86/lib/libQt5Gui.so.5 (0x00007f24efae4000)
    libQt5Core.so.5 => /usr/local/qt-x86/lib/libQt5Core.so.5 (0x00007f24ef555000)

还有一种办法是在代码,输出库路径

qDebug() << QCoreApplication::libraryPaths() ;

这是运行结果,可以看到是从/usr/local/qt-x86/plugins 读插件目,因此需要从缺省目录拷入这一些动态库

./videographicsitem
("/usr/local/qt-x86/plugins", "/root/qt/build-videographicsitem-qt5_6_2_x86-Debug")

需要拷入如下动态库,拷入相应目录。


image.png

安装GStreamer

sudo apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-toolsgstreamer0.10-doc
sudo apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-badgstreamer0.10-plugins-bad-multiverse

安装解码库

出于版权的限制,GStreamer 本身不带解码库,可以手动安装ffmpeg 插件用于解码

在Ubuntu 14.04 下成功是

sudo add-apt-repository ppa:mc3man/gstffmpeg-keep
 sudo apt-get update
 sudo apt-get install gstreamer0.10-ffmpeg

运行效果


image.png

I.mx6 (ARM-Linux )下测试

相关文章

网友评论

      本文标题:Linux 下Qt Multimedia 播放视频测试

      本文链接:https://www.haomeiwen.com/subject/yxhzrftx.html