现在的位置: 首页 > 综合 > 正文

Qt5+VLC实现多媒体播放器安装配置调试各种问题总结

2019年03月08日 ⁄ 综合 ⁄ 共 1674字 ⁄ 字号 评论关闭

首先介绍下版本吧

用的ubuntu

到Qt官网 http://qt-project.org/ 下载对应的安装包,安装好

vlc我直接在终端安装的 命令如下:sudo apt-get install vlc

播放器的代码用的是vlc自带的,建一个qt工程把下面两个文件复制过去

test2.pro文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TEMPLATE = app
TARGET = projectLoic
INCLUDEPATH += . vlc
QT += widgets
# Input
HEADERS +=
SOURCES += \
    t.cpp
LIBS +=-lvlc

SOURCES +=

t.cpp

#include <vlc/vlc.h>
#include <QApplication>
#include <QDebug>
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    libvlc_instance_t * inst;
    libvlc_media_player_t *mp;
    libvlc_media_t *m;

         // Load the VLC engine
         inst = libvlc_new(0, NULL);

         // Create a new item

         m = libvlc_media_new_path (inst, "/home/liuqian/tmp/20131114171922-7132623.mp4");
         if (m == 0)
             {
              qDebug() << "not possible to open file";
             return 0;
         }

         // Create a media player playing environement
         mp = libvlc_media_player_new_from_media (m);
         libvlc_media_release(m);
         // play the media_player
         libvlc_media_player_play (mp);

     return app.exec();
}

///这里补充一点,如果你下载的是vlc2.0以上的版本,在代码中不要出现libvlc_exception_t这个异常类相关成员的调用,因为2.0以上的已经移除来这个类,所以会一直提示找不到 libvlc_exception_t has not been declared;

还有一个实例也不错,下载地址如下:

https://codeload.github.com/lukasz357/QtGstMediaPlayer/zip/master

弄好这些就开始调试来,那么如果你装的是qt5就会出现问题拉

报错:

Error in `/home/tmp/build-MagicPlayer-Desktop_Qt_5_3_GCC_64bit-Debug/MagicPlayer': realloc(): invalid pointer: 0x00007f8d34c98d40 ***

我也很是折腾来一天,仔细查看vlc的安装包,发现问题在于有一个vlc的插件位于
 /usr/lib/vlc/plugins/gui/libqt4_plugin.so,也就是他只有qt4的,没有qt5的,我又百度来下,发现没有/libqt5_plugin.so,估计还没来得及补充吧官方,没办法,为拉让程序跑起来,我只能采取了一个比较野蛮的方式,人工删除那只坏了汤的老鼠

解决方法:

在终端输入 sudo rm /usr/lib/vlc/plugins/gui/libqt4_plugin.so

这样,折腾啦两天,终于把Qt5和vlc撮合在一起来

记录下来分享给和我一样独自摸索的人

明天就要开始弄ffmpeg啦,从源码入手,希望好运~~

抱歉!评论已关闭.