標籤:
1 開發一種window平台本地發布媒體流用戶端程式,該程式完成音視頻採集、DSHOW虛擬網路攝影機、虛擬視頻功能、編碼、發布媒體流媒體、伴奏管理等功能,本程式安裝時將虛擬網路攝影機註冊到window系統。
2 window平台本地程式在運行後,建立6個信令監聽socket,為防止網路安全軟體或服務發出綁定連接埠警示從而影響使用者體驗與防止與原生其它程式的監聽連接埠衝突與,6個信令監聽socket綁定網路地扯127.0.0.1、連接埠分別為843(用於Flash快速擷取策略存取控制檔案),12168,22168,32168,42168,52168。
3 window平台本地程式在運行後使用者通過介面設定物理網路攝影機或其它虛擬網路攝影機,同時排除前述由本程式產生的虛擬網路攝影機,該程式跟據使用者選定的網路攝影機名稱,建立DShow採集管理器與視頻採集Filter,並視頻採集Filter加入到DShow採集管理器,開始採集視頻。
4 通過網頁載入Flash,Flash運行後,使用者通過介面選擇前述虛擬網路攝影機、音頻採集裝置,建立Camara對像以前述虛擬網路攝影機為參數調用其相關方法開始採集視頻,然後同Video對像關聯以便進行視頻預覽,並儲存使用者所選擇的音頻採集裝置名稱;同時建立5個Flash TCP socket,同時向地扯為127.0.0.1、連接埠分別為12168,22168,32168,42168,52168的網路地扯發起串連,其中哪個socket先返回建立成功就記錄哪個socket為USocket(為長串連且周期發送保活心跳通知),同時關閉其它4個socket,進入第5步;若全部失敗,提示使用者安裝window平台本地推流程式(給出下載地扯),然後進入基於Flash原生API實現的流媒體推流流程。
5 Flash通過USocket向window平台本地推流程式發送開始推流通知,同時附帶音頻採集設務名稱及音頻編碼碼率、視頻編碼碼率、發布流伺服器地扯等資訊,window平台本地推流程式收到後,開始建立音採集DShow Filter,將其加入第3步建立的DShow採集管理器中;同流媒體伺服器建立網路連接;將採集到的音視頻進行編碼(音頻採用AAC+SBR、視頻採用H246 High Profile以實現音視頻高效編碼);通過前述網路連接將編碼資料進行RTMP和或RTP封包後發送給流媒體伺服器。
基於Flash與window平台本地程式通訊實現媒體流發布