1. 程式人生 > >基於FFmpeg的視訊播放器開發系列教程(一)

基於FFmpeg的視訊播放器開發系列教程(一)

前言

       在各大部落格,論壇,看到很多人對流媒體音視訊的開發感興趣,可是不知道怎麼入門,對音視訊的瞭解也很少,寫程式碼更不用說了,經過一段時間的整理,我準備在csdn上寫一套ffmpeg音視訊播放器的開發教程,希望對想從事ffmpeg音視訊領域的同學給與幫助,有什麼疑問可以在部落格下留言,我會及時回覆。希望看完的同學,可以從新手慢慢變成老司機。

       視訊開發庫有很多,例如微軟的DirectShow;開源庫OpenCV,當然OpenCV主要是影象處理,視訊部分還是用的ffmpeg, 而且無法解碼音訊;SDL;大華和海康都有自己的庫等等。音視訊屬於流媒體領域,學習和應用難度大,週期長,容易出現人才斷層,公司對應聘者的要求都比較高,讓很多人望而卻步。

       使用FFMPEG作為核心視訊播放器:Mplayer,ffplay,射手播放器,暴風影音,KMPlayer,QQ影音...

       使用FFMPEG作為核心的DirectshowFilter:ffdshow,lav filters...

       使用FFMPEG作為核心的轉碼工具:ffmpeg,格式工廠...

      事實上,FFMPEG的流媒體視音訊編解碼功能太強大了,幾乎囊括了現存所有的視音訊編碼標準,因此只要做視音訊開發,幾乎離不開它。

      關於ffmpeg的部落格很多,原始碼講解,例項Demo等等,太多了,最有名氣的應該是雷神了,斯人已去,對技術界是一大損失。本系列教程在講解時也會引用到別人現有的研究內容,畢竟我們是ffmpeg的使用者,需要站到巨人的肩膀上。有不當或者錯誤的地方,請各位朋友及時提示斧正。

 

一.windowsffmpeg開發環境搭配

 

1.1   ffmpeg的下載

       官網連結 https://ffmpeg.zeranoe.com/builds/

       可以下載最新版本或者以前的版本,如下所示的4.0版本

       

     例如選擇4.0版本,依次下載Static, Share, Dev三個檔案。例如32位版本的是如下三個檔案

    

      Dev資料夾下是include和lib檔案

      

        

     Shared檔案的Bin目錄是ffmpeg的dll

      

      

開發時需要include, lib,bin裡的檔案,本教程的開發環境是Win10,VS2105,Qt5.6, ffmpeg3.2.4.

VS開發如何新增include,lib,dll,請參考以下連結(老司機可以不用看):

https://www.cnblogs.com/dongsheng/p/4011145.html

 

 

二.VS2015Qt的安裝

       本教程做播放器,需要用介面庫,關於介面庫的選擇與學習,各家公司,學校都不同。C++的介面庫有MFC,Qt,DuiLib等等,該播放器用Qt來做介面開發,Qt學起來比MFC稍微容易些,還可以跨平臺,對於Linux,Mac的同學會有幫助。

       我是選擇把Qt裝到VS2015中,VS除錯比較容易,功能強大。如果Qt和VS都安裝好的同學,看下一篇部落格繼續學習。

       Qt沒安裝好的同學,請參考我的百度雲連結,進行安裝。

       VS2015安裝包,祕鑰,西紅柿外掛

            連結:https://pan.baidu.com/s/1kevzLxm4o4XKw2CqTBTDfA

            密碼:dez0

 

     VS2015_MSDN下載及安裝配置方法

          連結:https://pan.baidu.com/s/1wuwBzh4wqnyQ4Bm1FI9aKQ

          密碼:gynb

 

    Qt安裝方法 、Qt的下載連結

         連結:https://pan.baidu.com/s/1QXN7pkeHOUj-I0j_vrBKuw

         密碼:75dv

 

    Qt零基礎教程

        書籍《Qt5開發例項》帶目錄,高清,完整的原始碼,

        連結:https://pan.baidu.com/s/1G3v3eJXW1PkWK5iY0RzWxw

        密碼:hn7j

 

   Qt視訊資料連結:

    連結:https://pan.baidu.com/s/1N0cpXtGcfwoDRoH93vD9Hw

    密碼:hizp

 

   工欲善其事必先利其器,環境配好後,下一篇開始ffmpeg開發之旅。