<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

流媒體直播錄制冗余熱備的方法及系統與流程

文檔序號:11147612閱讀:648來源:國知局
流媒體直播錄制冗余熱備的方法及系統與制造工藝

本發明涉及流媒體處理技術領域,尤其涉及一種流媒體直播錄制冗余熱備的方法及系統。



背景技術:

隨著互聯網直播的蓬勃發展,越來越多的直播平臺開始涌現,如網絡電視、網絡收音機等,用戶可以通過直播平臺提供的播放終端,不需要親臨現場就可以很方便的實時播放遠端的直播內容,比如賽事、會議、教學、手術等等。不管是由于監管、內容審查的要求,還是為了后期可以直接支持時移和回看,直播錄制的需求已經變得越來越廣泛。

但目前的直播平臺,還沒有提供有效的直播錄制冗余熱備技術方案。其主要原因是由于中心服務器自身的帶寬、存儲容量有限,在服務成千上萬的用戶特別是有大量用戶請求瞬間擁入時,很容易成為整個網絡服務的瓶頸。現有的最常見的流媒體傳輸技術手段是使用單獨的服務器來固定錄制若干頻道,而且由于不支持冗余熱備的方式,當其中一臺錄播服務器出現故障或宕機時則導致整個業務中斷,并且需要人工手工切換到另外一臺冷備份的錄播服務器,業務中斷時間較長,非常影響數據傳輸效率和終端用戶體驗。

而現有的直播錄制備份的方法,通常采用雙機熱備的方式,即備用設備將會錄制與主設備完全相同的流媒體數據副本,導致大量的冗余存儲,浪費了有限的存儲資源和存儲I/O(輸入/輸出)訪問帶寬,還會明顯地降低整個系統讀寫性能和服務并發數;此外,額外的磁盤讀寫操作也會損害磁盤壽命,進而會降低服務器的MTBF(平均故障間隔時間),也間接提高了整個系統投入的硬件成本。



技術實現要素:

本發明所要解決的技術問題是,提供一種支持流媒體直播錄制冗余熱備的技術方案,實現快速的冗余熱備,減少系統發生故障和宕機后業務中斷的時間,提高流媒體直播錄制冗余熱備的效率,降低硬件占用資源和成本。

為解決以上技術問題,一方面,本發明實施例提供一種支持流媒體直播錄制冗余熱備的方法,包括:

通過端口級備份的方式,將直播編碼器編碼后的碼流同步輸入到主網絡和備用網絡;

通過后臺管理系統發布直播頻道和配置輸入源信息;

流媒體控制器采用主備冗余機制,根據所述直播頻道和所述輸入源信息,創建直播收錄任務,并對外部設備提供虛擬IP的訪問方式;

所述流媒體控制器通過API接口控制收錄任務控制器啟動或停止直播收錄任務;

所述收錄任務控制器啟動所述直播收錄任務時,將主網絡和備用網絡接入的直播編碼器的直播碼流進行收錄和分布式存儲,并且定時向所述流媒體控制器發送心跳報文信息;

所述流媒體控制器通過主動查詢或者根據所述心跳報文信息,對所有直播收錄任務的狀態進行監控,并對直播收錄任務的狀態數據進行分布式存儲。

進一步地,所述收錄任務控制器啟動所述直播收錄任務時,還包括:

檢測當前的直播頻道目錄是否為空;

若是,則將主網絡和備用網絡接入的流媒體進行收錄和分布式存儲;

若否,則加載當前的直播頻道目錄已有的播放列表文件,保留已完成的切片,啟動接收主網絡和備用網絡接入的流媒體數據進行繼續切片,并在所述播放列表文件上設定新增切片的標簽。

進一步地,所述的流媒體直播錄制冗余熱備的方法還包括:

當所述流媒體控制器中的主設備所在節點出現故障時,將所述流媒體控制器切換至其內部的備用設備進行工作;

從分布式存儲器中加載所述流媒體控制器中的主設備記錄的任務信息數據;

監控和檢測當前所有直播收錄任務的狀態;在發現直播收錄任務中不存在心跳報文信息,且多次查詢后仍未接收到反饋信息時,向所述收錄任務控制器重新下發直播收錄任務。

優選地,所述的流媒體直播錄制冗余熱備的方法,還包括:

源服務器接收到播放終端發出的直播播放請求時,根據本地存儲路徑,查找出與所述直播播放請求相對應的直播頻道錄制的數據,動態生成播放列表文件,并將所述播放列表文件返給所述播放終端。

