1. 程式人生 > 其它 >基於Qt、FFMpeg的音視訊播放器設計一

基於Qt、FFMpeg的音視訊播放器設計一

技術標籤:qtffmpeg

前言:整個專案的原始碼 https://download.csdn.net/download/hfuu1504011020/10672140

最近剛完成基於Qt、FFMpeg的音視訊播放器相關C++程式,實現了一個音視訊播放器的全部功能,其中以模組為主,每一個模組,分為幾個小模組,總結每個小模組,再整合起來,過程比較好理解,因為本人也是剛學習階段,對於這樣方式的總結,個人感覺還是比較容易理解的,過程也比較清晰,只是內容有點多。

中間涉及的過程主要有:

1、 開發環境準備

2、FFMPEG視訊處理原理以及實現

3、QT介面設計和使用opengl繪製視訊

4、視訊播放進度控制

5、FFMPEG音訊處理原理以及實現

以上幾點是整體的一個設計,下面對每個模組進行詳細的說明。

一、開發環境的準備

我所用的開發環境是 qt-opensource-windows-x86-msvc2013-5.7.0.exe和vs2013,既然在windows下開發我們最好使用Qt的msvc版本,編譯器用微軟的VS。雖然Qt的mingw版本有自己的編譯器,但相對於VS的Debug能力以及使用方面,mingw版本就有些痛苦了,當然要是在linux下開發那就用mingw版本吧。

Qt的下載地址:http://download.qt.io/archive/qt/

vs2013的下載地址:

    連結: https://pan.baidu.com/s/19FRmfnqM-eBibPQO4oIYtg 密碼: 733u

Qt VS開發外掛下載地址:

    http://download.qt.io/archive/vsaddin/

對於使用Qt5.7以上的版本,在下載開發外掛時最好下載 qt-vs-addin-1.2.5.exe以上的版本,不然後面會有些問題,對於Qt和VS的下載建議下載相同位數,否則後面都是麻煩。再提供一個能加快編寫程式速度的外掛 Visual_Assist_X,怎麼用的大家可以百度,網上有很多資源,下載地址:https://download.csdn.net/download/hfuu1504011020/10625278,對於以上開發環境安裝順序以及使用,網上也有很多資源這裡就不再說明了,Qt VS的開發外掛最好在Qt和VS安裝好後再安裝。

以上提供了Qt的開發環境,現在準備FFMpeg開發環境

FFMpeg下載地址:http://ffmpeg.org/

之後點選左側目錄的download出現Get the packages後選擇Windows圖示後點擊進入再點選Windows Builds出現以下介面1,然後選擇Windows 32-bit的FFMpeg,當然你也可以選擇64位的,不過我選擇的是32位,學習使用足夠了,之後我們將它右側linking下的Shared、Dev下載下來,解壓後Dev的include裡是它的標頭檔案、lib裡是他的靜態連結庫。Shared裡的bin是它的dll和.exe程式,之後我們將它Dev裡的include、lib和Shared裡的bin拷貝出來形成如下圖2所示,其中的Src目錄裡是我們基於FFmpeg的專案。

                                                           圖一



                                                              圖二

Qt5.7.0、VS2013、FFMpeg開發環境安裝好後,現在我們需要在VS2013中建立專案,這裡主要是想說下如何配置專案。在我們建立好專案後(專案在我們上面所說的src中,不能出錯,否則後面的專案配置就不是這樣配置的),然後選擇專案右擊出現屬性點選,出現如下介面。在配置屬性常規中的輸出目錄配置…\bin\win32(這裡的…\是將我們的目錄退回到上面圖二的位置,之後再進入bin\win32,這裡的win32是我下載FFMpeg時同時下載了32位和64位的,所以在bin目錄下有個win32和win64,分別放的是不同版本的FFMpeg下的bin目錄中的檔案,lib下也是如此),然後點選C/C++中的常規,在附加包含目錄中編輯加入配置…\include。然後在連結器中同樣選擇常規在附加庫目錄中編輯加入配置…\lib\win32。在高階中安全異常處理程式選擇否,C/C++和連結器在下圖中都能看到。

至此配置檔案以及FFMpeg的開發環境準備結束,我們開始下一階段視訊處理的原理以及實現。

下一篇連結:https://blog.csdn.net/hfuu1504011020/article/details/82590612