1, // o=
// (needs to change if params are modified) ipaddressstr, // o=
fdescriptionsdpstring, // s=
finfosdpstring, // i=
libnamestr, libversionstr, // a=tool: sourcefilterline, // a=source-filter: incl (if a ssm session) rangeline, // a=range: line fdescriptionsdpstring, // a=x-qt-text-nam: line finfosdpstring, // a=x-qt-text-inf: line fmiscsdplines,// miscellaneous session sdp lines (if any) 還有最重要的 每個subsession->sdplines() 這個就是**於 ondemandservermediasubsession::sdplines() 嗯嗯,乙個和具體檔案無關的 ondemandservermediasubsession,,但是它裡面卻是通過 dummy 的framedsource 和 rtpsink 在實際實現的時候,呼叫具體的實現,如 mpeg4esvideostreamframer 等獲取 sdpline。如下: ondemandservermediasubsession::sdplines() { 把 **檔案 二進位制化成 bytestreamfilesource ,再用它來建立 mpeg4videostreamframer ,這個在另一篇博文中提過,是用來產生 頭和幀 的。 但是,這個 estbitrate 倒是不懂怎麼設定的?????? framedsource* inputsource = createnewstreamsource(0, estbitrate); unsigned char rtppayloadtype = 96 + tracknumber()-1; // if dynamic 這個是關於 sink 的建立 rtpsink* dummyrtpsink = createnewrtpsink(&dummygroupsock, rtppayloadtype, inputsource); 用以上的資訊產生 sdp setsdplinesfromrtpsink(dummyrtpsink, inputsource, estbitrate); 如果說之前那些應該是整個會話的資訊,而下面是對應** subsession tarck資訊: mediatype, // m=
fportnumforsdp, // m=
rtppayloadtype, // m=
ipaddressstr, // c= address estbitrate, // b=as:
rtpmapline, // a=rtpmap:... (if present) rangeline, // a=range:... (if present) auxsdpline, // optional extra sdp line trackid()); // a=control:
live555原始碼分析 live555大致流程
今天大致分析了下live555的流程,以h264為例子進行的分析.從連線到傳送rtp rtcp資料報。首先分析呢,不能太關注細節,先整體再區域性。在分析的過程中,設計到live555自己封裝的乙個高階類 比如迭代器,雜湊表,而且這2個類在live555中運用的範圍還非常的廣,但是無不例外都是用鍊錶進...
Live555學習筆記
live555原始碼 官網 關於live555編譯 linux編譯 1.進入live555目錄 cd live 2.執行genmakefiles檔案 genmakefiles linux 3.makefile windows編譯 無關於入口函式 標頭檔案位置 無 原始檔位置 mediaserver ...
Live555學習筆記
前一陣子,因為專案需要,研究了一下live555開源框架,研究的不是很深入,基本上把live555當做api用了一下,但是畢竟也是本人看的第乙個開源框架,在此記錄總結一下。主要使用其中的四個目錄,分別對應live555的四個庫 usageenvironment目錄,生成的靜態庫為libusageen...