本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種流媒體播放方法、終端設備及cdn服務器。
背景技術(shù):
網(wǎng)路協(xié)議電視(英文:internetprotocoltelevision,簡稱:iptv)系統(tǒng)中,通常是在終端設備、電子節(jié)目指南(英文:electronicprogramguide,簡稱:epgserver)以及內(nèi)容分發(fā)網(wǎng)絡(英文:contentdeliverynetwork,簡稱:cdn)服務器之間進行信息交互,來實現(xiàn)流媒體的播放。
以hls(英文全稱:httplivestreaming)協(xié)議為例,現(xiàn)有技術(shù)中該流媒體播放的流程如下:終端設備向epgserver發(fā)送流媒體的播放請求,epgserver返回終端設備帶有防盜鏈信息的統(tǒng)一資源定位符(英文:uniformresourcelocator,簡稱:url),終端設備采用包含防盜鏈信息的url到cdn服務器中請求流媒體內(nèi)容播放,cdn服務器對包含防盜鏈信息的url進行檢查,檢查通過后返回終端設備m3u8文件,終端設備解析該m3u8文件最終可以得到ts分片文件的播放地址,終端設備根據(jù)該ts分片文件的播放地址去請求cdn服務器,cdn服務器將ts分片文件返回至終端設備,這樣就可以實現(xiàn)流媒體的播放。
然而,這樣存在以下問題:如果一個合法終端設備在正常的流程之后,把獲取的m3u8文件分享給其他終端設備,做二次運營,由于任何終端設備都可以從該m3u8文件中解析出ts分片文件的播放地址,然后在用該ts分片文件的播放地址去cdn服務器請求ts分片文件,盜取流媒體內(nèi)容,導致給運營商造成巨大的經(jīng)濟損失。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例提供一種流媒體播放方法、終端設備及cdn服務器,解決了現(xiàn)有技術(shù)中在進行流媒體播放時,出現(xiàn)二次運營,給運營商帶來經(jīng)濟損失的問題。
為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
本發(fā)明實施例的第一方面,提供一種流媒體播放方法,所述方法包括:
向epg服務器發(fā)送基于hls協(xié)議的第一請求消息;
接收epg服務器返回的包含統(tǒng)一資源定位符url的第一回復消息,向所述url中添加防盜鏈信息形成攜帶防盜鏈信息的url;
向cdn服務器發(fā)送攜帶防盜鏈信息的url的第二請求消息,所述第二請求消息中包括終端設備的標識;
接收cdn服務器返回的攜帶防盜鏈信息的m3u8文件的第二回復消息,解析所述攜帶防盜鏈信息的m3u8文件得到ts分片文件的播放地址;
向cdn服務器發(fā)送包含ts分片文件的播放地址的第三請求消息;
接收cdn服務器返回的ts分片文件。
優(yōu)選的,所述第三請求消息中還包括防盜鏈信息。
進一步優(yōu)選的,所述防盜鏈信息包括終端設備的ip地址和/或mac地址以及時間戳,所述防盜鏈信息是對所述終端設備的ip地址和/或mac地址以及時間戳采用加密算法生成的。
本發(fā)明實施例的第二方面,提供一種流媒體播放方法,所述方法包括:
接收終端設備發(fā)送的攜帶防盜鏈信息的統(tǒng)一資源定位符url的第一請求消息,第一請求消息中包括終端設備的標識;
向所述終端設備返回攜帶防盜鏈信息的m3u8文件的第一回復消息,所述m3u8文件用于解析出ts分片文件的播放地址;
接收終端設備發(fā)送的包含ts分片文件的播放地址的第二請求消息;
根據(jù)所述終端設備的標識向所述終端設備返回ts分片文件。
優(yōu)選的,所述第二請求消息中還包括防盜鏈信息。
進一步優(yōu)選的,所述防盜鏈信息中還包括時間戳,所述終端設備的標識包括終端設備的ip地址和/或mac地址,所述防盜鏈信息是對所述終端設備的ip地址和/或mac地址以及時間戳采用加密算法生成的。
本發(fā)明實施例的第三方面,提供一種終端設備,包括:
發(fā)送模塊,用于向epg服務器發(fā)送基于hls協(xié)議的第一請求消息;
接收模塊,用于接收epg服務器返回的包含統(tǒng)一資源定位符url的第一回復消息;
形成模塊,用于向所述url中添加防盜鏈信息形成攜帶防盜鏈信息的url;
所述發(fā)送模塊,還用于向cdn服務器發(fā)送攜帶防盜鏈信息的url的第二請求消息,所述第二請求消息中包括終端設備的標識;
所述接收模塊,還用于接收cdn服務器返回的攜帶防盜鏈信息的m3u8文件的第二回復消息,解析所述攜帶防盜鏈信息的m3u8文件得到ts分片文件的播放地址;
所述發(fā)送模塊,還用于向cdn服務器發(fā)送包含ts分片文件的播放地址的第三請求消息;
所述接收模塊,還用于接收cdn服務器返回的ts分片文件。
優(yōu)選的,所述第三請求消息中還包括防盜鏈信息。
本發(fā)明實施例的第四方面,提供一種cdn服務器,包括:
接收模塊,用于接收終端設備發(fā)送的攜帶防盜鏈信息的統(tǒng)一資源定位符url的第一請求消息,第一請求消息中包括終端設備的標識;
發(fā)送模塊,用于向所述終端設備返回攜帶防盜鏈信息的m3u8文件的第一回復消息,所述m3u8文件用于解析出ts分片文件的播放地址;
所述接收模塊,還用于接收終端設備發(fā)送的包含ts分片文件的播放地址的第二請求消息;
所述發(fā)送模塊,還用于根據(jù)所述終端設備的標識向所述終端設備返回ts分片文件。
優(yōu)選的,所述第二請求消息中還包括防盜鏈信息。
本發(fā)明實施例提供一種流媒體播放方法、終端設備及cdn服務器,首先,終端設備向epg服務器發(fā)送基于hls協(xié)議的第一請求消息;其次,終端設備接收epg服務器返回的包含url的第一回復消息,向url中添加防盜鏈信息形成攜帶防盜鏈信息的url;第三,終端設備向cdn服務器發(fā)送攜帶防盜鏈信息的url的第二請求消息;第四,終端設備接收cdn服務器返回的攜帶防盜鏈信息的m3u8文件的第二回復消息,解析攜帶防盜鏈信息的m3u8文件得到ts分片文件的播放地址;第五,終端向cdn服務器發(fā)送包含ts分片文件的播放地址的第三請求消息;最后,終端設備接收cdn服務器返回的ts分片文件。
相比于現(xiàn)有技術(shù),本方案中是通過終端設備向url中添加防盜鏈信息的形成攜帶防盜鏈信息的url,然后用該攜帶防盜鏈信息的url去請求cdn服務器,cdn服務器返回攜帶該防盜鏈信息的m3u8文件,由于m3u8文件中攜帶防盜鏈信息,在終端設備做二次運營時,即使將該攜帶防盜鏈信息的m3u8文件分享出去,其他終端設備由于無法打開該防盜鏈信息,從而無法從該攜帶防盜鏈信息的m3u8文件中解析出ts分片文件的播放地址,也無法向cdn服務器請求ts分片文件,從而避免二次運營,保障了運營商的利益不被損害。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種流媒體播放方法的方法流程圖;
圖2為本發(fā)明實施例提供的一種終端設備的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例提供的一種cdn服務器的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了便于清楚描述本發(fā)明實施例的技術(shù)方案,在本發(fā)明的實施例中,采用了“第一”、“第二”等字樣對功能或作用基本相同的相同項或相似項進行區(qū)分,本領(lǐng)域技術(shù)人員可以理解“第一”、“第二”等字樣并不對數(shù)量和執(zhí)行次序進行限定。
本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
本發(fā)明實施例提供一種流媒體播放方法,如圖1所示,該方法包括:
101、終端設備向epg服務器發(fā)送基于hls協(xié)議的第一請求消息。
示例性的,該第一請求消息中包括終端設備的標識,進一步的還包括終端設備的臨時身份證明,該臨時證明是tv業(yè)務平臺為用戶分配的。
其中,該終端設備的標識包括但不限于:終端設備的ip(英文全稱:internetprotocol)地址、mac(英文全稱:mediaaccesscontrol或mediumaccesscontrol)地址、編號以及終端設備上的用戶登錄的業(yè)務帳號。
其中,上述的hls(英文全稱:httplivestreaming)協(xié)議在進行流媒體播放時是通過大量的小切片的方式體現(xiàn)的,即將一個流媒體(例如視頻)分成多個片段以索引的方式存儲在m3u8文件中,終端設備需要解析該m3u8文件,得到ts分片文件的播放地址,然后才能去請求播放視頻。
102、終端設備接收epg服務器返回的包含url的第一回復消息。
示例性的,該統(tǒng)一資源定位符(英文:uniformresourcelocator,簡稱:url)為:http://host/cmsid/physicalcontentid?可以得知,在該url字段中并未出現(xiàn)防盜鏈字段,epg服務器僅僅返回給終端設備的是一個普通的url。
需要說明的是,常用的流媒體協(xié)議主要有http協(xié)議和基于rtsp/rtp的實時流媒體協(xié)議,而上述的hls協(xié)議是http協(xié)議的代表之一,仍然是基于http協(xié)議的格式進行流媒體的直播和點播等。因此,上述所列舉的url的示例中仍采用的http的格式。通常優(yōu)酷或愛奇藝等都采用hls協(xié)議進行流媒體播放。
103、終端設備向url中添加防盜鏈信息形成攜帶防盜鏈信息的url。
示例性的,上述的防盜鏈信息包括終端設備的ip地址和/或mac地址以及時間戳,防盜鏈信息是對終端設備的ip地址和/或mac地址以及時間戳采用加密算法生成的。該加密算法中所采用的密鑰對于不同的終端設備來說是不相同的,即每個終端設備都有一個唯一的密鑰。當有多個終端時,這里各自的終端所形成防盜鏈的信息是不同的,所采取的加密算法最終的密鑰也是不同的,而各自的終端與cdn服務器間所采用的密鑰和加密算法是相同的。而這里的加密算法可以是md5、sha1或3des等。
示例性的,上述的步驟103中的url可以為:http://host/cmsid/physicalcontentid?authinfo=authinfovalue&domain=domainvalue¶meter1=value1¶meter2=value2……。其中:authinfo代表的是防盜鏈信息。
104、終端設備向cdn服務器發(fā)送攜帶防盜鏈信息的url的第二請求消息。
其中,第二請求消息中包括終端設備的標識。
105、終端設備接收cdn服務器返回的攜帶防盜鏈信息的m3u8文件的第二回復消息。
可選的,在步驟105之前還包括:cdn服務器需要檢查終端設備上的用戶的合法性,若該用戶是合法用戶cdn服務器才會向終端設備返回攜帶防盜鏈信息的m3u8文件的。這樣可以避免其他非法用戶去進行流媒體播放,而影響運營商的利益。
示例性的,步驟105中的防盜鏈信息和上述的防盜鏈信息中的內(nèi)容以及形成是相同的,這里就不在贅述。不同的是,該防盜鏈信息是cdn服務器所加的,所采取的加密算法中的密鑰與終端設備的是相同的。
示例性的,上述的m3u8文件中包括ts分片文件的播放地址。
106、終端設備解析攜帶防盜鏈信息的m3u8文件得到ts分片文件的播放地址。
示例性的,終端設備需要通過加密算法以及終端設備的密鑰去打開該防盜鏈信息,在成功打開防盜鏈信息后才去從m3u8文件獲得ts分片文件的播放地址。由于終端設備的密鑰與cdn服務器的密鑰是相同的,因此該終端設備是可以準確獲取從m3u8文件獲得ts分片文件的播放地址的。而終端設備的密鑰和cdn服務器的密鑰是預先進行協(xié)商好的,具體的可以是在出廠前就固定設置的。
示例性的,若有兩個終端設備,分別為終端設備a和終端設備b,且若終端設備a的密鑰為1,而終端設備b的密鑰為2,則在上述的cdn服務器會不同的終端設備來選擇該終端設備的密鑰去解密或去形成防盜鏈信息。例如,若是終端設備a執(zhí)行上述的步驟104,則上述的步驟105中的防盜鏈信息是cdn服務器選用終端設備a的密鑰1采用加密算法所形成的。
107、終端設備向cdn服務器發(fā)送包含ts分片文件的播放地址的第三請求消息。
可選的,為了避免其他非法的用戶得到ts分片文件,上述的步驟106的第三請求消息中還包括防盜鏈信息。
108、終端設備接收cdn服務器返回的ts分片文件。
可選的,基于上述的步驟106的第三請求消息中還包括防盜鏈信息在步驟108之前,該方法還包括:cdn服務器對終端設備再次進行驗證,驗證該終端設備的合法性,驗證通過后才返回給終端設備ts分片文件。以防止非法用戶去通過竊取ts分片文件的播放地址來請求ts分片文件,從而達到播放流媒體的目的,造成運營商的利益受損的問題。
可選的,在步驟108之后還包括:終端設備去播放ts分片文件。具體的,終端設備通過播放器去播放該ts分片文件,從而用戶在該終端設備上就可以看到流媒體了。該流媒體可以是音頻或視頻等。
相比于現(xiàn)有技術(shù),本方案中是通過終端設備向url中添加防盜鏈信息的形成攜帶防盜鏈信息的url,然后用該攜帶防盜鏈信息的url去請求cdn服務器,cdn服務器返回攜帶該防盜鏈信息的m3u8文件,由于m3u8文件中攜帶防盜鏈信息,在終端設備做二次運營時,即使將該攜帶防盜鏈信息的m3u8文件分享出去,其他終端設備由于無法打開該防盜鏈信息,從而無法從該攜帶防盜鏈信息的m3u8文件中解析出ts分片文件的播放地址,也無法向cdn服務器請求ts分片文件,從而避免二次運營,保障了運營商的利益不被損害。
下面將基于圖1對應的流媒體播放方法的實施例中的相關(guān)描述對本發(fā)明實施例提供的一種終端設備進行介紹。以下實施例中與上述實施例相關(guān)的技術(shù)術(shù)語、概念等的說明可以參照上述的實施例,這里不再贅述。
本發(fā)明實施例提供一種終端設備,如圖2所示,該終端設備2包括:發(fā)送模塊21、接收模塊22以及形成模塊23,其中:
發(fā)送模塊21,用于向epg服務器發(fā)送基于hls協(xié)議的第一請求消息。
接收模塊22,用于接收epg服務器返回的包含url的第一回復消息。
形成模塊23,用于向url中添加防盜鏈信息形成攜帶防盜鏈信息的url。
發(fā)送模塊21,還用于向cdn服務器發(fā)送攜帶防盜鏈信息的url的第二請求消息。
接收模塊22,還用于接收cdn服務器返回的攜帶防盜鏈信息的m3u8文件的第二回復消息,解析攜帶防盜鏈信息的m3u8文件得到ts分片文件的播放地址。
發(fā)送模塊21,還用于向cdn服務器發(fā)送包含ts分片文件的播放地址的第三請求消息。
接收模塊22,還用于接收cdn服務器返回的ts分片文件。
可選的,為了避免其他非法的用戶得到ts分片文件,上述的第三請求消息中還包括防盜鏈信息。
示例性的,防盜鏈信息包括終端設備的ip地址和/或mac地址以及時間戳,防盜鏈信息是對終端設備的ip地址和/或mac地址以及時間戳采用加密算法生成的。該加密算法中所采用的密鑰對于不同的終端設備來說是不相同的,即每個終端設備都有一個唯一的密鑰。當有多個終端時,這里各自的終端所形成防盜鏈的信息是不同的,所采取的加密算法最終的密鑰也是不同的,而各自的終端與cdn服務器間所采用的密鑰和加密算法是相同的。而這里的加密算法可以是md5、sha1或3des等。
相比于現(xiàn)有技術(shù),本方案中是通過終端設備向url中添加防盜鏈信息的形成攜帶防盜鏈信息的url,然后用該攜帶防盜鏈信息的url去請求cdn服務器,cdn服務器返回攜帶該防盜鏈信息的m3u8文件,由于m3u8文件中攜帶防盜鏈信息,在終端設備做二次運營時,即使將該攜帶防盜鏈信息的m3u8文件分享出去,其他終端設備由于無法打開該防盜鏈信息,從而無法從該攜帶防盜鏈信息的m3u8文件中解析出ts分片文件的播放地址,也無法向cdn服務器請求ts分片文件,從而避免二次運營,保障了運營商的利益不被損害。
下面將基于圖1對應的流媒體播放方法的實施例中的相關(guān)描述對本發(fā)明實施例提供的一種cdn服務器進行介紹。以下實施例中與上述實施例相關(guān)的技術(shù)術(shù)語、概念等的說明可以參照上述的實施例,這里不再贅述。
本發(fā)明實施例提供一種cdn服務器,如圖3所示,該cdn服務器3包括:接收模塊31以及發(fā)送模塊32,其中:
接收模塊31,用于接收終端設備發(fā)送的攜帶防盜鏈信息的url的第一請求消息,第一請求消息中包括終端設備的標識。
發(fā)送模塊32,用于向終端設備返回攜帶防盜鏈信息的m3u8文件的第一回復消息,m3u8文件用于解析出ts分片文件的播放地址。
接收模塊31,還用于接收終端設備發(fā)送的包含ts分片文件的播放地址的第二請求消息。
發(fā)送模塊32,還用于根據(jù)終端設備的標識向終端設備返回ts分片文件。
可選的,為了避免其他非法的用戶得到ts分片文件,上述的第二請求消息中還包括防盜鏈信息。
示例性的,上述的防盜鏈信息包括終端設備的ip地址和/或mac地址以及時間戳,防盜鏈信息是對終端設備的ip地址和/或mac地址以及時間戳采用加密算法生成的。該加密算法中所采用的密鑰對于不同的終端設備來說是不相同的,即每個終端設備都有一個唯一的密鑰。當有多個終端時,這里各自的終端所形成防盜鏈的信息是不同的,所采取的加密算法最終的密鑰也是不同的,而各自的終端與cdn服務器間所采用的密鑰和加密算法是相同的。而這里的加密算法可以是md5、sha1或3des等。
可選的,該cdn服務器3還包括:驗證模塊33,用于對終端設備上的用戶進行合法性驗證,若該用戶是合法用戶cdn服務器才會向終端設備返回攜帶防盜鏈信息的m3u8文件的。這樣可以避免其他非法用戶去進行流媒體播放,而影響運營商的利益。
可選的,上述的驗證模塊33還用于需要對用戶再次進行合法性驗證,驗證成功后,才返回給終端設備ts分片文件。以防止非法用戶去通過竊取ts分片文件的播放地址來請求ts分片文件,從而達到播放流媒體的目的,造成運營商的利益受損的問題。
相比于現(xiàn)有技術(shù),本方案中是通過終端設備向url中添加防盜鏈信息的形成攜帶防盜鏈信息的url,然后用該攜帶防盜鏈信息的url去請求cdn服務器,cdn服務器返回攜帶該防盜鏈信息的m3u8文件,由于m3u8文件中攜帶防盜鏈信息,在終端設備做二次運營時,即使將該攜帶防盜鏈信息的m3u8文件分享出去,其他終端設備由于無法打開該防盜鏈信息,從而無法從該攜帶防盜鏈信息的m3u8文件中解析出ts分片文件的播放地址,也無法向cdn服務器請求ts分片文件,從而避免二次運營,保障了運營商的利益不被損害。
通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的終端設備、cdn服務器,可以通過其它的方式實現(xiàn)。例如,以上所描述的終端設備的實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權(quán)利要求的保護范圍為準。