Source & Sink
Source 和 Sink 在live555中是兩個(gè)非常重要的概念.
Source 發(fā)送端, 流的起點(diǎn), 可直觀理解為生產(chǎn)者, 負(fù)責(zé)讀取文件或網(wǎng)絡(luò)流的信息.
Sink 接收端, 流的終點(diǎn), 可理解為是消費(fèi)者, 直譯為水槽
.
視音頻的數(shù)據(jù)從源頭到最終保存到文件或顯示, 整個(gè)過(guò)程就像一個(gè)水流, 從源頭流呀流, 經(jīng)過(guò)了條條小路, 最終流到了水槽中.
- Source: 可能是RTP讀取數(shù)據(jù), 從文件中或攝像頭設(shè)備中等.
- Sink: 數(shù)據(jù)流最終可保存在文件中, 或顯示在屏幕上等.
- MediaSession: 用于表示一個(gè)RTP會(huì)話, 一個(gè)MediaSession可能包含多個(gè)子會(huì)話(MediaSubSession),子會(huì)話可以是音頻子會(huì)話窗轩、視頻子會(huì)話等验烧。
- Source和Sink通過(guò)RTP子會(huì)話(MediaSubSession)聯(lián)系在一起.
MediaSource - 流的源頭
MediaSouce是所有Souce的基類.
結(jié)合上圖, 以H264進(jìn)行舉例:
H264VideoStreamFramer是真正的Souce混稽,它用于從H264文件中讀取數(shù)據(jù),并組裝成幀过吻。
MediaSink - 流的終結(jié)
MediaSink是所有Sink的基類.
結(jié)合上圖, 以H264進(jìn)行舉例:
H264VideoFileSink才是真正的Sink, 完成將數(shù)據(jù)保存至文件.
H264VideoRTPSink才是真正的Sink, 完成數(shù)據(jù)的發(fā)送.
對(duì)于H264碼流退腥,數(shù)據(jù)流的流動(dòng)方向?yàn)椋?br> 服務(wù)器端:
H264VideoStreamFramer ->H264Or5Fragmenter (Filter)r->H264VideoRTPSink
客戶端:
H264RTPSouce -> Sink
References:
http://blog.csdn.net/ithzhang/article/details/38613359
http://www.cnblogs.com/mlj318/archive/2013/01/23/2871952.html
http://live555.com/liveMedia/doxygen/html/classH264VideoFileSink.html