【流媒體】live555—VS2008 下live555編譯、使用及測試(一)

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   使用   

【流媒體】live555—VS22008 下live555編譯、使用及測試

 

Ⅰ live555簡介

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

  該項目的原始碼包括四個基本的庫,各種測試代碼以及IVE555 Media Server。四個基本的庫分別是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。

Ⅱ 下載

live555源碼:http://www.live555.com/liveMedia/public/(官網)

 

Ⅲ 編譯步驟方法一(Winxp下命令方式)

0  綜述:利用genWindowsMakefiles.cmd產生VS可用的makefile

1  修改win32config。開啟live\win32config檔案,修改如下

TOOLS32 = c:\Program Files\DevStudio\Vc

TOOLS32 =  E:\Program   Files\Microsoft Visual Studio 10.0\VC

將TOOLS32修改為你的VS2010路徑

LINK_OPTS_0   =        $(linkdebug) msvcirt.lib

LINK_OPTS_0   =   $(linkdebug)  msvcrt.lib

編譯器索要的LINK運行庫不同,原本以為可以改為msvcrt100.lib,但沒找著

2  新增Makefile設定。開啟live\groupsock\Makefile.head,修改如下

INCLUDES =   -Iinclude -I../UsageEnvironment/include

INCLUDES =   -Iinclude -I../UsageEnvironment/include   -DNO_STRSTREAM

3  建立makefile

  方法:運行live\genWindowsMakefiles.cmd,產生VS能夠編譯的*.mak檔案

4  建立build.bat命令

  建立live\complie.bat,並新增內容如下:

5  開始編譯:(命令列下)執行complie.bat

6 這時會報編譯錯誤。需要在NetCommon.h中添加一行,typedef signed short int16_t;

7  編譯結果:

7-1  在對應的檔案下,如

 產生與cpp檔案對應的obj檔案(Object File中間代碼檔案,源檔案complie產生,在linux下為o檔案)

 產生lib庫: libBasicUsageEnvironment.lib、libgroupsock.lib、libUsageEnvironment.lib、libliveMedia.lib

 

7-2 在對應的檔案下,如:產生對應的obj檔案和exe檔案

 

:若要用VS2008對代碼進行調試跟蹤,那麼編譯時間需要做相應修改,修改方法如下:

  方法一:修改*.mak檔案下的NODEBUG 。不帶DEBUG,NODEBUG=1(預設);帶DEBUG,DEBUG=1

  方法二:在win32config加入一行 "NODEBUG=1" (不推薦)

 

方法二(Winxp+VS2008方式)

  如果需要自己調試修改源碼,採用編譯器的方式會更好些,這種方式也更利於源碼分析,步驟如下:

0  綜述:分別為每個庫單獨編譯產生lib

 

1  建立解決方案和lib工程,分別如下:

E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironmentE:\My Document\Visual Studio 2010\Projects\myLive555\liveMediaE:\My Document\Visual Studio 2010\Projects\myLive555\groupsockE:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment

  完整解決方案的結構

2  添加標頭檔

  方法1:採用全域包含方式(絕對路徑)。需要添加的include檔案包括

E:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment\includeE:\My Document\Visual Studio 2010\Projects\myLive555\liveMedia\includeE:\My Document\Visual Studio 2010\Projects\myLive555\groupsock\includeE:\My Document\Visual Studio 2010\Projects\myLive555\BasicUsageEnvironment\include

  方法2:採用局部(當前工程)包含方式(相對路徑)。推薦

  描述:工程->屬性->配置屬性->C/C++->常規->附加元件封裝含目錄

..\BasicUsageEnvironment\include..\groupsock\include..\liveMedia\include..\UsageEnvironment\include

 

3  添加檔案

    在上述lib工程中添加對應的所有的cpp檔案。

4 編譯每個工程,這時會報編譯錯誤。需要在NetCommon.h中添加一行,typedef signed short int16_t;

5  再次編譯每個工程,在debug目錄下,就會產生下面的四個靜態庫了。

  在debug目錄下產生 BasicUsageEnvironment.lib、groupsock.lib、UsageEnvironment.lib、liveMedia.lib

 

測試live555伺服器(不過目前不支援mp4,flv等格式的檔案,測試是用h264尾碼的檔案測試的)方式一:(利用ffplay.exe播放)

1 把媒體檔案放到和live555MediaServer.exe同一目錄

2 運行live555MediaServer.exe,彈出的dos框裡面有地址,如

3 用戶端,dos下進入到ffplay所在檔案夾下,然後輸入如下命令

    ffplay.exe rtsp://10.120.2.18/<媒體檔案名>

  彈出視頻播放畫面,如

 

方式二:(直接vlc中播放網路流)

1 把媒體檔案放到和live555MediaServer.exe同一目錄

2 開啟vlc plaer,開啟網路串流,輸入rtsp,如

3 點播放,開始播放,如

 

 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.