進一步地,所述的流媒體直播錄制冗余熱備的方法,還包括:

對直播錄制的頻道和節目參數配置,通過API接口為播放終端生成直播播放地址;

所述播放終端請求所述直播播放地址,并根據播放列表文件的索引開始下載切片文件,基于HLS協議播放直播錄制的頻道的流媒體。

另一方面,本發明實施例還提供了一種流媒體直播錄制冗余熱備的系統,包括:

直播編碼器,用于輸出待錄制的直播流媒體;

主網絡和備用網絡,用于通過端口級備份的方式,將直播編碼器編碼后的碼流同步輸入到主網絡和備用網絡;

后臺管理系統,用于發布直播頻道和配置輸入源信息;

采用主備冗余機制的流媒體控制器,用于根據所述直播頻道和所述輸入源信息,創建直播收錄任務,并對外部設備提供虛擬IP的訪問方式;

收錄任務控制器,用于通過API接口接收所述流媒體控制器的控制信號,啟動或停止直播收錄任務;

所述收錄任務控制器,還用于在啟動所述直播收錄任務時,將主網絡和備用網絡接入的直播編碼器的直播碼流進行收錄和分布式存儲,并且定時向所述流媒體控制器發送心跳報文信息;

所述流媒體控制器,還用于通過主動查詢或者根據所述心跳報文信息,對所有直播收錄任務的狀態進行監控,并對直播收錄任務的狀態數據進行分布式存儲;

分布式存儲器,用于對所述收錄任務控制器和所述流媒體控制器記錄的數據進行存儲。

進一步地,所述收錄任務控制器,還用于:

檢測當前的直播頻道目錄是否為空;若是,則將主網絡和備用網絡接入的流媒體進行收錄和分布式存儲;若否,則加載當前的直播頻道目錄已有的播放列表文件,保留已完成的切片,啟動接收主網絡和備用網絡接入的流媒體數據進行繼續切片,并在所述播放列表文件上設定新增切片的標簽。

進一步地,所述的流媒體直播錄制冗余熱備的系統還包括:

采用主備冗余機制的流媒體控制器包括主設備和備用設備;

所述備用設備,用于當所述流媒體控制器中的主設備所在節點出現故障時,接替流媒體控制器的主設備進行工作;

所述備用設備,還用于從分布式存儲器中加載所述流媒體控制器中的主設備記錄的任務信息數據;并監控和檢測當前所有直播收錄任務的狀態;在發現直播收錄任務中不存在心跳報文信息,且多次查詢后仍未接收到反饋信息時,向所述收錄任務控制器重新下發直播收錄任務。

進一步地,所述的流媒體直播錄制冗余熱備的系統,還包括:源服務器和播放終端;

所述源服務器,用于在接收到播放終端發出的直播播放請求時,根據本地存儲路徑,查找出與所述直播播放請求相對應的直播頻道錄制的數據,動態生成播放列表文件,并將所述播放列表文件返給所述播放終端。

優選地,所述的流媒體直播錄制冗余熱備的系統,還包括:

所述后臺管理系統,還用于對直播錄制的頻道和節目參數配置,通過API接口為播放終端生成直播播放地址;

所述播放終端,用于請求所述直播播放地址,并根據播放列表文件的索引開始下載切片文件,基于HLS協議播放直播錄制的頻道的流媒體。

本發明實施例提供的流媒體直播錄制冗余熱備的技術方案,克服現有技術的缺陷,充分利用現有的流媒體服務器資源,在不額外增加服務器和減少不必要的冗余存儲空間的情況下,實現快速的冗余熱備,減少系統發生故障和宕機后業務中斷的時間(控制在2秒以內)。在本發明提供的技術方案中,可以將收錄任務控制器、流媒體控制器均部署在流媒體服務器上,不需要專門的錄制服務器或控制服務器,降低系統硬件資源和構建成本;此外,為了保證在流媒體控制器出現故障或所在服務器宕機等情況下,已經下發收錄任務要繼續運行,新下發的收錄任務還可以繼續接收,流媒體控制器采用主備冗余機制,對直播收錄任務的狀態數據進行分布式存儲;此外,啟動直播收錄任務時收錄的流媒體同樣采用分布式存儲,可以很容易實現多個媒體服務器之間進行負載均衡的調度,同時可以在動態下發收錄任務到相對空閑的流媒體服務器上,便于隨業務量增長的存儲容量的無限擴展。

