直播音頻切換方法及流媒體服務(wù)器的制造方法
【專利摘要】本發(fā)明實施例提供一種直播音頻切換方法及流媒體服務(wù)器,包括:將實時接收的直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID;將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流;建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中;將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。通過流媒體服務(wù)器對直播視頻流和直播音頻流進(jìn)行切片及混編操作,可將多路直播音頻流加入到一路TS媒體流中,無需對客戶端進(jìn)行改進(jìn)即可實現(xiàn)直播音頻的切換。
【專利說明】
直播音頻切換方法及流媒體服務(wù)器
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及音視頻技術(shù)領(lǐng)域,尤其涉及一種直播音頻切換方法及流媒體服務(wù)器。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)直播中,節(jié)目提供方將事先配置好的直播音頻信號或者直播音視頻信號通過網(wǎng)絡(luò)上傳至服務(wù)器,并發(fā)布至網(wǎng)址供用戶觀看。現(xiàn)有網(wǎng)絡(luò)直播節(jié)目中的直播音頻和直播視頻都是固定配置的而且是單一的,如果用戶想找到自己喜愛的直播音頻,則需要在不同網(wǎng)絡(luò)直播節(jié)目提供方之間切換選擇。
[0003]而如果用戶通過切換選擇后確定觀看某一網(wǎng)絡(luò)直播節(jié)目,則只能被動地接收該網(wǎng)絡(luò)直播節(jié)目中配置的單一的直播音頻,導(dǎo)致用戶無法在網(wǎng)絡(luò)直播節(jié)目中自主地選擇喜歡的直播音頻。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種直播音頻切換方法及流媒體服務(wù)器,用以解決現(xiàn)有技術(shù)中用戶無法在同一直播節(jié)目中自主選擇直播音頻的問題。
[0005]本發(fā)明實施例提供一種直播音頻切換方法,包括:
[0006]將實時接收的直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID,其中,對應(yīng)于同一路直播音頻流的TS切片具有相同的PID,對應(yīng)于同一路直播視頻流的TS切片具有相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同;
[0007]將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流;
[0008]建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中;
[0009]將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。
[0010]本發(fā)明實施例提供一種流媒體服務(wù)器,包括:
[0011 ]數(shù)據(jù)獲取模塊,用于實時接收直播視頻流和多路直播音頻流;
[0012]TS切片處理模塊,用于將所述直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID,其中,對應(yīng)于同一路直播音頻流的TS切片具有相同的PID,對應(yīng)于同一路直播視頻流的TS切片具有相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同;
[0013]數(shù)據(jù)混編模塊,用于將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流;
[0014]索引模塊,用于建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中;
[0015]數(shù)據(jù)發(fā)送模塊,用于將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。
[0016]本發(fā)明實施例提供的直播音頻切換方法及流媒體服務(wù)器,對流媒體服務(wù)器接收到的直播視頻流和直播音頻流進(jìn)行切片及混編操作,實現(xiàn)了將多路直播音頻流加入到一路TS媒體流中,無需對客戶端進(jìn)行改進(jìn)即可實現(xiàn)直播音頻的切換。直播時,只需將一路TS媒體流發(fā)送至客戶端,客戶端即可按照節(jié)目映射表中的直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系,通過選擇直播音頻流的描述信息來實現(xiàn)切換至播放TS媒體流中相對應(yīng)的TS切片,從而實現(xiàn)在一網(wǎng)絡(luò)直播中進(jìn)行直播音頻的切換,滿足了用戶的多元化需求。
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為本發(fā)明直播音頻切換方法流程圖;
[0019]圖2為本發(fā)明直播音頻切換方法實施例流程圖;
[0020]圖3為本發(fā)明流媒體服務(wù)器結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0022]本發(fā)明實施例提供一種直播音頻切換方法及流媒體服務(wù)器,可應(yīng)用于網(wǎng)絡(luò)直播場景中,人們在觀看網(wǎng)絡(luò)直播節(jié)目時,尤其是體育賽事,所有的觀眾都只能在屏幕前共享同一個主播,然而,不同性別,不同年齡,不同地域的觀眾喜好各不相同,不同的觀眾對同一直播節(jié)目都有各自的立場,觀眾自然喜歡聽到和自己立場一致的主播的解說。如果根據(jù)現(xiàn)有的解決方案,只能在不同網(wǎng)絡(luò)直播提供方之間進(jìn)行切換選擇,不僅浪費時間和流量,且在切換緩沖過程中有可能錯過精彩的比賽瞬間。本發(fā)明實施例提供直播音頻切換方法及流媒體服務(wù)器,就是要解決同一直播節(jié)目中用戶無法自主選擇直播音頻的問題,通過網(wǎng)絡(luò)分布式的方式采集直播視頻流和多路直播音頻流,每個主播對應(yīng)一路直播音頻流,流媒體服務(wù)器接收采集的直播視頻流和直播音頻流并進(jìn)行混編生成一路直播媒體流,這樣一路直播媒體流中就包含了直播視頻和與直播視頻對應(yīng)的多個主播的直播音頻。直播媒體流將直接發(fā)送到客戶端,用戶可根據(jù)自己的喜好在客戶端中選擇喜歡的主播,客戶端即可通過節(jié)目映射表提取出該主播對應(yīng)的音頻數(shù)據(jù)并進(jìn)行播放。這樣,用戶即可在同一直播節(jié)目中自主地進(jìn)行直播音頻的選擇,且可實現(xiàn)直播音頻的切換,用戶體驗大大提高。
[0023]需要說明的是,本發(fā)明實施例提供的直播音頻切換方法及流媒體服務(wù)器還可應(yīng)用于其它場景,在此不作限定。
[0024]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,以下結(jié)合附圖及具體實施例,對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。
[0025]如圖1所示,本發(fā)明實施例提供一種直播音頻切換方法,包括:
[0026]SlOl,將實時接收的直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID,其中,對應(yīng)于同一路直播音頻流的TS切片具有相同的PID,對應(yīng)于同一路直播視頻流的TS切片具有相同的PIDji應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同;
[0027]S102,將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流;
[0028]S103,建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中;
[0029]S104,將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。
[0030]對流媒體服務(wù)器接收到的直播音頻流和直播視頻流的處理過程如步驟SlOl所述。音頻采集終端和視頻采集終端傳送的音頻流和視頻流都是不分段的連續(xù)碼流,為了實現(xiàn)多路連續(xù)碼流的混編,步驟SlOl將直播音頻流和直播視頻流進(jìn)行切片處理,以獲得多個小的TS切片,步驟S102將多個TS切片打包復(fù)合形成一路TS媒體流,生成的TS媒體流將通過⑶N網(wǎng)絡(luò)并基于HTTP Live Streaming(HLS)流媒體傳輸協(xié)議發(fā)送至客戶端。為了保證客戶端可從TS媒體流中提取單路直播音頻流相關(guān)的TS切片進(jìn)行播放,步驟SlOl還為每個TS切片添加了頭文件,所述頭文件中包含數(shù)據(jù)類型(音頻、視頻或其他)以及PID(TS數(shù)據(jù)包的ID)等信息,TS切片頭文件中的PID與其將插入到的TS數(shù)據(jù)包的PID—致;而且,為了區(qū)分各路直播音頻流或直播視頻流相關(guān)的TS切片,步驟SlOl還將對應(yīng)于同一路直播音頻流的TS切片分配相同的PID,對應(yīng)于同一路直播視頻流的TS切片分配相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同。TS媒體流是由TS數(shù)據(jù)包構(gòu)成,步驟S102中直播視頻流和直播音頻流相關(guān)的TS切片依據(jù)PID按規(guī)則被插入到相應(yīng)的TS數(shù)據(jù)包中,實現(xiàn)多路碼流的混編。
[0031]依據(jù)上述步驟S1I和S102對直播視頻流和直播音頻流的處理,可獲得一路TS媒體流,為了保證客戶端在播放所述TS媒體流過程中可實現(xiàn)直播音頻的自由切換,步驟S103中建立了一節(jié)目映射表,所述節(jié)目映射表將在步驟S104中與所述TS媒體流一同發(fā)送至客戶端,客戶端通過解析讀取所述節(jié)目映射表,可根據(jù)用戶在客戶端中執(zhí)行的切換操作,從節(jié)目映射表中查找到相應(yīng)的TS切片的PID,之后直接從對應(yīng)的TS數(shù)據(jù)包中提取出TS切片進(jìn)行切換播放即可。
[0032]本實施例中,在流媒體服務(wù)器向客戶端進(jìn)行直播文件發(fā)送之前即完成了直播視頻和多路直播音頻的混編,且通過節(jié)目映射表以及TS切片的PID等處理,為客戶端執(zhí)行音頻切換準(zhǔn)備好了數(shù)據(jù)基礎(chǔ)以及切換邏輯基礎(chǔ),使用現(xiàn)有的客戶端即可實現(xiàn)同一直播節(jié)目中多路直播音頻的自由切換。
[0033]參考圖2,以下再以一實施例對實時接收直播音頻流的方案進(jìn)行詳細(xì)說明。
[0034]體育賽事等網(wǎng)絡(luò)直播節(jié)目對節(jié)目的實時性要求比較高,但由于各個音頻采集終端分布在不同位置,這有可能導(dǎo)致各路直播音頻流的傳送至流媒體服務(wù)器的網(wǎng)絡(luò)延時各不相同,上述步驟SlOl?104獲得的TS媒體流發(fā)送到客戶端后,用戶在進(jìn)行直播音頻切換時有可能會出現(xiàn)音視頻不同步的問題。
[0035]為實現(xiàn)直播音頻的同步切換,本實施例中,步驟SlOl之前,還包括:
[0036]SlOll,建立VPN,通過VPN通道連接多個音頻采集終端;
[0037]S1012,根據(jù)RTP/RTCP實時獲取各音頻采集終端采集的直播音頻流。
[0038]VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò)),虛擬專用網(wǎng)絡(luò)的功能是:在公用網(wǎng)絡(luò)上建立專用網(wǎng)絡(luò),進(jìn)行加密通訊。步驟SlOll中,音頻采集終端和視頻采集終端可根據(jù)不同主播的需要而架設(shè)在不同的位置,采集到的直播音頻流和直播視頻流將發(fā)送到流媒體服務(wù)器中進(jìn)行處理。音頻采集終端可通過客戶端等方式加入到流媒體服務(wù)器的VPN中,步驟S1012中各音頻采集終端與流媒體服務(wù)器建立RTP/RTCP的媒體傳輸及控制通路,兩者建立連接的方式多種多樣,可以通過RTSP或者是VOIP的方式,建立連接后,直播音頻流可以通過RTP傳輸?shù)搅髅襟w服務(wù)器,并通過RTCP控制RTP的傳輸過程,如流控制和擁塞控制,RTP和RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實時數(shù)據(jù)。
[0039]其中,RTP(RealTime Transport Protocol,實時傳播協(xié)議)是實時傳播最有效的方式,RTP以UDP作為傳輸通道,但是存在兩個問題:a、無法穿越防火墻和NAT; b、RTP是非可靠協(xié)議,有時會丟包。本發(fā)明實施例中,通過VPN有效地解決了RTP無法穿越防火墻的問題;通過RTCP對RTP的傳輸過程進(jìn)行控制,有效地解決了 RTP傳輸丟包的問題。
[0040]本實施例中,為了保證流媒體服務(wù)器的VPN安全快捷地連接各個音頻采集終端中,優(yōu)選地,步驟SlOl I包括:
[0041]在直播開始前,根據(jù)已知的音頻采集端的網(wǎng)絡(luò)地址主動將所述音頻采集端加入所述VPN中;以及
[0042]在直播過程中,實時監(jiān)聽所述音頻采集端發(fā)起的網(wǎng)絡(luò)連接請求,并在監(jiān)聽到所述音頻采集端的網(wǎng)絡(luò)連接請求時,在安全驗證后將所述音頻采集端實時加入到VPN中。
[0043]對于固定主播,可為其音頻采集終端分配固定的網(wǎng)絡(luò)地址,在預(yù)定時間或場景下,流媒體服務(wù)器可主動將音頻采集終端加入到VPN中。而對于非固定主播,本實施例也可實現(xiàn)音頻采集終端實時動態(tài)加入VPN,根據(jù)音頻采集終端自主發(fā)起的請求,流媒體服務(wù)器可對其進(jìn)行安全驗證并在確認(rèn)身份后允許其加入VPN。另外,由于音頻文件的數(shù)據(jù)量比較小,對于網(wǎng)絡(luò)的要求不太高,可以通過賽場專有的無線網(wǎng)絡(luò)連接至流媒體服務(wù)器,這樣主播可在賽場的任意角落,如各大陣營的球迷區(qū),采集本陣營球迷的環(huán)境聲音并配合帶有立場的解說,以得到不同用戶的關(guān)注。
[0044]以下再以一實施例對步驟S103作出詳細(xì)說明。
[0045]TS媒體流由TS數(shù)據(jù)包構(gòu)成,每個TS數(shù)據(jù)包都由Packet Header (包頭WPPacketData(包數(shù)據(jù))組成,其中Packet Header指示了該TS數(shù)據(jù)包的屬性,并給出了該PacketData的數(shù)據(jù)的唯一網(wǎng)絡(luò)標(biāo)識符PID。步驟S103中的節(jié)目映射表指向的正是Packet Header中的PID,而節(jié)目映射表作為一種索引文件數(shù)據(jù)也可被插入到TS數(shù)據(jù)包中。本實施例中,步驟S103將節(jié)目映射表插入到專用的TS數(shù)據(jù)包中,并將所述專用TS數(shù)據(jù)包的Packet Header中的PID配置為固定公開值,例如將所述專用TS數(shù)據(jù)包的PID配置為0x0000,同時,為了實現(xiàn)TS數(shù)據(jù)包的專用,所述專用TS數(shù)據(jù)包中的空白字節(jié)通過adaptat1n域填充??蛻舳嗽谑盏絋S媒體流后,可根據(jù)所述固定公開的PID找到節(jié)目映射表所在的TS數(shù)據(jù)包并讀取所述節(jié)目映射表。
[0046]本實施例中,節(jié)目映射表被插入到TS媒體流中的專用TS數(shù)據(jù)包中,無需再單獨發(fā)送,實現(xiàn)了數(shù)據(jù)的整合,避免因網(wǎng)絡(luò)延時致使節(jié)目映射表發(fā)送至客戶端的時間晚于TS媒體流而造成客戶端的等待,而且可避免節(jié)目映射表的數(shù)據(jù)丟失。
[0047]客戶端中對直播音頻進(jìn)行切換的依據(jù)為直播音頻流的描述信息,所述描述信息包括主播頭像、風(fēng)格介紹、所屬立場、受歡迎程度、所屬音軌等等,優(yōu)選地,可在實時接收直播音頻流時,根據(jù)直播音頻流相關(guān)的網(wǎng)絡(luò)地址等等信息確定其所對應(yīng)的主播,并生成描述信息文件,發(fā)送至客戶端進(jìn)行展示,同時,還為每個描述信息文件配置唯一的描述信息編碼,該編碼與節(jié)目映射表中的各路直播音頻流的描述信息編碼相對應(yīng)。當(dāng)然,本發(fā)明中,還可直接從各個音頻采集終端中獲取上述直播音頻流的描述信息及描述信息編碼,本發(fā)明對此并不做限定。
[0048]為了充分利用現(xiàn)有客戶端的功能,提高用戶操作的便捷性,本發(fā)明的另一個實施例中,步驟S103還可將所述直播音頻流的描述信息編碼與所述客戶端的音軌的對應(yīng)關(guān)系加入到所述節(jié)目映射表中。
[0049]客戶端在切換音軌時,可根據(jù)節(jié)目映射表中的音軌與直播音頻流的描述信息編碼之間的對應(yīng)關(guān)系查找到對應(yīng)的描述信息編碼,之后再根據(jù)節(jié)目映射表中描述信息編碼與直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系,提取TS切片進(jìn)行切換播放。
[0050]本發(fā)明的另一個實施例中提出了可在切換直播音頻的同時切換多路直播視頻流的技術(shù)方案。具體說明如下。
[0051]用戶總是希望能從直播中看到更多感興趣的場面細(xì)節(jié)或者關(guān)注自己喜歡的人物活動,例如體育比賽中,不同的用戶所喜歡的球員不同,在賽點時,用戶更希望拍攝視角能夠?qū)?zhǔn)自己喜歡的球員以觀察其表現(xiàn)。
[0052]基于步驟SlOl?103,如果步驟SlOl中接收到的直播視頻流為多路,則在步驟S103中將所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系配置到所述節(jié)目映射表中。
[0053]每個主播都向流媒體服務(wù)器發(fā)送直播音頻流,同時,也可向流媒體服務(wù)器發(fā)送直播視頻流,這樣,每個主播都可根據(jù)自己的立場從自己關(guān)注的視角拍攝現(xiàn)場視頻、解說比賽過程。本實施例中,將每個主播提供的直播視頻流和直播音頻流進(jìn)行綁定,并將綁定播放關(guān)系配置到節(jié)目映射表中,當(dāng)客戶端讀取所述節(jié)目映射表時,可在查找到直播音頻流的同時,獲取到與該直播音頻流具有綁定播放關(guān)系的直播視頻流的信息。
[0054]為了避免本實施例中用戶進(jìn)行音頻切換時發(fā)生同步切換至具有綁定播放關(guān)系的直播視頻中而忽略用戶的自主期望。
[0055]優(yōu)選地,在節(jié)目映射表中,將所述節(jié)目映射表中的所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系的優(yōu)先級設(shè)置為高于所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系的優(yōu)先級,且在所述客戶端切換至所述直播音頻時向客戶端發(fā)起是否切換至與所述直播音頻具有綁定關(guān)系的直播視頻的詢問信息。
[0056]這樣,根據(jù)用戶的切換操作,僅會進(jìn)行直播音頻的切換,而對于是否進(jìn)行直播視頻的切換,則會給用戶提供自主選擇的權(quán)利,充分考慮用戶的使用感受。
[0057]以下以網(wǎng)絡(luò)直播中包含一路直播音頻流及2路直播音頻流為例進(jìn)行實施例的詳細(xì)說明。
[0058]分布在不同位置的兩音頻采集終端可分別將其直播音頻流通過VPN并依據(jù)RTP/RTCP傳送至流媒體服務(wù)器,此處以直播視頻流由官方傳送為例進(jìn)行說明,當(dāng)然直播視頻流還可由視頻采集終端獲取。流媒體服務(wù)器將I路直播視頻流與2路直播音頻流分別進(jìn)行切片并獲得TS切片,并將直播視頻流對應(yīng)的TS切片插入PID為10的TS數(shù)據(jù)包中,將2路直播音頻流對應(yīng)的TS切片分別插入PID為20和30的TS數(shù)據(jù)包中,并將直播視頻流的描述信息編碼配置為01,2路直播音頻流的描述信息編碼分別配置為02和03,節(jié)目映射表中,描述信息編碼與PID的對應(yīng)關(guān)系01-10、02-20、03-30將被記錄。節(jié)目映射表中可包含以下信息:
[0059]Stream_type OxOf//其中Of代表音頻
[0060]Elementary_PID 10//該路音頻數(shù)據(jù)存放在PID為10的TS包中[0061 ] Stream_type OxOf
[0062]Elementary_PID 20//該路音頻數(shù)據(jù)存放在PID為20的TS包中
[0063]Stream_type OxIb//其中 Ib代表視頻
[0064]Elementary_PID 30////該路視頻頻數(shù)據(jù)存放在PID為30的TS包中
[0065]當(dāng)用戶根據(jù)客戶端中顯示的描述信息進(jìn)行主播切換時,客戶端可根據(jù)選擇的描述信息的編碼從節(jié)目映射表中查找到對應(yīng)的TS切片的PID,進(jìn)而從TS媒體流中對應(yīng)的TS數(shù)據(jù)包中提取對應(yīng)的TS切片進(jìn)行切換播放。
[0066]參考圖3,本發(fā)明實施例還提供一種流媒體服務(wù)器,包括:
[0067]數(shù)據(jù)獲取模塊11,用于實時接收直播視頻流和多路直播音頻流;
[0068]TS切片處理模塊12,用于將所述直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID,其中,對應(yīng)于同一路直播音頻流的TS切片具有相同的PID,對應(yīng)于同一路直播視頻流的TS切片具有相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同;
[0069]數(shù)據(jù)混編模塊13,用于將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流;
[0070]索引模塊14,用于建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中;
[0071]數(shù)據(jù)發(fā)送模塊15,用于將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。
[0072]其中,數(shù)據(jù)獲取模塊11中,直播視頻流和直播音頻流可采用網(wǎng)絡(luò)分布式的方式進(jìn)行采集,音頻采集終端和視頻采集終端可根據(jù)不同主播的需要而架設(shè)在不同的位置,采集到的直播音頻流和直播視頻流將發(fā)送到流媒體服務(wù)器中進(jìn)行處理。
[0073]對流媒體服務(wù)器接收到的直播音頻流和直播視頻流的處理過程由TS切片處理模塊12完成。音頻采集終端和視頻采集終端傳送的音頻流和視頻流都是不分段的連續(xù)碼流,為了實現(xiàn)多路連續(xù)碼流的混編,TS切片處理模塊12將直播音頻流和直播視頻流進(jìn)行切片處理,以獲得多個小的TS切片,數(shù)據(jù)混編模塊13將多個TS切片打包復(fù)合形成一路TS媒體流,生成的TS媒體流由數(shù)據(jù)發(fā)送模塊15通過CDN網(wǎng)絡(luò)并基于HTTP Live Streaming(HLS)流媒體傳輸協(xié)議發(fā)送至客戶端。為了保證客戶端可從TS媒體流中提取單路直播音頻流相關(guān)的TS切片進(jìn)行播放,TS切片處理模塊12還為每個TS切片添加了頭文件,所述頭文件中包含數(shù)據(jù)類型(音頻、視頻或其他)以及PID(TS數(shù)據(jù)包的ID)等信息,TS切片頭文件中的PID與其將插入到的TS數(shù)據(jù)包的PID—致,而且,為了區(qū)分各路直播音頻流或直播視頻流相關(guān)的TS切片,TS切片處理模塊12還將對應(yīng)于同一路直播音頻流的TS切片分配相同的PID,對應(yīng)于同一路直播視頻流的TS切片分配相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同。TS媒體流是由TS數(shù)據(jù)包構(gòu)成,數(shù)據(jù)混編模塊13中直播視頻流和直播音頻流相關(guān)的TS切片依據(jù)PID按規(guī)則被插入到相應(yīng)的TS數(shù)據(jù)包中,實現(xiàn)多路碼流的混編。
[0074]依據(jù)上述TS切片處理模塊12和數(shù)據(jù)混編模塊13對直播視頻流和直播音頻流的處理,可獲得一路TS媒體流,為了保證客戶端在播放所述TS媒體流過程中可實現(xiàn)直播音頻的自由切換,索引模塊14中建立了一節(jié)目映射表,所述節(jié)目映射表將在數(shù)據(jù)發(fā)送模塊15中與所述TS媒體流一同發(fā)送至客戶端,客戶端通過解析讀取所述節(jié)目映射表,可根據(jù)用戶在客戶端中執(zhí)行的切換操作,從節(jié)目映射表中查找到相應(yīng)的TS切片的PID,之后直接從對應(yīng)的TS數(shù)據(jù)包中提取出TS切片進(jìn)行切換播放即可。
[0075]本實施例中,在流媒體服務(wù)器向客戶端進(jìn)行直播文件發(fā)送之前即完成了直播視頻和多路直播音頻的混編,且通過節(jié)目映射表以及TS切片的PID等處理,為客戶端執(zhí)行音頻切換準(zhǔn)備好了數(shù)據(jù)基礎(chǔ)以及切換邏輯基礎(chǔ),使用現(xiàn)有的客戶端即可實現(xiàn)同一直播節(jié)目中多路直播音頻的自由切換。
[0076]以下再以一實施例對數(shù)據(jù)獲取模塊11進(jìn)行詳細(xì)說明。
[0077]體育賽事等網(wǎng)絡(luò)直播節(jié)目對節(jié)目的實時性要求比較高,但由于各個音頻采集終端分布在不同位置,這有可能導(dǎo)致各路直播音頻流的傳送至流媒體服務(wù)器的網(wǎng)絡(luò)延時各不相同,因此,TS媒體流發(fā)送到客戶端后,用戶在進(jìn)行直播音頻切換時有可能會出現(xiàn)音視頻不同步的問題。
[0078]為實現(xiàn)直播音頻的同步切換,本實施例中,數(shù)據(jù)獲取模塊11,進(jìn)一步用于:
[0079]建立VPN,通過VPN通道連接多個音頻采集終端;
[0080]根據(jù)RTP/RTCP實時獲取各音頻采集終端采集的直播音頻流。
[0081]數(shù)據(jù)獲取模塊11中,音頻采集終端可通過客戶端等方式加入到流媒體服務(wù)器的VPN中,各音頻采集終端與流媒體服務(wù)器建立RTP/RTCP的媒體傳輸及控制通路,兩者建立連接的方式多種多樣,可以通過RTSP或者是VOIP的方式,建立連接后,直播音頻流可以通過RTP傳輸?shù)搅髅襟w服務(wù)器,并通過RTCP控制RTP的傳輸過程,如流控制和擁塞控制,RTP和RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化,故特別適合傳送網(wǎng)上的實時數(shù)據(jù)。
[0082]其中,RTP(RealTime Transport Protocol,實時傳播協(xié)議)是實時傳播最有效的方式,RTP以UDP作為傳輸通道,但是存在兩個問題:a、無法穿越防火墻和NAT; b、RTP是非可靠協(xié)議,有時會丟包。本發(fā)明實施例中,通過VPN有效地解決了RTP無法穿越防火墻的問題;通過RTCP對RTP的傳輸過程進(jìn)行控制,有效地解決了 RTP傳輸丟包的問題。
[0083]本實施例中,為了保證流媒體服務(wù)器的VPN安全快捷地連接各個音頻采集終端中,優(yōu)選地,數(shù)據(jù)獲取模塊11還用于:
[0084]在直播開始前,根據(jù)已知的音頻采集端的網(wǎng)絡(luò)地址主動將所述音頻采集端加入所述VPN中;以及
[0085]在直播過程中,實時監(jiān)聽所述音頻采集端發(fā)起的網(wǎng)絡(luò)連接請求,并在監(jiān)聽到所述音頻采集端的網(wǎng)絡(luò)連接請求時,在安全驗證后將所述音頻采集端實時加入到VPN中。
[0086]對于固定主播,可為其音頻采集終端分配固定的網(wǎng)絡(luò)地址,在預(yù)定時間或場景下,流媒體服務(wù)器可主動將音頻采集終端加入到VPN中。而對于非固定主播,本實施例也可實現(xiàn)音頻采集終端實時動態(tài)加入VPN,根據(jù)音頻采集終端自主發(fā)起的請求,流媒體服務(wù)器可對其進(jìn)行安全驗證并在確認(rèn)身份后允許其加入VPN。
[0087]以下再以一實施例對索引模塊14作出詳細(xì)說明。
[0088]索引模塊14中的節(jié)目映射表指向的是TS數(shù)據(jù)包的PacketHeader中的PID,而節(jié)目映射表作為一種索引文件數(shù)據(jù)也可被插入到TS數(shù)據(jù)包中。本實施例中,索引模塊14將節(jié)目映射表插入到專用的TS數(shù)據(jù)包中,并將所述專用TS數(shù)據(jù)包的Packet Header中的PID配置為固定公開值,例如將所述專用TS數(shù)據(jù)包的PID配置為0x0000,同時,為了實現(xiàn)TS數(shù)據(jù)包的專用,所述專用TS數(shù)據(jù)包中的空白字節(jié)通過adaptat1n域填充??蛻舳嗽谑盏絋S媒體流后,可根據(jù)所述固定公開的PID找到節(jié)目映射表所在的TS數(shù)據(jù)包并讀取所述節(jié)目映射表。
[0089]本實施例中,節(jié)目映射表被插入到TS媒體流中的專用TS數(shù)據(jù)包中,無需再單獨發(fā)送,實現(xiàn)了數(shù)據(jù)的整合,避免因網(wǎng)絡(luò)延時致使節(jié)目映射表發(fā)送至客戶端的時間晚于TS媒體流而造成客戶端的等待,而且可避免節(jié)目映射表的數(shù)據(jù)丟失。
[0090]客戶端中對直播音頻進(jìn)行切換的依據(jù)為直播音頻流的描述信息,所述描述信息包括主播頭像、風(fēng)格介紹、所屬立場、受歡迎程度、所屬音軌等等,優(yōu)選地,可在數(shù)據(jù)獲取模塊11獲取直播音頻流時,根據(jù)直播音頻流相關(guān)的網(wǎng)絡(luò)地址等等信息確定其所對應(yīng)的主播,并生成描述信息文件,發(fā)送至客戶端進(jìn)行展示,同時,數(shù)據(jù)獲取模塊11還為每個描述信息文件配置唯一的描述信息編碼,該編碼與節(jié)目映射表中的各路直播音頻流的描述信息編碼相對應(yīng)。當(dāng)然,本發(fā)明中,還可直接從各個音頻采集終端中獲取上述直播音頻流的描述信息及描述信息編碼,本發(fā)明對此并不做限定。
[0091]為了充分利用現(xiàn)有客戶端的功能,提高用戶操作的便捷性,本發(fā)明的另一個實施例中,索引模塊14還可將所述直播音頻流的描述信息編碼與所述客戶端的音軌的對應(yīng)關(guān)系加入到所述節(jié)目映射表中。
[0092]客戶端在切換音軌時,可根據(jù)節(jié)目映射表中的音軌與直播音頻流的描述信息編碼之間的對應(yīng)關(guān)系查找到對應(yīng)的描述信息編碼,之后再根據(jù)節(jié)目映射表中描述信息編碼與直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系,提取TS切片進(jìn)行切換播放。
[0093]本發(fā)明的另一個實施例中提出了可切換多路直播視頻流的方案。具體說明如下。
[0094]用戶總是希望能從直播中看到更多感興趣的場面細(xì)節(jié)或者關(guān)注自己喜歡的人物活動,例如體育比賽中,不同的用戶所喜歡的球員不同,在賽點時,用戶更希望拍攝視角能夠?qū)?zhǔn)自己喜歡的球員以觀察其表現(xiàn)。
[0095]如果數(shù)據(jù)獲取模塊11中接收到的直播視頻流為多路,則在索引模塊14中將所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系配置到所述節(jié)目映射表中。
[0096]每個主播都向流媒體服務(wù)器發(fā)送直播音頻流,同時,也可向流媒體服務(wù)器發(fā)送直播視頻流,這樣,每個主播都可根據(jù)自己的立場從自己關(guān)注的視角拍攝現(xiàn)場視頻、解說比賽過程。本實施例中,將每個主播提供的直播視頻流和直播音頻流進(jìn)行綁定,并將綁定播放關(guān)系配置到節(jié)目映射表中,當(dāng)客戶端讀取所述節(jié)目映射表時,可在查找到直播音頻流的同時,獲取到與該直播音頻流具有綁定播放關(guān)系的直播視頻流的信息。
[0097]為了避免本實施例中用戶進(jìn)行音頻切換時發(fā)生同步切換至具有綁定播放關(guān)系的直播視頻中而忽略用戶的自主期望。
[0098]優(yōu)選地,在節(jié)目映射表中,將所述節(jié)目映射表中的所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系的優(yōu)先級設(shè)置為高于所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系的優(yōu)先級,且在所述客戶端切換至所述直播音頻時向客戶端發(fā)起是否切換至與所述直播音頻具有綁定關(guān)系的直播視頻的詢問信息。
[0099]這樣,根據(jù)用戶的切換操作,僅會進(jìn)行直播音頻的切換,而對于是否進(jìn)行直播視頻的切換,則會給用戶提供自主選擇的權(quán)利,充分考慮用戶的使用感受。
[0100]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0101]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0102]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種直播音頻切換方法,其特征在于,包括: 將實時接收的直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID,其中,對應(yīng)于同一路直播音頻流的TS切片具有相同的PID,對應(yīng)于同一路直播視頻流的TS切片具有相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同; 將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流; 建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中; 將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 建立VPN,通過VPN通道連接多個音頻采集終端; 根據(jù)RTP/RTCP實時獲取各音頻采集終端采集的直播音頻流。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過VPN通道連接多個音頻采集終端,進(jìn)一步包括: 在直播開始前,根據(jù)已知的音頻采集端的網(wǎng)絡(luò)地址主動將所述音頻采集端加入所述VPN中;以及 在直播過程中,實時監(jiān)聽所述音頻采集端發(fā)起的網(wǎng)絡(luò)連接請求,并在監(jiān)聽到所述音頻采集端的網(wǎng)絡(luò)連接請求時,在安全驗證后將所述音頻采集端實時加入到VPN中。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 為所述每路直播音頻流生成對應(yīng)的描述信息文件,并為每個描述信息文件配置唯一的描述信息編碼; 其中,所述描述信息文件中包含主播頭像、風(fēng)格介紹、所屬立場、受歡迎程度、所屬音軌中的一個或多個。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立一節(jié)目映射表,進(jìn)一步包括: 將所述節(jié)目映射表的數(shù)據(jù)插入到專用TS數(shù)據(jù)包中,且將所述專用TS數(shù)據(jù)包的PID配置為固定公開值;其中,所述專用TS數(shù)據(jù)包中的空白字節(jié)通過adaptat1n域填充。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立一節(jié)目映射表,進(jìn)一步包括: 將所述直播音頻流的描述信息編碼與所述客戶端的音軌的對應(yīng)關(guān)系加入到所述節(jié)目映射表中。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立一節(jié)目映射表,進(jìn)一步包括: 當(dāng)所述接收到直播視頻流為多路時,將所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系配置到所述節(jié)目映射表中。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述建立一節(jié)目映射表,進(jìn)一步包括: 將所述節(jié)目映射表中的所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系的優(yōu)先級設(shè)置為高于所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系的優(yōu)先級,且在所述客戶端切換至所述直播音頻時向客戶端發(fā)起是否切換至與所述直播音頻具有綁定關(guān)系的直播視頻的詢問信息。9.一種流媒體服務(wù)器,其特征在于,包括: 數(shù)據(jù)獲取模塊,用于實時接收直播視頻流和多路直播音頻流; TS切片處理模塊,用于將所述直播視頻流和直播音頻流分別進(jìn)行編碼并分割為TS切片,為每個TS切片添加頭文件,且在所述頭文件中配置所述TS切片的PID,其中,對應(yīng)于同一路直播音頻流的TS切片具有相同的PID,對應(yīng)于同一路直播視頻流的TS切片具有相同的PID,對應(yīng)于不同路直播音頻流或直播視頻流的TS切片的PID各不相同; 數(shù)據(jù)混編模塊,用于將所述TS切片插入與其具有相同PID的TS數(shù)據(jù)包中,并將所述TS數(shù)據(jù)包混編生成一路TS媒體流; 索引模塊,用于建立一節(jié)目映射表,將所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系加入到所述節(jié)目映射表中; 數(shù)據(jù)發(fā)送模塊,用于將所述節(jié)目映射表及所述TS媒體流發(fā)送至客戶端。10.根據(jù)權(quán)利要求9所述的流媒體服務(wù)器,其特征在于,所述數(shù)據(jù)獲取模塊,進(jìn)一步用于: 建立VPN,通過VPN通道連接多個音頻采集終端; 根據(jù)RTP/RTCP實時獲取各音頻采集終端采集的直播音頻流。11.根據(jù)權(quán)利要求10所述的流媒體服務(wù)器,其特征在于,所述數(shù)據(jù)獲取模塊,進(jìn)一步用于: 在直播開始前,根據(jù)已知的音頻采集端的網(wǎng)絡(luò)地址主動將所述音頻采集端加入所述VPN中;以及 在直播過程中,實時監(jiān)聽所述音頻采集端發(fā)起的網(wǎng)絡(luò)連接請求,并在監(jiān)聽到所述音頻采集端的網(wǎng)絡(luò)連接請求時,將所述音頻采集端實時加入到VPN中。12.根據(jù)權(quán)利要求9所述的流媒體服務(wù)器,其特征在于,所述數(shù)據(jù)獲取模塊,進(jìn)一步用于: 為所述每路直播音頻流生成對應(yīng)的描述信息文件,并為每個描述信息文件配置唯一的描述信息編碼; 其中,所述描述信息文件中包含主播頭像、風(fēng)格介紹、所屬立場、受歡迎程度、所屬音軌中的一個或多個。13.根據(jù)權(quán)利要求9所述的流媒體服務(wù)器,其特征在于,所述索引模塊,進(jìn)一步用于: 將所述節(jié)目映射表的數(shù)據(jù)插入到專用TS數(shù)據(jù)包中,且將所述專用TS數(shù)據(jù)包的PID配置為固定公開值;其中,所述專用TS數(shù)據(jù)包中的空白字節(jié)通過adaptat1n域填充。14.根據(jù)權(quán)利要求9所述的流媒體服務(wù)器,其特征在于,所述索引模塊,進(jìn)一步用于: 將所述直播音頻流的描述信息編碼與所述客戶端的音軌的對應(yīng)關(guān)系加入到所述節(jié)目映射表中。15.根據(jù)權(quán)利要求9所述的流媒體服務(wù)器,其特征在于,所述索引模塊,進(jìn)一步用于: 當(dāng)所述接收到直播視頻流為多路時,將所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系配置到所述節(jié)目映射表中。16.根據(jù)權(quán)利要求15所述的流媒體服務(wù)器,其特征在于,所述索引模塊,進(jìn)一步用于: 將所述節(jié)目映射表中的所述直播音頻流的描述信息編碼與所述直播音頻流對應(yīng)的TS切片的PID的對應(yīng)關(guān)系的優(yōu)先級設(shè)置為高于所述直播視頻流的TS切片的PID與所述直播音頻流的TS切片的PID的綁定播放關(guān)系的優(yōu)先級,且在所述客戶端切換至所述直播音頻時向客戶端發(fā)起是否切換至與所述直播音頻具有綁定關(guān)系的直播視頻的詢問信息。
【文檔編號】H04N21/8547GK105898366SQ201510883081
【公開日】2016年8月24日
【申請日】2015年12月3日
【發(fā)明人】蔡煒
【申請人】樂視致新電子科技(天津)有限公司