ubuntu下Qt5无法启用摄像头的问题

3 篇文章 0 订阅

最近的项目需要使用设备的摄像头拍照,原来的方案是使用opencv,因为是使用Qt开发,就计划使用Multimedia模块简化项目的库依赖,参考官方示例:

https://doc.qt.io/qt-5/qtmultimedia-multimediawidgets-camera-example.html

开发环境是xubuntu 16.04.5,编译完运行示例程序输出:

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

接着示例程序报错:

camera service is missing

搜索后发现这篇文章:

https://forum.qt.io/topic/57924/camera-service-is-missing/4

在终端中设置:

export QT_DEBUG_PLUGINS=1

再次运行程序,观察输出:

Found metadata in lib /mnt/data/dev_libs/qt_5.5.1/5.5/gcc/plugins/mediaservice/libqtmedia_audioengine.so, metadata=
{
    "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
    "MetaData": {
        "Keys": [
            "audiocapture"
        ],
        "Services": [
            "org.qt-project.qt.audiosource"
        ]
    },
    "className": "AudioCaptureServicePlugin",
    "debug": false,
    "version": 328961
}
 

通过查看Qt的安装目录/mnt/data/dev_libs/qt_5.5.1/5.5/gcc/plugins/mediaservice/,里面只有libqtmedia_audioengine.so,看起来缺少视频相关插件(这个很奇怪,是使用官方的程序安装的),一番搜索这样解决:

1.安装本版本的多媒体插件,比如我安装的是Qt5 

sudo apt-get install libqt5multimedia5-plugins

2. 将安装后的多媒体插件链接库copy到Qt的安装目录,比如我的系统是这样:

cp   /usr/lib/i386-linux-gnu/qt5/plugins/mediaservice/* /mnt/data/dev_libs/qt_5.5.1/5.5/gcc/plugins/mediaservice/

如果不清楚第一步安装的文件到哪里了,可以通过 find /usr/lib -name libqtmedia_* 来定位,通常不会跑出/usr/lib这个目录,要是系统安装了dpkg,可以使用 dpkg -L libqt5multimedia5-plugins,比如在我的环境输出:

saga@zzz:/$ dpkg -L libqt5multimedia5-plugins 
/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/qt5
/usr/lib/i386-linux-gnu/qt5/plugins
/usr/lib/i386-linux-gnu/qt5/plugins/playlistformats
/usr/lib/i386-linux-gnu/qt5/plugins/playlistformats/libqtmultimedia_m3u.so
/usr/lib/i386-linux-gnu/qt5/plugins/audio
/usr/lib/i386-linux-gnu/qt5/plugins/audio/libqtaudio_alsa.so
/usr/lib/i386-linux-gnu/qt5/plugins/audio/libqtmedia_pulse.so
/usr/lib/i386-linux-gnu/qt5/plugins/mediaservice
/usr/lib/i386-linux-gnu/qt5/plugins/mediaservice/libgstcamerabin.so
/usr/lib/i386-linux-gnu/qt5/plugins/mediaservice/libgstmediacapture.so
/usr/lib/i386-linux-gnu/qt5/plugins/mediaservice/libgstmediaplayer.so
/usr/lib/i386-linux-gnu/qt5/plugins/mediaservice/libgstaudiodecoder.so
/usr/share
/usr/share/doc
/usr/share/doc/libqt5multimedia5-plugins
/usr/share/doc/libqt5multimedia5-plugins/copyright
/usr/share/doc/libqt5multimedia5-plugins/changelog.Debian.gz
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值