附圖說明

圖1是本發明提供的流媒體直播錄制冗余熱備的方法的一個實施例的步驟流程圖。

圖2是本發明提供的流媒體直播錄制冗余熱備的系統的一個實施例的結構示意圖。

圖3是本發明提供的啟動收錄任務的一種實現方式的步驟流程圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述。

參見圖1,是本發明提供的流媒體直播錄制冗余熱備的方法的一個實施例的步驟流程圖。參看圖2,是本發明提供的流媒體直播錄制冗余熱備的系統的一個實施例的結構示意圖。

在本實施例中,所述的流媒體直播錄制冗余熱備的方法,主要包括以下六個步驟:

步驟S1:通過端口級備份的方式,,將直播編碼器100編碼后的碼流接入至主網絡201和備用網絡202;

步驟S2:通過后臺管理系統300發布直播頻道和配置輸入源信息;

步驟S3:流媒體控制器400采用主備冗余機制,根據所述直播頻道和所述輸入源信息,創建直播收錄任務,并對外部設備提供虛擬IP的訪問方式;

步驟S4:所述流媒體控制器400通過API接口控制收錄任務控制器500啟動或停止直播收錄任務;

步驟S5:所述收錄任務控制器500啟動所述直播收錄任務時,將主網絡201和備用網絡202接入的直播編碼器的直播碼流進行收錄和分布式存儲,并且定時向所述流媒體控制器400發送心跳報文信息;

步驟S6:所述流媒體控制器400通過主動查詢或者根據所述心跳報文信息,對所有直播收錄任務的狀態進行監控,并對直播收錄任務的狀態數據進行分布式存儲。當所述流媒體控制器檢測到一個或多個直播頻道的直播收錄任務發生中斷或故障時,搜索出相對空閑的節點重新下發所述直播頻道對應的直播收錄任務。

與上述實施例提供的流媒體直播錄制冗余熱備的方法相對應,本發明實施例還提供了一種流媒體直播錄制冗余熱備的系統,包括:

直播編碼器100,用于輸出待錄制的直播流媒體;其中,為了保證輸入源不會出現單點故障,直播編碼器100需要支持端口級備份和N+M冗余備份機制,以便在當前使用的直播編碼器出現故障或宕機的情況下,可以自動切換到備用直播編碼器輸出備份流。如圖2所示,直播編碼器100中至少設有主直播編碼器101和備用直播編碼器102,實現對流媒體數據的雙機備份。其中,端口級備份,在本實施例中是指直播編碼器100采用多個(如,2個)網絡接口進行綁定以實現端口級的備份,其目的是實現更完整的數據備份;而N+M冗余備份是指多臺直播編碼器與多個網絡之間的備份機制。

主網絡201和備用網絡202,用于通過分別綁定的網絡接口,接入直播編碼器直播碼流,并通過所述備用網絡202對待錄制的直播流媒體進行實時備份。

后臺管理系統300,用于發布直播頻道和配置輸入源信息。

采用主備冗余機制的流媒體控制器400,用于根據所述直播頻道和所述輸入源信息,創建直播收錄任務,并對外部設備提供虛擬IP的訪問方式,以便主備發生切換時,外部設備可以正常的訪問。

收錄任務控制器500,用于通過API接口接收所述流媒體控制器400的控制信號,啟動或停止直播收錄任務;

所述收錄任務控制器500,還用于在啟動所述直播收錄任務時,將主網絡201和備用網絡202接入的流媒體進行收錄和分布式存儲,并且定時向所述流媒體控制器400發送心跳報文信息。

所述流媒體控制器400,還用于通過主動查詢或者根據所述心跳報文信息,對所有直播收錄任務的狀態進行監控,并對直播收錄任務的狀態數據進行分布式存儲。

分布式存儲器600,用于對所述收錄任務控制器500和所述流媒體控制器400記錄的數據進行存儲。

當所述流媒體控制器400中的主設備401所在節點出現故障時,將所述流媒體控制器切換至其內部的備用設備402進行工作;從分布式存儲器600中加載所述流媒體控制器400中的主設備401記錄的任務信息數據;監控和檢測當前所有直播收錄任務的狀態;在發現直播收錄任務中不存在心跳報文信息,且多次查詢后仍未接收到反饋信息時,向所述收錄任務控制器500重新下發直播收錄任務。

