導航:首頁 > IDC知識 > live555伺服器搭建

live555伺服器搭建

發布時間:2020-12-24 10:38:15

1、最近學習流媒體伺服器,下了個LIVE555的源碼,在WINDOWS下調試成功,但是播放不了媒體文件。

你可以找一下相關的論壇,最好是那種人氣比較高的論壇,注冊會員,發帖求助,會有高手幫你的。

2、live555 如何主動像伺服器發送視頻流,怎麼改,或者怎麼配置,尋求幫助

你遇到的問題和我現在要解決的問題是一樣的!!!!!

3、Linux環境下如何調試live555求答案

1,./genMakefiles linux-gdb 其中,後面的copygdb是必須的;2,修改live/config.linux-gdb文件,在COMPILE_OPTS一行中添加-DDEBUG,以使源代碼中的debug有效;3,make 編譯文件4,運行gdb live555ProxyServer5,set args 輸入參數,如set args -v rtsp://192.168.xxx.xxx6,可以先設置斷點,如break xx ,然後run;7,進行單步……隨意調試

4、live555的proxyServer怎麼搭建環境,沒有RTSP攝像機

這得看實在PC端還是PS3端停止的。如果在PC端,那就需要找到psdm的根目錄,然後刪除Downloads文件夾。暫停回ps3下載,重啟電腦,答再打開PSDM,繼續ps3下載。就可以了!如果是ps3端,很簡單,中止,然後繼續就可以了!

5、live555中是怎樣創建rtsp伺服器的

可以保存下來的 你發的這個網址本身就是一個音樂的鏈接地址
直接在迅雷中 新建—普通/emule任務 然後把你的這個網址放進去就可以下載的
很簡單的

6、在Linux環境下如何調試live555

(1)先下載live555的源碼如:live.2011.06.14a.tar.gz(2)解壓源碼tar -zxvf live.2011.06.14a.tar.gz(3)cd live(4)./genMakefiles linux-gdb(5)make經過以上步驟生成的live555MediaServer可以用於內gdb調試,如果要使源代碼中的DEBUG宏有效容,還需要修改live/config.linux-gdb文件,在COMPILE_OPTS一行中添加-DDEBUG即可。

7、live555客戶端和服務端代碼是一套嗎

詳細的語音教程,從架設到登陸,從引擎更新到登陸器配置,足以應付你開個簡單的讓朋友們玩玩了。文件已經上傳,需要的話點擊下載即可。

8、live555的介紹

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

9、怎樣編譯live555 openrstp

1: 編譯
(1): ./genMakefiles linux
(2): make

2: 伺服器環境
伺服器端是一個支持RTSP server的H.264的攝像頭;

3: 運行 openRTSP
./openRTSP -d 20 -f 20 -w 640 -h 480 -b 400000 "rtsp://192.168.2.239/id=0"
或 ./openRTSP -f 20 -w 640 -h 480 -b 400000 "rtsp://192.168.2.239/id=0"
參數解釋; -d 20 --->程序運行時間,如果沒有程序持續從伺服器獲取視頻;
-f 20 ----> 幀率
-w 640 -h 480 -----> 幀解析度
-b 400000 ---->碼率
4: 如果不修改playCommon.cpp的代碼,openRTSP將獲取的視頻數據通過stdout直接列印到屏幕

5: 如果是自己取裸碼流,則可以調用SPS相關的函數,將H264的幀信息告訴解碼器,否則無法解碼
unsigned int num=1;
SPropRecord * sps = parseSPropParameterSets(subsession->fmtp_spropparametersets(),num);
fileSink = H264VideoFileSink::createNew(*env, outFileName,
subsession->fmtp_spropparametersets(),
fileSinkBufferSize, oneFilePerFrame);
struct timeval tv={0,0};
unsigned char start_code[4] = {0x00, 0x00, 0x00, 0x01};
fileSink-> addData(start_code, 4, tv);
fileSink->addData(sps[0].sPropBytes,sps[0].sPropLength,tv);
delete[] sps;

