天天看點

vlc音視訊開發(一)環境搭建(qt篇)

vlc

vlc音視訊開發(一)環境搭建(qt篇)

來源:微信公衆号「程式設計學習基地」

目錄

  • 簡介
  • 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