詳解vs2010編譯live555



    公司項目需求,最近在學習流媒體方面的知識,瞭解到live555可以將視頻,音頻流化,通過rtsp協議傳輸,正符合公司項目的要求。

    網上看了幾篇關於如何在VS2010下編譯live555的博客,但是在編譯過程中還是遇到了很多問題,浪費了很多時間,現在把自己的編譯過程整理下來,希望能給其他人提供一點幫助,讓他們少走一點彎路。


-----------------------------------------------------------------------------------


1.參考博客

    http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html

    http://blog.csdn.net/lf8289/article/details/7785898

    特別感謝這兩位的博客,講的很詳細!!!


2.live555介紹

    Live555 是一個爲流媒體提供解決方案的跨平臺的C++開源項目,它實現了對標準流媒體傳輸協議如RTP/RTCP、RTSP、SIP等的支持。Live555實現了對多種音視頻編碼格式的音視頻數據的流化、接收和處理等支持,包括MPEG、H.263+、DV、JPEG視頻和多種音頻編碼。同時由於良好的設計,Live555非常容易擴展對其他格式的支持。目前,Live555已經被用於多款播放器的流媒體播放功能的實現,如VLC(VideoLan)、MPlayer。(摘自百度百科:live555)


3.live555源碼下載

    live555官網提供了整套源碼供我們下載,參考,我們下載live555-latest.tar.gz即可。

   http://www.live555.com/liveMedia/public/


4.lib編譯

   (1)打開VS2010,新建一個解決方案,此處我命名爲myLive555,在該解決方案下新建BasicUsageEnvironmentgroupsockliveMediaUsageEnvironment四個工程,應用類型爲靜態庫

        (即生成的是lib動態鏈接庫,我們也可以在工程名右擊->屬性->配置屬性->常規->項目默認值->配置類型中配置這個屬性)。

              

           

    (2)將源碼對應目錄下的文件複製到對應目錄下(*.cpp*.c*.hh*.h以及include目錄),我們可以使用控制檯的命令去完成複製工作,這樣比較省事。

          指令格式:copy源目錄(文件) 目標路徑

         

          然後將對應的文件添加到對應的項目目錄(*.c,*.cpp添加至源文件,*.hh*.h添加至頭文件)

         

    (3)分別對四個工程做以下配置

        設置動態鏈接庫的輸出屬性,屬性->配置屬性->常規->輸出目錄,設置爲..\outFile,他生成的lib文件將保存在上級目錄的outFile文件夾下

       

       導入頭文件,屬性->配置屬性->C/C++->附加包含目錄。

       

       BasicUsageEnviroment除了需要引入自己的include文件夾下的文件外,同時還需要引入groupsockUsageEnvironment文件夾下的include文件。

       groupsock需要引入的文件爲:自己include下的文件,BasicUsageEnvironmentUsageEnvironment文件夾下的include文件。

       liveMedia需要引入的文件爲:自己include下的文件,BasicUsageEnvironmentgroupsockUsageEnvironment文件夾下的include文件。

       UsageEnvironment需要引入的文件爲:自己include下的文件,BasicUsageEnvironmentgroupsock文件夾下的include文件。

    (4)分別編譯4個工程,我們可以在outFile下找到編譯生成的四個動態鏈接庫。


5.mediaServer編譯

   mediaServer是一個支持rtsp協議傳輸的服務程序,他生成一個exe可執行程序。

    (1)myLive555下創建mediaServer工程,程序類型爲控制檯應用程序(win32),並把源碼中的文件拷貝到對應的目錄下。

       

    (2)mediaServer設置成啓動項目(右擊解決方案->屬性->通用屬性->啓動項目)

       

    (3)添加頭文件,在mediaServer目錄下創建一個文件夾include,將其他4個工程下的所有頭文件拷貝到這個include文件夾下(*.hh*.h,包括這四個工程下的include文件夾下的內容),設置附加頭文件目錄。

       

    (4)將生成的動態鏈接庫拷貝到..\Debug下(..\Debug需要mediaSever編譯過一次纔會生成,不管編譯正確與否)。

    (5)設置引用的庫目錄。

       

    (6)添加相關的依賴項Ws2_32.lib;BasicUsageEnvironment.lib;groupsock.lib;liveMedia.lib;UsageEnvironment.lib;

       

    (7)編譯完成後編譯運行即可看到效果啦。

       打開Debug下的mediaServer.exe,可以開到如下,說明成功了。

       


6.使用VLC流媒體視頻播放器測試

   找一個MP3mkv等格式的文件,放在Debug目錄下,與mediaServer.exe在同一個目錄下面。

   

    



-----------------------------------------------------------------------------------


至此,在VS2010下編譯live555就成功了,我們也可以通過局域網內的其他計算機使用vlc播放服務端的視頻。

如果想要編譯好的庫文件,請猛擊這裏

如果想要編譯好的整個工程,請猛擊這裏











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章