音視頻通訊 linphone源碼學習與分析

通過一段時間對linphone的學習和研究,將自己的學習記錄下來,一是爲了避免自己對知識的忘記,二是希望對linphone的熱愛者有所幫助!

整個linphone源碼體系包含兩大部分內容:

1.UI設計,包括兩種 gtk+ 和 命令行

包括客戶端的gtk+/glade接口和命令行的console接口

2.核心功能實現 liblinphone

liblinphone:這個庫用於實現linphone的所有功能

然而,它依賴下面的包:

eXosip2:這是SIP的用戶代理庫,它又依賴於庫libosip2

mediastreamer2:這是一個非常強大的庫,包括對audio/video的傳輸和處理

ortp:這是一個RTP實時傳輸協議庫

這段時間主要研究了osip,eXosip,ortp,mediastreamer2,linphone這幾個庫的接口和例程。


osip是一個底層的sip協議庫,主要包括對sip協議字段的解析、封裝、sdp協議的封裝解析和四個狀態機的實現,不包括對網絡通信的支持。通過回調函數的方式通知事件的發生。

eXosip是對osip接口的進一步封裝實現,主要包括對網絡通信的封裝,回調函數的實現,調度模式的實現,使得操作接口更加簡便。

ortp是一個對rtp,rtcp協議的封裝解析庫,包括完整的rtp會話的建立,數據接收,抖動補償等實現。


mediastream2是一個利用底層ortp庫,實現音視頻的捕獲,編碼,網絡傳輸,解碼,回放。利用一個輕量級鏈式架構,每一個處理實體都被包含在一個MSFiter內,MSFilter通過輸入輸出接口能夠和其他MSFilter連接。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章