在本實施例中,直播編碼器100通過UDP(User Datagram Protocol,用戶數據報協議)等多種協議將多播輸出內容相同的節目源到兩個配置為主備冗余綁定的網口到主網絡201和備用網絡202,避免網絡的單點故障,并通過HLS(HTTP Live Streaming)協議將進行冗余熱備后的流媒體數據輸出至播放終端800中進行播放。HLS是一種基于HTTP的流媒體傳輸協議,廣泛運用在流媒體服務器和客戶端之間(主要應用于iOS終端和安卓終端),可實現流媒體的直播、時移、回看和點播。

用戶可以通過后臺管理系統300的管理頁面創建和發布直播頻道,配置輸入源的多播地址和端口,并設置有是否打開回看錄制等選項,后臺管理系統300將通過HTTP REST(Representational State Transfer,表述性狀態轉移)API(Application Programming Interface,應用程序接口)接口將下發創建直播收錄任務給流媒體控制器400;同時可以通過API接口從流媒體控制器400獲取直播的播放URL(Uniform/Universal Resource Locator,統一資源定位符)播放地址,以供給播放終端800來訪問。

具體實施時,流媒體控制器400采用HTTP協議和REST API接口,可以提供頻道直播收錄任務的啟動,停止或重啟功能。收錄任務啟動后,需要通過收錄任務控制器500定時發送心跳報文信息給流媒體控制器400,同時流媒體控制器400也可以主動查詢所有收錄任務的狀態信息,在發現收錄任務出現中斷或故障的情況下,按優化的算法查找出相對空閑的節點,重新下發該頻道的收錄任務。

在本實施例中,流媒體控制器400主要提供收錄任務的管理,包括下發、狀態監控和任務在各節點負載均衡等,其可部署在已有的流媒體服務器上,為了保證在流媒體控制器出現故障或所在服務器宕機等情況下,已經下發收錄任務要繼續運行,新下發的收錄任務還可以繼續接收,流媒體控制器400需要部署到兩臺服務器做主備冗余。

如圖2所示,采用主備冗余機制的流媒體控制器400包括主設備401和備用設備402。流媒體控制器可以采用多種技術(如keepalived技術)實現自身主備的支持,只會提供虛擬IP的方式對外部設備來實現訪問。Keepalived是一個基于VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協議)來實現的WEB服務高可用方案,可以利用其來避免單點故障。流媒體控制器400(包括主設備401和備用設備402)需要記錄所有頻道的收錄任務狀態等數據,存儲在分布式存儲磁盤上,以便主設備401所在節點出現故障或宕機,再切換到備用設備402的節點后,可以繼續監控和管理所有的收錄任務情況,假定主設備401所在的節點出現故障時也有部分收錄任務在運行,主備切換后,備用設備402需要重新從分布式存儲器600上加載主設備401記錄的任務信息數據,檢測所有收錄任務狀態,有出現故障和中斷的,就需要重新協調下發收錄任務。

所述備用設備402,用于當所述流媒體控制器400中的主設備401所在節點出現故障時,接替流媒體控制器400的主設備401進行工作;

所述備用設備402,還用于從分布式存儲器600中加載所述流媒體控制器400中的主設備401記錄的數據;并檢測當前所有直播收錄任務的狀態;在存在直播收錄任務中斷時,向所述收錄任務控制器500重新下發直播收錄任務。

進一步地,所述收錄任務控制器500,還用于:

檢測當前的直播頻道目錄是否為空;若是,則將主網絡201和備用網絡202接入的流媒體進行收錄和分布式存儲,并且定時向所述流媒體控制器400發送心跳報文信息;若否,則加載當前的直播頻道目錄已有的播放列表文件,保留已完成的切片,啟動接收主網絡201和備用網絡202接入的流媒體數據進行繼續切片,并在所述播放列表文件上設定新增切片的標簽。

參看圖3,是本發明提供的啟動收錄任務的一種實現方式的步驟流程圖。

具體地,收錄任務啟動后,如果發現當前的直播頻道目錄為空,就按首次啟動方式進行流媒體記錄;若檢測到當前目錄下有殘余的播放列表文件盒切片,說明這是重新下發的收錄任務,這時需要先加載已有的播放列表文件,如M3U8格式的索引文件,保留所有已經完成的切片,然后再從直播編碼器100中接收輸入數據,繼續切片;切片的序號在已有的序號基礎上繼續增加,M3U8格式的索引文件則需要根據HLS的協議添加相應的標簽(如,EXT-X-DISCONTINUITY標簽),以區分各個切片。實際測試證明,可以控制熱切換中間丟失的數據在2秒以內,對業務來說基本沒有影響。

