1.一種直播源切換方法,包括:步驟1:當(dāng)客戶端請(qǐng)求直播資源時(shí),從多個(gè)直播數(shù)據(jù)源中選擇一個(gè)第一直播數(shù)據(jù)源作為主用數(shù)據(jù)源,從多個(gè)直播數(shù)據(jù)源中選擇一個(gè)第二直播數(shù)據(jù)源作為備用直播數(shù)據(jù)源;可以根據(jù)客戶端與多個(gè)直播數(shù)據(jù)源之間的傳輸鏈路的QOS進(jìn)行測(cè)試,選擇qos最好的作為主用數(shù)據(jù)源,選擇qos第二好的作為備用數(shù)據(jù)源;
步驟2:客戶端從第一直播數(shù)據(jù)源持續(xù)接收數(shù)據(jù);
步驟3:客戶端從第二數(shù)據(jù)源周期性的接收數(shù)據(jù),例如每隔一分鐘,從第二數(shù)據(jù)源接收1秒的直播數(shù)據(jù),如果接收數(shù)據(jù)成功,則保留第二數(shù)據(jù)源作為備用數(shù)據(jù)源,如果接收數(shù)據(jù)失敗,則從新選擇備用數(shù)據(jù)源;選擇新的備用數(shù)據(jù)源的方式是從所有數(shù)據(jù)源中,排除了主用數(shù)據(jù)源和當(dāng)前數(shù)據(jù)源后選擇qos最好的數(shù)據(jù)源作為新的備用數(shù)據(jù)源;
步驟4:客戶端監(jiān)測(cè)是否從第一數(shù)據(jù)源持續(xù)接收到音視頻數(shù)據(jù),如果持續(xù)預(yù)定時(shí)間沒(méi)有收到,則判斷為直播音視頻中斷,并從接收到的數(shù)據(jù)中分析出最后播放時(shí)間作為中斷點(diǎn),并執(zhí)行步驟5,否則執(zhí)行步驟6;
步驟5:客戶端將備用數(shù)據(jù)源切換為主用數(shù)據(jù)源,并將中斷點(diǎn)發(fā)送給新的主用數(shù)據(jù)源,請(qǐng)求從該時(shí)間點(diǎn)以后的直播數(shù)據(jù),并重新選擇新的備用數(shù)據(jù)源;
步驟6:客戶端將接收的直播數(shù)據(jù)播放出來(lái)。
2.一種直播源切換方法,包括:步驟1:當(dāng)客戶端請(qǐng)求直播資源時(shí),從多個(gè)直播數(shù)據(jù)源中選擇一個(gè)第一直播數(shù)據(jù)源作為主用數(shù)據(jù)源,從多個(gè)直播數(shù)據(jù)源中選擇一個(gè)第二直播數(shù)據(jù)源作為備用直播數(shù)據(jù)源;可以根據(jù)客戶端與多個(gè)直播數(shù)據(jù)源之間的傳輸鏈路的QOS進(jìn)行測(cè)試,選擇qos最好的作為主用數(shù)據(jù)源,選擇qos第二好的作為備用數(shù)據(jù)源;
步驟2:客戶端從第一直播數(shù)據(jù)源持續(xù)接收數(shù)據(jù);
步驟3:客戶端從第二數(shù)據(jù)源周期性的接收數(shù)據(jù),例如每隔一分鐘,從第二數(shù)據(jù)源接收1秒的直播數(shù)據(jù),如果接收數(shù)據(jù)成功,則保留第二數(shù)據(jù)源作為備用數(shù)據(jù)源,如果接收數(shù)據(jù)失敗,則從新選擇備用數(shù)據(jù)源;選擇新的備用數(shù)據(jù)源的方式是從所有數(shù)據(jù)源中,排除了主用數(shù)據(jù)源和當(dāng)前數(shù)據(jù)源后選擇qos最好的數(shù)據(jù)源作為新的備用數(shù)據(jù)源;
步驟4:客戶端統(tǒng)計(jì)最近一段時(shí)間接收到的數(shù)據(jù)包的延遲情況,例如可以選擇最近1分鐘內(nèi)接收到的所有數(shù)據(jù)包,通過(guò)計(jì)算到達(dá)時(shí)間和發(fā)送時(shí)間的差值來(lái)獲得延遲數(shù)據(jù)(發(fā)送時(shí)間是通過(guò)直播源在數(shù)據(jù)包中添加時(shí)間戳來(lái)實(shí)現(xiàn)的),從中選擇延遲最大的作為最大延遲;
步驟5:客戶端監(jiān)測(cè)是否從第一數(shù)據(jù)源持續(xù)接收到音視頻數(shù)據(jù),如果持續(xù)步驟4獲得的最大延遲的兩倍時(shí)間內(nèi)沒(méi)有收到,則判斷為直播音視頻中斷,并從接收到的數(shù)據(jù)中分析出最后播放時(shí)間作為中斷點(diǎn),并執(zhí)行步驟6,否則執(zhí)行步驟7;
步驟6:客戶端將備用數(shù)據(jù)源切換為主用數(shù)據(jù)源,并將中斷點(diǎn)發(fā)送給新的主用數(shù)據(jù)源,請(qǐng)求從該時(shí)間點(diǎn)以后的直播數(shù)據(jù),并重新選擇新的備用數(shù)據(jù)源;
步驟7:客戶端將接收的直播數(shù)據(jù)播放出來(lái)。
3.一種計(jì)算機(jī)程序,用來(lái)執(zhí)行權(quán)利要求1-2的方法。