6: 稍微修改代碼讓openRTSP只錄視頻,且保存到指定的文件
streamURL = argv[1];
// add by Andy_xi
createReceivers = True; // 保存視頻
outputAVIFile = False; //因為是H264
videoOnly = True;
singleMedium = "video"; //只要視頻
//<------end

7: 調試記錄
啟動openRTSP後,一定的看到SDP信息中的SPS信息,否則解碼器可能不能解碼
a=fmtp:106 profile-level-id=42001E;sprop-parameter-sets=Z0KAKNoB4AiXlQ==,aM48gA==;packetization-mode=0

只要有這個信息,用file 命令看生成h264文件顯示如下:

new.h264: JVT NAL sequence, H.264 video, baseline @ L 40

10、live555 rtspserver.cpp 為什麼是tcp的

1,RTSP連接的建立過程
RTSPServer類用於構建一個RTSP伺服器,該類同時在其內部定義了一個RTSPClientSession類,用於處理單獨的客戶會話。
首先創建RTSP伺服器(具體實現類是DynamicRTSPServer),在創建過程中,先建立Socket(ourSocket)在TCP的554埠進行監聽,然後把連接處理函數句柄

(RTSPServer:: incomingConnectionHandler)和socket句柄傳給任務調度器(taskScheler)。

任務調度器把socket句柄放入後面select調用中用到的socket句柄集(fReadSet)中,同時將socket句柄和incomingConnectionHandler句柄關聯起來。接著,主程序開始進入任務調度器的主循環(doEventLoop),在主循環中調用系統函數select阻塞,等待網路連接。
當RTSP客戶端輸入(rtsp://192.168.1.109/1.mpg)連接伺服器時,select返回對應的scoket,進而根據前面保存的對應關系,可找到對應處理函數句柄,這里就是前面提到的incomingConnectionHandler了。在incomingConnectionHandler中創建了RTSPClientSession,開始對這個客戶端的會話進行處理。

具體分析如下:

DynamicRTSPServer::creatnew():
1.調用繼承自RTPSever::setUpOurSocket:
1.調用GroupsockHelper 的setupStreamSocket創建一個socket連接,並綁定,
2.設置socket的發送緩存大小,
3.調用listen開始監聽埠,設置同時最大能處理連接數LISTEN_BACKLOG_SIZE=20,如果達到這個上限則client端將收到ECONNERREFUSED的錯誤
4.測試綁定埠是否為0,為0的話重新綁定斷口,並返回系統自己選擇的新的埠。
5.返回建立的socket文件描述符

2.調用自己和RTPSever的構造函數:
RTPSever構造函數:
1.用一個UsageEnvironment對象的引用構造其父類Medium
2.設置最大等待回收連接時間reclamationTestSeconds,超過這個時間從客戶端沒有RTSP命令或者RTSP的RR包則收回其RTSPClientSession
3.建立一個HashTable(實際上是一個BasicHashTable),fServerMediaSessions指向這個表。
4.調用參數UsageEnvironment對象env的成員,一個TaskScheler指針所指對象(實際就是一個BasicTaskScheler對象)的成員函數
turnOnBackgroundReadHandling():
1.調用一個HandlerSet::assignHandler()創建一個Handler,把socketNum【此處為伺服器監聽的socket描述符】和處理函數RTSPServer::incomingConnectionHandler(),還有指向RTSPSever的指針綁定在一起。
incomingConnectionHandler作用:
1.調用accept返回伺服器與客戶端連接的socket描述符
2.設置客戶端描述符為非阻塞
3.增加客戶端socket描述符的發送緩存為50*1024
4.為此客戶端隨機分配一個sessionId
5.用客戶端socket描述符clientSocket,sessionId,和客戶端地址clientAddr調用creatNewClientSession創建一個clientSession。

與live555伺服器搭建相關的知識