当前位置 博文首页 > DeRoy:vlc音视频开发(一)环境搭建(qt篇)

    DeRoy:vlc音视频开发(一)环境搭建(qt篇)

    作者:DeRoy 时间:2021-02-07 18:24

    VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。本文旨在搭建qt下的vlc开发环境,供初学者学习使用。

    来源:微信公众号「编程学习基地」

    目录
    • 简介
    • qt配置vlc环境
    • simple_libvlc_qt_player
    • 项目地址

    简介

    • VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
    • 由于VLC是完全开源的,所以我们可以获得所有的项目源码,并在此基础上进行二次开发

    VLC的官网:http://www.videolan.org/

    VLC源码下载地址:http://download.videolan.org/pub/videolan/vlc/2.2.4/

    测试代码参考雷神的博客:http://blog.csdn.net/leixiaohua1020/article/details/42363079

    qt配置vlc环境

    qt环境搭建教程

    下载vlc源码

    点击下载地址选择win64/win32,我选的是win64,下载.7z结尾的,我下载的是vlc-2.2.4-win64.7z
    在这里插入图片描述
    下载解压之后是下面这个样子

    解压后找到sdk文件夹,这个文件夹非常重要

    simple_libvlc_qt_player

    第一次提交代码,最简单的libvlc播放器

    1. 创建控制台项目(参考qt环境搭建教程)

    2. 配置.pro文件

    在底部添加如下代码

    win32{
        INCLUDEPATH += $$PWD/sdk/include
        LIBS += -L$$PWD/sdk/lib -llibvlc -llibvlccore
    }else{
        INCLUDEPATH += /usr/local/include
        LIBS += -L/usr/local/lib -lvlc -lvlccore
    }
    
    1. 配置sdk

    将解压后的sdk文件夹复制到main.cpp文件夹下即可
    在这里插入图片描述
    测试代码见simple_libvlc_qt_player

    运行结果播放cuc_ieschool.flv这个视频

    1. 测试代码
    #include <QCoreApplication>
    #include <Windows.h>
    #include "vlc/vlc.h"
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        libvlc_instance_t* inst;
        libvlc_media_player_t* mp;
        libvlc_media_t* m;
    
        libvlc_time_t length;
        int width;
        int height;
        int wait_time = 5000;
    
        const char* version;
        version = libvlc_get_version();
        printf("version: %s\n", version);
        inst = libvlc_new(NULL, NULL);
    
        char filename[1024] = "../simple_libvlc_qt_player/cuc_ieschool.flv";
        //m = libvlc_media_new_location (inst,"rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" );
        m = libvlc_media_new_path (inst,filename);
        mp = libvlc_media_player_new_from_media(m);
        libvlc_media_release(m);
        libvlc_media_player_play(mp);
    
        //wait until the tracks are created
        _sleep(wait_time);
        length = libvlc_media_player_get_length(mp);
        width = libvlc_video_get_width(mp);
        height = libvlc_video_get_height(mp);
        printf("Stream Duration: %ds\n", length / 1000);
        printf("Resolution: %d x %d\n", width, height);
        //Let it play
        _sleep(length - wait_time);
    
        // Stop playing
        libvlc_media_player_stop(mp);
        libvlc_media_player_release(mp);
        libvlc_release(inst);
    
        return 0;
    }
    
    1. 程序发布

    simple_libvlc_qt_player文件夹下有一个release文件夹将里面的动态链接库放到打包的程序目录下即可发布

    项目地址

    GitHub项目地址:https://github.com/ADeRoy/libvlc_qt_demo

    如果帮助到你,可以给个star

    bk