進一步地,所述的流媒體直播錄制冗余熱備的系統,還包括:源服務器700和播放終端800。具體實施時,流媒體的源服務器700為一個或多個源服務器集群1~N中的設備,其主要提供錄制碼流的直播、時移、回看點播的碼流的點播推送,可以與收錄任務控制器500共同部署在相同和不同的流媒體服務器上。此外,源服務器700,用于在接收到播放終端800發出的直播播放請求時,根據本地存儲路徑,查找出與所述直播播放請求相對應的直播頻道錄制的數據,動態生成播放列表文件(如以M3U8為格式后綴的索引文件),并將所述播放列表文件返給所述播放終端800。

此外,所述后臺管理系統300,還用于對直播錄制的頻道和節目參數配置,通過API接口為播放終端800生成直播播放地址;

所述播放終端800,用于請求所述直播播放地址,并根據播放列表文件的索引開始下載切片文件,基于HLS協議播放直播錄制的頻道的流媒體。

在本實施例中,收錄任務控制器500需要與流媒體控制器400建立心跳機制,以實時監控收錄任務的執行狀態;并且,在流媒體控制器400因為故障切換到備用節點402后,還需要有軟件機制重新來建立心跳鏈路。

分布式存儲器需要先掛載到所有的流媒體服務器的本地目錄下,并未點播數據和直播數據分別分配收錄路徑。譬如,將“/media”將作為虛擬的根目錄,則可以在“/media/vod”目錄存放點播數據,采用“/media/live”目錄存儲直播的數據。并可以將直播收錄的路徑結構定義為:“根目錄:/media/live,直播頻道路徑:channel[n]”;將直播收錄的目錄結構定義為:“/media/live/channel[n]/”下的子目錄。切片文件名規則定義可以根據具體的流媒體傳輸協議執行,并且,切片分段時長優選采用10秒。

播放終端800請求直播播放地址時,后臺管理系統300對直播錄制的頻道和節目參數配置,通過API接口為播放終端800生成直播播放地址,例如,播放地址格式可以為:http://streaming_domain/live/chan[n]/playlist.m3u8。

在本實施例中,假定所述播放請求已經發送到集群中的所有源服務器700中,故不考慮邊緣服務器的情況。在具體的實際直播平臺系統中,集群的源服務器700通過負載均衡的技術重定向播放終端800的請求到其中一臺源服務器,該源服務器根據路徑定義規則,查找到該直播頻道錄制的數據,動態生成以M3U8為后綴的索引文件返給播放終端800。播放終端800按M3U8文件的索引開始下載切片文件,以滑動窗口的方式,基于HLS協議開啟流媒體的播放流程。

本發明實施例提供的流媒體直播錄制冗余熱備的技術方案,克服現有技術的缺陷,充分利用現有的流媒體服務器資源,在不額外增加服務器和減少不必要的冗余存儲空間的情況下,實現快速的冗余熱備,減少系統發生故障和宕機后業務中斷的時間(控制在2秒以內)。在本發明提供的技術方案中,可以將收錄任務控制器、流媒體控制器均部署在流媒體服務器上,不需要專門的錄制服務器或控制服務器,降低系統硬件資源和構建成本;此外,為了保證在流媒體控制器出現故障或所在服務器宕機等情況下,已經下發收錄任務要繼續運行,新下發的收錄任務還可以繼續接收,流媒體控制器采用主備冗余機制,對直播收錄任務的狀態數據進行分布式存儲;此外,啟動直播收錄任務時收錄的流媒體同樣采用分布式存儲,可以很容易實現多個媒體服務器之間進行負載均衡的調度,同時可以在動態下發收錄任務到相對空閑的流媒體服務器上,便于隨業務量增長的存儲容量的無限擴展。

實施本發明提供的技術方案,可以在(主、備)網絡、直播流媒體輸入源、收錄任務控制器、源服務器和流媒體控制器等其中任何一個環節和設備出現故障,都有冗余熱備的機制保障業務不會長時間中斷。使用本發明不需要采用專門的直播收錄服務器,節約了服務器成本,同時因為沒有錄制直播冗余的副本,節約了存儲的投入,從而節約整個系統投入成本。此外,隨著業務量大幅增加,使用本發明可以很容易對系統進行無縫的擴展,而不影響現有的業務的服務。

以上所述是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影