標籤:des blog http os 使用 io strong ar 檔案
Ⅰ 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/(官網)
Ⅲ 編譯步驟方法一(Win7下命令方式)
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,並新增內容如下:
call "E:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"cd liveMedianmake /B -f liveMedia.makcd ../groupsocknmake /B -f groupsock.makcd ../UsageEnvironmentnmake /B -f UsageEnvironment.makcd ../BasicUsageEnvironmentnmake /B -f BasicUsageEnvironment.makcd ../testProgsnmake /B -f testProgs.makcd ../mediaServernmake /B -f mediaServer.mak
5 開始編譯:(命令列下)執行complie.bat
6 編譯結果:
6-1 在對應的檔案下,如
① 產生與cpp檔案對應的obj檔案(Object File中間代碼檔案,源檔案complie產生,在linux下為o檔案)
② 產生lib庫: libBasicUsageEnvironment.lib、libgroupsock.lib、libUsageEnvironment.lib、libliveMedia.lib
6-2 在對應的檔案下,如:產生對應的obj檔案和exe檔案
說明:若要用VS2010對代碼進行調試跟蹤,那麼編譯時間需要做相應修改,修改方法如下:
方法一:修改*.mak檔案下的NODEBUG 。不帶DEBUG,NODEBUG=1(預設);帶DEBUG,DEBUG=1
方法二:在win32config加入一行 "NODEBUG=1" (不推薦)
方法二(Win7+VS2010方式)
如果需要自己調試修改源碼,採用編譯器的方式會更好些,這種方式也更利於源碼分析,步驟如下:
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 設定工程的輸出目錄。
路徑:E:\My Document\Visual Studio 2010\Projects\myLive555\lib
方法:項目-》屬性-》常規-》輸出目錄
5 編譯解決方案
結果:在lib目錄下產生 BasicUsageEnvironment.lib、groupsock.lib、UsageEnvironment.lib、liveMedia.lib
下載編譯好的live555(lib和標頭檔)
方式一,環境為Win7,包含編譯好的live555、提取的4個lib、myLive555Header和。下載(猛擊)
方式二,環境win7+VS2010,包含整個工程,下載(猛擊)
Ⅳ 使用執行個體
1 添加庫
①步驟一:
方法1. 將編譯產生的四個lib庫庫拷貝到“*:\Program Files\Microsoft Visual Studio 10.0\VC\lib”下面
方法2. 將編譯產生的四個lib庫庫拷貝到當前工程的cpp檔案下
方法3. 將編譯產生的四個lib庫作為全域庫的形式添進工程
②步驟二:
方法1. [菜單]“項目->屬性->配置屬性->連接器->輸入->附加依賴項”裡填寫
“libUsageEnvironment.lib;libliveMedia.lib;libgroupsock.lib;libBasicUsageEnvironment.lib;Ws2_32.lib”
再次溫馨提醒:VS2010中,多個lib之間需要用分號或者斷行符號隔開,用空格行不通,切記!信不信由你了,我在這個地方又折騰了一會了,青春不在啊~
方法2. pragma 方式
#pragma comment (lib, "Ws2_32.lib") #pragma comment (lib, "libBasicUsageEnvironment.lib")#pragma comment (lib, "libgroupsock.lib")#pragma comment (lib, "libliveMedia.lib")#pragma comment (lib, "libUsageEnvironment.lib")
2 添加標頭檔
說明:如果採用方式二編譯的,那麼此步驟可以省去
①步驟一:將所有的.h檔案放到一起,如myLive555Header裡面,再添加include
②步驟二:
方法1. “項目->屬性->配置屬性->C/C++->常規->附加元件封裝含目錄”
方法2. “工具->選項->項目和解決方案->C++ 目錄”,選擇對應平台,然後添加所需“包括檔案”目錄(此法VS2010不通)
3 測試代碼
直接用testProgs裡面的例子,我用的是testOnDemandRTSPServer.cpp,測試成功,如
Ⅴ 測試live555伺服器方式一:(利用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 點播放,開始播放,如
2014/5/20 新增 VS2013下編譯的最新live555(live555.2014.5.14版)完整工程
:http://download.csdn.net/detail/zgzhaobo/7376487
http://www.cnblogs.com/hummersofdie/archive/2013/04/23/3037184.html
多媒體開發之--- live555 vs2010/vs2013下編譯,使用,測試