成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

最新libvlc4.0+Qt設計視頻播放器

開源
目前VLC已經推出了全新的4.0版本,解決了很多3.0里一直存在的問題。并且4.0的VLC支持提供了渲染接口,支持opengl、D3D渲染,二次開發非常方便,源碼里提供了很多例子,方便開發者二次開發參考,有Qt的、SDL的、GTK的、OpenGL渲染的、D3D渲染的等等。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

一、前言

VLC是一款簡單且非常優秀的免費開源軟件,所有開源軟件的好處他都有,而且是為數不多開源并長期更新維護的播放器,兼容性等各個方面都很好。VLC提供了libvlc庫,可以很方便進行二次開發。

穩定版本,3.0 版本官網:https://www.videolan.org/。

目前VLC已經推出了全新的4.0版本,解決了很多3.0里一直存在的問題。并且4.0的VLC支持提供了渲染接口,支持opengl、D3D渲染,二次開發非常方便,源碼里提供了很多例子,方便開發者二次開發參考,有Qt的、SDL的、GTK的、OpenGL渲染的、D3D渲染的等等。

VLC最新的4.0版本官網首頁:https://nightlies.videolan.org/。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

二、VLC4.0源碼和庫文件下載

1、SDK庫文件下載

官網地址:https://nightlies.videolan.org/。

打開網頁,可以看到各種環境的下載選項。我的開發環境是在windows下,我這里就分別下載32位和64位的SDK文件。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

從時間上來看,VLC更新的頻率還是很高的。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

下載win64的包,直接下載7z包就行,解壓就能直接使用。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

下載win32的包:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

這是下載好的win32和win64的庫文件:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

打開解碼的目錄,可以看到sdk目錄,這個sdk目錄里有include和lib目錄,二次開發需要用到。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

外面的libvlc.dll和 libvlccore.dll 庫文件、plugins插件目錄是運行過程中需要使用文件。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

2、vlc源碼下載

通過git克隆一份最新的源碼下來。 源碼里包含了vlc4.0的使用示例代碼,通過例子代碼可以快速運行。

git clone https://code.videolan.org/videolan/vlc.git

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

克隆成功: 在vlc\doc\libvlc 目錄下有很多例子。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

這里面可以看到QtGL和QtPlayer兩個Qt例子,我這里就分別運行這兩個例子完成測試。

QtGL是采用OpenGL渲染,QtPlayer是窗口句柄嵌入方式渲染。

3、拷貝庫文件

為了方便運行例子代碼,將剛才下載下來的庫文件里的lib文庫、插件目錄、dll文件拷貝到項目目錄下,建立一個vlc40_win32和vlc40_win64目錄。

以QtGL項目為例:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

將下載的壓縮包解碼目錄下的相關文件拷貝過來:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

拷貝到項目下:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

64位的庫操作方法一樣:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

4、運行項目(QtGL)

(1)打開項目

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

(2)修改pro文件

根據32位編譯器 和 64位編譯器分別設置庫文件和頭文件的路徑。

TEMPLATE = app
TARGET = qtglvlc

CONFIG += c++14 #link_pkgconfig force_debug_info
PKGCONFIG = libvlc
QT += widgets
SOURCES += main.cpp qtvlcwidget.cpp
HEADERS += qtvlcwidget.h
#打印當前Qt構建套件的信息
message($$QT_ARCH)
#表示32位的構建套件
contains(QT_ARCH, i386)
{
INCLUDEPATH += $$PWD\vlc40_win32\sdk\include #VLC頭文件包含目錄
INCLUDEPATH += $$PWD\vlc40_win32\sdk\include\vlc #VLC頭文件包含目錄
LIBS +=$$PWD\vlc40_win32\sdk\lib\libvlc.lib #VLC庫文件路徑
LIBS +=$$PWD\vlc40_win32\sdk\lib\libvlccore.lib
}
#表示64位的構建套件
contains(QT_ARCH, x86_64)
{
INCLUDEPATH += $$PWD\vlc40_win64\sdk\include #VLC頭文件包含目錄
INCLUDEPATH += $$PWD\vlc40_win64\sdk\include\vlc #VLC頭文件包含目錄
LIBS +=$$PWD\vlc40_win64\sdk\lib\libvlc.lib #VLC庫文件路徑
LIBS +=$$PWD\vlc40_win64\sdk\lib\libvlccore.lib
}

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

5、編譯運行(QtGL)

(1)修改視頻路徑,方便測試

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

glWidget->playMedia()里調用的是libvlc_media_new_location函數打開媒體文件,libvlc_media_new_location 函數用于打開協議,這個函數更加強大,可以支持很多協議,本地視頻也可以使用該函數打開,更加通用一點,而且使用該函數時,路徑斜杠使用常規左斜杠就行(linux風格),不需要進行轉換。

下面介紹幾個常用的使用示例:

打開本地文件: libvlc_media_new_location (inst, "file:///D:/work/test.mp4");
打開RTSP流媒體:libvlc_media_new_location (inst, "rtsp://10.0.0.4:554/cam");
打開RTMP流媒體:libvlc_media_new_location (inst, "rtmp://10.0.0.4:554/cam");
播放當前桌面屏幕: libvlc_media_new_location (inst, "screen://");

(2)編譯器選擇

我當前采用的編譯器是,MSVC_VS2017_32位 和 MSVC_VS2017_64位 。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

(3)構建項目

點擊左下角垂直構建項目。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

構建完成之后,將vlc的插件目錄和相關的dll文件拷貝到構建的影子目錄下。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

(4)最終運行效果

拷貝之后,再點擊左下角的綠色三角形運行程序。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

6、運行項目(QtPlayer)

(1)打開項目

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

(2)修改pro文件

#打印當前Qt構建套件的信息
message($$QT_ARCH)

#表示32位的構建套件
contains(QT_ARCH, i386)
{
INCLUDEPATH += $$PWD\vlc40_win32\sdk\include #VLC頭文件包含目錄
INCLUDEPATH += $$PWD\vlc40_win32\sdk\include\vlc #VLC頭文件包含目錄
LIBS +=$$PWD\vlc40_win32\sdk\lib\libvlc.lib #VLC庫文件路徑
LIBS +=$$PWD\vlc40_win32\sdk\lib\libvlccore.lib
}

#表示64位的構建套件
contains(QT_ARCH, x86_64)
{
INCLUDEPATH += $$PWD\vlc40_win64\sdk\include #VLC頭文件包含目錄
INCLUDEPATH += $$PWD\vlc40_win64\sdk\include\vlc #VLC頭文件包含目錄
LIBS +=$$PWD\vlc40_win64\sdk\lib\libvlc.lib #VLC庫文件路徑
LIBS +=$$PWD\vlc40_win64\sdk\lib\libvlccore.lib
}

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

(3)修改代碼

例子代碼里采用libvlc_media_new_path 函數加載媒體文件,需要轉換一下路徑的斜杠。

windows下使用libvlc_media_new_path 函數傳入的路徑要注意斜杠問題,必須保證傳入的是雙右斜杠,如果默認選擇的路徑是左斜杠,可以使用std::replace函數轉換一下。

std::replace(fileOpen.begin(), fileOpen.end(), QChar('/'), QChar('\\'));

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

(4)運行項目

注意:需要將VLC的插件目錄和相關的dll文件拷貝到運行目錄,否則程序無法正常運行,具體步驟參考前面的2.5小節說明。

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

加載視頻播放:

#創作者激勵#  最新libvlc4.0+Qt設計視頻播放器-開源基礎軟件社區

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2011-06-13 09:33:04

2011-06-27 11:23:21

Qt 音樂播放器

2022-08-16 17:37:06

視頻播放器鴻蒙

2015-05-21 15:25:42

VLC播放器

2011-07-20 16:21:20

iPhone 視頻 播放器

2022-06-21 14:41:38

播放器適配西瓜視頻

2011-09-06 11:25:08

2011-09-06 10:46:19

QT播放器

2011-06-24 10:21:11

Qt phonon 多媒體

2021-10-19 14:27:07

鴻蒙HarmonyOS應用

2021-10-21 16:00:07

鴻蒙HarmonyOS應用

2022-11-12 08:26:04

VLC視頻播放器裁剪視頻

2018-05-25 14:37:58

2015-09-01 16:48:44

ios暴風視頻播放器

2023-03-29 09:32:15

視頻播放器應用鴻蒙

2023-08-26 19:07:40

VLC旋轉視頻

2011-09-06 11:08:21

QT播放器Mplayer

2023-03-28 09:44:02

開發應用鴻蒙

2023-03-29 09:37:49

視頻播放器應用鴻蒙

2023-03-28 09:38:34

開發應用鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久 | 99色综合| 久久久久久久综合色一本 | 国产精品区二区三区日本 | 亚洲人成人一区二区在线观看 | 国产激情综合五月久久 | 亚洲精品九九 | 亚洲系列第一页 | 日韩一区二区在线视频 | 欧美一区二区三区电影 | 欧美日一区 | 毛片a级| 国产精品美女久久久免费 | av中文字幕在线观看 | 国产精品一区三区 | 天天躁日日躁狠狠躁白人 | 毛片国产| 电影91久久久 | 成人精品一区亚洲午夜久久久 | 日本不卡免费新一二三区 | 亚洲国产精品久久久久秋霞不卡 | 精品av天堂毛片久久久借种 | 亚洲电影专区 | 亚洲成人999| 成人欧美一区二区三区黑人孕妇 | 亚洲高清av在线 | 一级国产精品一级国产精品片 | 欧美1—12sexvideos | 日韩精品一区二区三区中文在线 | 极品久久 | 欧美综合一区二区 | 精品久久久久久久久久 | 一区欧美 | 成人精品一区二区 | 超碰520 | 一区二区三区四区在线视频 | 一区二区三区 在线 | 亚洲 中文 欧美 日韩 在线观看 | 久久国产综合 | 午夜电影福利 | 91久久精品一区二区二区 |