TWI868775B - 用於流式傳輸服務的視頻加工方法及其系統 - Google Patents
用於流式傳輸服務的視頻加工方法及其系統 Download PDFInfo
- Publication number
- TWI868775B TWI868775B TW112125008A TW112125008A TWI868775B TW I868775 B TWI868775 B TW I868775B TW 112125008 A TW112125008 A TW 112125008A TW 112125008 A TW112125008 A TW 112125008A TW I868775 B TWI868775 B TW I868775B
- Authority
- TW
- Taiwan
- Prior art keywords
- queue
- video
- item
- pipeline
- creation
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23424—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2223—Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2404—Monitoring of server processing errors or hardware failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26291—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Image Processing (AREA)
Abstract
提供一種使用雲函數加工用於流式傳輸服務的視頻的方法及其系統。根據本發明的一實施例的用於流式傳輸服務的視頻加工方法包括如下步驟:將用於流式傳輸視頻原始檔案的作業項目的創建發佈到主隊列的主題;隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線。
Description
本發明涉及一種用於流式傳輸服務的視頻加工方法及其系統,具體涉及一種使用雲函數加工用於流式傳輸服務的視頻的方法及其系統。
當內容提供商(CP;Contents Provider)提供內容的視頻原始檔案時,需要執行多個操作來向用戶提供相應內容的流式傳輸服務。例如,需要執行視頻接入(ingestion)操作、用於檢查視頻原始檔案或接入數據的品質的操作、字幕處理操作等多個操作,其中視頻接入操作是指將視頻原始檔案加工成流式傳輸服務格式並適當上傳到伺服器的操作,包括對視頻原始檔案的編碼或分塊(chunking)等。
根據現有技術,這些用於視頻流式傳輸的多個操作通常在一臺大型伺服器中順序執行。按照這種傳統方法,在節省計算資源方面有優勢,但由於多個操作是順序處理的,導致視頻原始檔案的處理速度較慢,因此存在從內容提供商提供視頻原始檔案到最終向用戶提供流式傳輸服務需要很長的時間的缺點。
並且,按照傳統方法,當在現有的處理邏輯中添加用於視頻流式傳輸的特定操作,例如危害性驗證操作時,很多情況下需要根據所添加的操作的特點來修改現有的源代碼,這在架構的可擴展性方面存在缺陷。
專利文獻:韓國授權發明特許第10-1141020號(2011.02.10公佈)
本發明的一些實施例所要解決的技術問題在於,提供一種使用雲函數加工用於流式傳輸服務的視頻的方法及應用該方法的系統。
本發明的一些實施例所要解決的另一技術問題在於,提供一種通過並行處理用於流式傳輸服務的多個操作來縮短視頻加工所需的時間的方法及應用該方法的系統。
本發明所要解決的技術問題不限於上述技術問題,本領域技術人員能夠從下麵的說明中將清楚地理解未提及的其他技術問題。
用於解決所述技術問題的根據本發明的一實施例的用於流式傳輸服務的視頻加工方法可以包括如下步驟:
將用於流式傳輸視頻原始檔案的作業項目的創建發佈(publish)到主隊列(queue)的主題;以及隨著所述主隊列的主題的訂閱(subscribe),檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線,此時,執行所述第一流水線的步驟包括如下步驟:將創建的所述作業項目插入到所述第一流水線的第一佇列;使所述作業項目從所述第一佇列出隊(dequeue),並回應於從所述第一佇列的出隊而調用第一雲函數,所述第一雲函數是通過執行視頻接入模組以執行從所述第一佇列出隊的作業項目的視頻接入作業的無伺服器計算應用;通過用於執行所述視頻接入模組的雲應用監控模組檢測所述視頻接入作業是否執行完成;回應於檢測到所述視頻接入作業執行完成,將完成的所述視頻接入作業項目插入到所述第一流水線的第二佇列;及使完成的所述視頻接入作業項目從所述第二佇列出隊,並回應於從所述第二佇列的出隊而調用第二雲函數,所述第二雲函數是執行從所述第二佇列出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
在一實施例中,所述第一雲函數與所述第一佇列一一對應,所述第二雲函數可以與所述第二佇列一一對應。
在一實施例中,將所述作業項目的創建發佈到主隊列的步驟包括如下步驟:通過執行內容創建處理雲函數,將創建的所述作業項目插入到主隊列。此時,通過執行所述內容創建處理雲函數,將創建的所述作業項目插入到主隊列的步驟包括如下步驟:通過執行所述內容創建處理雲函數,將與創建的所述作業項目的所述視頻原始檔案對應的記錄添加到內容管理系統(CMS)的資料庫中包括的第一表。並且,所述第一雲函數包括:用於執行所述視頻接入模組並更新所述記錄的狀態字段的指令(instruction)。並且,所述第二雲函數包括:用於基於從所述第二佇列出隊的作業項目指示的視頻接入作業是否成功更新所述記錄的狀態字段的指令。
在一實施例中,所述用於流式傳輸服務的視頻加工方法還可以包括如下步驟:隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第二流水線。此時,執行所述第二流水線的步驟包括如下步驟:將創建的所述作業項目插入到所述第二流水線的第三佇列;及使創建的所述作業項目從所述第三佇列出隊,並回應於從所述第三佇列的出隊而調用第三雲函數,所述第三雲函數是調用消息創建API以在協作工具上發表通知所述作業項目的創建的消息的無伺服器計算應用。
在一實施例中,所述用於流式傳輸服務的視頻加工方法還包括如下步驟:隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第三流水線。此時,執行所述第三流水線的步驟包括如下步驟:將創建的所述作業項目插入到所述第三流水線的第四佇列;以及使創建的所述作業項目從所述第四佇列出隊,並回應於從所述第四佇列的出隊而調用第四雲函數,所述第四雲函數是包括用於執行與根據從所述第四佇列出隊的作業項目的視頻接入作業並行執行的所述視頻原始檔案相關追加操作的指令的無伺服器計算應用。
用於解決所述技術問題的根據本發明的另一實施例的用於流式傳輸服務的視頻加工系統可以包括:通信介面;記憶體,用於加載(load)電腦程式;以及處理器,用於執行所述電腦程式。此時,所述電腦程式可以包括:將用於流式傳輸視頻原始檔案的作業項目的創建發佈(publish)到主隊列(queue)的主題的多個指令(instructions);及隨著所述主隊列的主題的訂閱(subscribe),檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線的多個指令。此時,執行所述第一流水線的多個指令可以包括:將創建的所述作業項目插入到所述第一流水線的第一佇列的多個指令;使所述作業項目從所述第一佇列出隊(dequeue),並回應於從所述第一佇列的出隊而調用第一雲函數的多個指令,所述第一雲函數是通過執行視頻接入模組以執行從所述第一佇列出隊的作業項目的視頻接入作業的無伺服器計算應用;通過用於執行所述視頻接入模組的雲應用監控模組檢測所述視頻接入作業是否執行完成的多個指令;回應於檢測到所述視頻接入作業執行完成,將完成的所述視頻接入作業項目插入到所述第一流水線的第二佇列的多個指令;以及使完成的所述視頻接入作業項目從所述第二佇列出隊,並回應於從所述第二佇列的出隊而調用第二雲函數的多個指令,所述第二雲函數是執行從所述第二佇列出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
在一實施例中,所述用於流式傳輸服務的視頻加工系統還可以包括:隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第三流水線的多個指令。此時,執行所述第三流水線的多個指令可以包括:將創建的所述作業項目插入到所述第三流水線的第四佇列的多個指令;及使創建的所述作業項目從所述第四佇列出隊,並回應於從所述第四佇列的出隊而調用第四雲函數的指令,所述第四雲函數是包括用於執行與根據從所述第四佇列出隊的作業項目的視頻接入作業並行執行的所述視頻原始檔案相關追加操作的指令的無伺服器計算應用。
在下文中,將參照附圖詳細說明本發明的優選實施例。通過下麵結合附圖詳細說明的實施例,本發明的優點和特徵以及實現它們的方法將變得清楚。然而,本發明的技術思想不限於以下實施例,並且可以以各種不同的形式來實現,提供以下實施例僅僅為了完善本發明的技術思想並使本發明所屬領域的普通技術人員充分瞭解本發明的範圍,本發明的技術思想僅由權利要求的範圍來限定。
在說明本發明的各種實施例時,如果確定相關已知配置或功能的詳細說明可能會模糊本發明的要旨,則將省略該詳細說明。
除非另有定義,否則在以下實施例中使用的術語(包括技術和科學術語)可以按照本發明所屬領域的普通技術人員通常理解的含義來使用,但是也可以根據相關領域的技術人員的意圖、先例以及新技術的出現而變化。本發明中使用的術語用於說明實施例並且不旨在限制本發明的範圍。
除非在上下文中明確指定為單數,否則以下示例中使用的單數表達包括複數概念。此外,除非在上下文中明確指定為複數,否則複數表達包括單數概念。
並且,在以下實施例中使用的諸如第一、第二、A、B、(a)和(b)等術語僅用於將某些組件與其他組件區分開,並且這些術語並不用於限制組件的本質或順序。
在下文中,將參照附圖詳細說明本發明的各種實施例。
圖1為根據本發明的一實施例的整個系統的配置圖。
在下文中,參照附圖說明根據本發明的一實施例的整個系統的配置和操作。如圖1所示,根據本實施例的整個系統可以包括用於流式傳輸服務的視頻加工系統10,在一些實施例中,還可以包括檔庫20。
檔庫20中可以存儲作為流式傳輸對象的內容的視頻原始檔案。這種視頻原始檔案可以由內容提供商上傳,並且當由內容提供商完成視頻原始檔案的上傳時,可以執行內容創建處理雲函數。即,內容創建處理雲函數的執行可以由內容提供商的上傳而引起。當內容創建處理雲函數執行,可以創建用於流式傳輸的作業項目。
作業項目管理器11可以將用於流式傳輸視頻原始檔案的作業項目的創建發佈到主隊列的主題。其中,用於流式傳輸的作業項目可以指的是用於加工被插入到主隊列和第一佇列至第四佇列中的至少一個佇列並被出隊的視頻的數據。此時,所述主隊列可以是發佈/訂閱(publish/subscribe,Pub/Sub)形式的模型。因此,隨著所述主隊列的主題的訂閱(subscribe)檢測所述作業項目的創建的流水線執行器100可以並行執行各流水線。稍後說明關於流水線的細節。
在一些實施例中,作業項目管理器11可以通過執行內容創建處理雲函數,將上述的創建的作業項目插入到主隊列。此時,作業項目管理器11可以將與創建的所述作業項目的視頻原始檔案對應的記錄添加到內容管理系統(CMS)的資料庫中包括的第一表。
所述第一表中可以存儲有對所述視頻原始檔案的操作的處理歷史。與所述視頻原始檔案對應的記錄的添加可以意味著在所述第一表中添加包括狀態字段和各操作的處理時間的行數據。在這種情況下,將關於作業項目的創建的記錄添加到所述第一表,可以將包括具有與“創建”對應的狀態值的狀態字段和所述作業項目的創建時間的行數據添加到所述第一表。
視頻接入模組12可以執行從第一流水線的第一佇列出隊的作業項目指示的視頻接入作業。所述視頻接入作業可以意味著與視頻接入相關的操作,例如,編碼或分塊。
雲應用監控模組13可以通過監控特定模組,例如,所述視頻接入模組12來檢測相應模組執行作業是否完成執行。
流水線執行器100可以隨著主隊列的主題的訂閱,檢測作業項目的創建,並回應於所述作業項目的創建來執行第一流水線。例如,流水線執行器100可以將創建的所述作業項目插入到第一流水線的第一佇列。之後,可以使所述作業項目從所述第一佇列出隊,並回應於從所述第一佇列的出隊而調用第一雲函數。此時,所述第一雲函數可以是通過執行視頻接入模組以執行從所述第一佇列出隊的作業項目的視頻接入作業的無伺服器計算應用。之後,回應於通過用於執行所述視頻接入模組的雲應用監控模組檢測所述視頻接入作業是否執行完成,可以將完成的所述視頻接入作業項目插入到所述第一流水線的第二佇列。之後,可以使完成的所述視頻接入作業項目從所述第二佇列出隊,並回應於從所述第二佇列的出隊而調用第二雲函數。此時,所述第二雲函數可以是執行從所述第二佇列出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
在一些實施例中,流水線執行器100可以隨著主隊列的主題的訂閱,檢測作業項目的創建,並回應於所述作業項目的創建來執行第二和/或第三流水線。在此過程中,流水線執行器100可以將作業項目插入到第二佇列至第四佇列,或者使其從第二佇列至第四佇列出隊,並調用第二雲函數至第四雲函數。
用於流式傳輸服務的視頻加工系統10包括上述的作業項目管理器11和流水線執行器100,在一些實施例中,還可以包括視頻接入模組12和雲應用監控模組13。
作業項目管理器11、視頻接入模組12、雲應用監控模組13和流水線執行器100分別可以以獨立的計算系統實現,或者作業項目管理器11、視頻接入模組12、雲應用監控模組13和流水線執行器100中的至少一個可以通過一個計算系統一起實現。
在上文中說明了根據本實施例的整個系統的配置和操作。尤其,流水線執行器100的操作可以通過稍後說明的實施例更加清楚。即,流水線執行器100的操作可以通過稍後說明的實施例補充說明。
接著,參照圖2至圖8說明根據本發明的另一實施例的用於流式傳輸服務的視頻加工方法。根據本實施例的用於流式傳輸服務的視頻加工方法可以由一個以上計算系統執行。並且,根據本實施例的用於流式傳輸服務的視頻加工方法可以由第一計算系統執行部分操作,並由第二計算系統執行其他操作。
例如,根據本實施例的用於流式傳輸服務的視頻加工方法可以由預置(On-Premise)物理伺服器執行部分操作,並由雲伺服器執行其他操作。在下文中,當省略每個操作的執行主體時,將理解執行的主體是所述計算系統。
首先,參照圖2簡單說明根據本實施例的用於流式傳輸服務的視頻加工方法。根據需要,可以稍後說明各步驟的細節。將用於流式傳輸視頻原始檔案的作業項目的創建發佈到主隊列的主題(S100),隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線(S200)。
參照圖3和圖4,進一步詳細說明步驟S200。
圖4為概念性地顯示第一流水線的執行過程的圖。
隨著主隊列300的主題的訂閱,檢測到用於流式傳輸視頻原始檔案的作業項目的創建時,將創建的所述作業項目插入到第一流水線400的第一佇列410(S210)。之後,使所述作業項目從所述第一佇列410出隊,並回應於從所述第一佇列410的出隊而調用第一雲函數420(S220)。此時,所述第一雲函數420可以是通過執行視頻接入模組12以執行從所述第一佇列410出隊的作業項目的視頻接入作業的無伺服器計算應用。
其中,所述第一雲函數420可以與所述第一佇列410一一對應。即,所述第一佇列410可以是所述第一雲函數420的獨佔佇列,所述第一雲函數420可以從所述第一佇列410接收執行目標。所述第一佇列410中可以存儲並更新與想要通過第一雲函數420執行的操作的執行結果相關的資訊,例如,相應操作是否成功,如果失敗,則其次數相關資訊。並且,基於這種資訊,使作業項目管理器11執行暫停視頻加工,或者從主隊列300刪除作業項目等處理。
之後,通過監控所述視頻接入模組12的雲應用監控模組13,檢測所述視頻接入作業的執行是否完成(S230)。並且,回應於檢測到所述視頻接入作業執行完成,將完成的所述視頻接入作業項目插入到所述第一流水線400的第二佇列430(S240)。
之後,使完成的所述視頻接入作業項目從所述第二佇列430出隊,並回應於從所述第二佇列430的出隊而調用第二雲函數440(S250)。此時,所述第二雲函數440可以是執行從所述第二佇列430出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
其中,所述第二雲函數440可以與所述第二佇列430一一對應。即,所述第二佇列430可以是所述第二雲函數440的獨佔佇列,所述第二雲函數440可以從所述第二佇列430接收執行目標。所述第二佇列430中可以存儲並更新與想要通過第二雲函數440執行的操作的執行結果相關的資訊,例如,相應操作是否成功,如果失敗,則其次數相關資訊。並且,基於這種資訊,使作業項目管理器11執行暫停視頻加工,或者從主隊列300刪除作業項目等處理。
在一些實施例中,所述第一雲函數420可以包括執行所述視頻接入模組12,並更新與創建的所述作業項目的視頻原始檔案對應的記錄的狀態字段的指令。在這種情況下,可以將所述狀態字段更新為與所述視頻接入模組12已執行狀態對應的狀態值。
並且,在一些實施例中,所述第二雲函數440可以包括基於從所述第二佇列430出隊的作業項目指示的視頻接入作業是否成功更新所述記錄的狀態字段的指令。在這種情況下,可以將所述狀態字段更新為與從所述第二佇列430出隊的作業項目指示的視頻接入作業的成功或失敗對應的狀態值。
像這樣,通過將更新與視頻原始檔案對應的記錄的狀態字段的指令包括到各雲函數(在第一流水線的情況下,第一雲函數420和第二雲函數440),可以在使用雲函數的同時記錄並監控整體的視頻處理情況。
參照圖5,在其他實施例中,用於流式傳輸服務的視頻加工方法還可以包括:隨著主隊列300的主題的訂閱,檢測用於流式傳輸視頻原始檔案的作業項目的創建,並回應於所述作業項目的創建來執行第二流水線(S300)。
參照圖6,進一步詳細說明步驟S300。
在步驟S300中,將創建的所述作業項目插入到第二流水線500的第三佇列510。之後,使創建的所述作業項目從所述第三佇列510出隊,並回應於從所述第三佇列510的出隊而調用第三雲函數520。此時,所述第三雲函數520可以是調用消息創建API以在slack等協作工具530上發表通知所述作業項目的創建的消息的無伺服器計算應用。
其中,所述第三雲函數520與所述第三佇列510可以一一對應。即,所述第三佇列510可以是所述第三雲函數520的獨佔佇列,所述第三雲函數520可以從所述第三佇列510接收執行目標。
另一方面,在一些實施例中,第一流水線400的第二雲函數440可以回應於從第二佇列430出隊的作業項目指示的視頻接入作業的處理完成,可以將從所述第二佇列430出隊的作業項目插入到第二流水線500的第三佇列510。由此,可以通過將消息發表到協作工具530監控視頻處理情況。
參照圖7,在其他實施例中,用於流式傳輸服務的視頻加工方法還包括:隨著主隊列300的主題的訂閱,檢測用於流式傳輸視頻原始檔案的作業項目的創建,並回應於所述作業項目的創建來執行第三流水線(S400)。
參照圖8,進一步詳細說明步驟S400。
在步驟S400中,將創建的所述作業項目插入到第三流水線600的第四佇列610。
之後,使創建的所述作業項目從所述第四佇列610出隊,並回應於所述第四佇列610的出隊而調用第四雲函數620。此時,所述第四雲函數620是包括用於執行與根據從所述第四佇列610出隊的作業項目的視頻接入作業並行執行的所述視頻原始檔案相關追加操作的指令的無伺服器計算應用。其中,所述追加操作可以指的是能夠與所述視頻接入作業並行執行的多個操作,例如,品質檢查操作、字幕處理操作、危害性驗證操作等多個操作中的任一種。這種追加操作可以由執行相應追加操作的特定模組630。
並且,回應於由監控該特定模組630的雲應用監控模組640檢測到相應追加操作執行完成,可以將完成的所述追加操作指示的作業項目插入到第一流水線400的第二佇列430。在此情況下,使完成的所述追加操作指示的作業項目從所述第二佇列430出隊,並回應於從所述第二佇列430的出隊而調用第二雲函數440。此時,所述第二雲函數440可以是執行從所述第二佇列出隊430的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
如上述實施例所述,通過雲函數執行視頻接入、品質檢查、字幕處理、危害性驗證等用於流式傳輸的多個操作時,能夠並行處理所述多個操作。因此,能夠縮短從內容提供商提供視頻原始檔案到最終向用戶提供流式傳輸服務所需的時間,從而迅速向用戶提供流式傳輸服務。
進而,如上述實施例所述,通過雲函數執行所述多個操作,還具有容易擴展架構的優點。即,當需要在現有的邏輯添加用於視頻流式傳輸的特定操作時,只需將包括用於執行特定操作的雲函數的流水線連接到主隊列即可實現架構的擴展,無需整體修改現有的源代碼。
另一方面,所述第四雲函數620可以與所述第四佇列610一一對應。即,所述第四佇列610可以是所述第四雲函數620的獨佔佇列,所述第四雲函數620可以從所述第四佇列610接收執行目標。所述第四佇列610中可以存儲並更新與想要通過第四雲函數620執行的操作的執行結果相關的資訊,例如,相應操作是否成功,如果失敗,則其次數相關資訊。並且,基於這種資訊,使作業項目管理器11執行暫停視頻加工,或者從主隊列300刪除作業項目等處理。
圖9是根據本發明的一些實施例的計算系統1000的示意性硬體配置圖。
如圖9所示,圖9的計算系統1000可以包括:一個以上處理器1100、系統匯流排1600、通信介面1200、用於加載(load)由處理器1100執行的電腦程式1500的記憶體1400、用於存儲電腦程式1500的輔助記憶體1300。然而,圖9中僅顯示了與本發明實施例相關的組件。因此,本發明所屬領域的普通技術人員應當理解,除了圖9所示的組件之外,還可以包括其他通用組件。即,計算系統1000除了圖9所示的組件之外還可以包括各種組件。並且,在一些情況下,計算系統1000可以被配置為省略圖9所示的一些組件的形式。在下文中,將說明計算系統1000的各組件。
處理器1100可以控制計算系統1000的各組件的整體操作。處理器1100可以包括CPU(Central Processing Unit)、MPU(Micro Processor Unit)、MCU(Micro Controller Unit)、GPU(Graphic Processing Unit)、NPU(Neural Processing Unit)或本領域中公知的任何處理器中的至少一個。並且,處理器1100可以執行用於執行根據本發明的各種實施例的操作/方法的至少一個應用程式或程式的運算。計算系統1000可以包括一個或多個處理器。
並且,記憶體1400可以存儲各種數據、命令和/或資訊。記憶體1400可以從輔助記憶體1300加載電腦程式1500以執行根據本發明的各種實施例的方法/操作。記憶體1400可以被實現為諸如RAM的易失性記憶體,但是本發明的技術範圍不限於此。
並且,系統匯流排1600可以提供計算系統1000的組件之間的通信功能。系統匯流排1600可以被實現為各種類型的匯流排,諸如位址匯流排(Address Bus)、 資料匯流排(Data Bus)和控制匯流排(Control Bus)等。
並且,通信介面1200可以支持計算系統1000的有線/無線互聯網通信。此外,通信介面1200可以支持除了互聯網通信之外的各種通信方法。為此,通信介面1200可以包括本領域中公知的通信模組。
並且,輔助記憶體1300可以非臨時地存儲一個或多個電腦程式1500。輔助記憶體1300可以包括諸如閃存的非易失性記憶體、硬碟、可移動磁片或本領域公知的任何類型的電腦可讀記錄介質。
並且,電腦程式1500可以包括一個或多個指令,當加載到記憶體1400中時,該指令使處理器1100執行根據本發明的各種實施例的操作/方法。即,當電腦程式1500被加載到記憶體1400中時,處理器1100可以通過執行一個或多個指令來執行根據本發明的各種實施例的方法/操作。
在一些實施例中,電腦程式1500可以包括:將用於流式傳輸視頻原始檔案的作業項目的創建發佈到主隊列的主題的多個指令;以及隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線的多個指令。此時,執行所述第一流水線的多個指令可以包括:將創建的所述作業項目插入到所述第一流水線的第一佇列的多個指令;使所述作業項目從所述第一佇列出隊,並回應於從所述第一佇列的出隊而調用第一雲函數的多個指令,所述第一雲函數是通過執行視頻接入模組以執行從所述第一佇列出隊的作業項目的視頻接入作業的無伺服器計算應用;通過用於執行所述視頻接入模組的雲應用監控模組檢測所述視頻接入作業是否執行完成的多個指令;回應於檢測到所述視頻接入作業執行完成,將完成的所述視頻接入作業項目插入到所述第一流水線的第二佇列的多個指令;以及使完成的所述視頻接入作業項目從所述第二佇列出隊,並回應於從所述第二佇列的出隊而調用第二雲函數的多個指令,所述第二雲函數是執行從所述第二佇列出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
在一實施例中,所述用於流式傳輸服務的視頻加工系統還可以包括:隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第三流水線的多個指令。此時,執行所述第三流水線的多個指令可以包括:將創建的所述作業項目插入到所述第三流水線的第四佇列的多個指令;以及使創建的所述作業項目從所述第四佇列出隊,並回應於從所述第四佇列的出隊而調用第四雲函數的指令,所述第四雲函數是包括用於執行與根據從所述第四佇列出隊的作業項目的視頻接入作業並行執行的所述視頻原始檔案相關追加操作的指令的無伺服器計算應用。
另一方面,在一些實施例中,圖9所示的計算系統1000可以意味著基於雲技術實現的虛擬機。假設,計算系統1000是包括在伺服器農場(server farm)的一個以上物理伺服器(physical server)中運行的虛擬機。在這種情況下,如圖9所示的處理器1100、記憶體1400和輔助記憶體1300中的至少一部分可以是虛擬硬體(virtual hardware),通信介面1200也可以實現為虛擬交換機(virtual switch)等虛擬化網元。
在上文中參照圖9說明了能夠實現根據本發明的一些實施例的用於流式傳輸服務的視頻加工系統10的示意性計算系統1000。
在上文中參照圖1至圖9說明了本發明的各種實施例以及根據實施例的效果。根據本發明的技術思想的效果不限於上述效果,本領域技術人員能夠從下麵的說明中將清楚地理解未提及的其他效果。
並且,儘管在上述實施例中說明了多個組件被組合為一個或組合操作,但是本發明的技術思想不一定限於這些實施例。即,在本發明的技術思想的範圍內,所有組件可以選擇性地組合一個或多個來操作。
到目前為止說明的本發明的技術思想可以被實現為電腦可讀介質上的電腦可讀代碼。記錄在電腦可讀記錄介質上的電腦程式可以通過諸如互聯網之類的網路發送到另一計算系統,安裝在所述另一計算系統中,並在所述另一計算系統中使用。
儘管在附圖中以特定順序顯示了操作,但是不應理解必須以所示的特定順序或連續的順序來執行所述操作,或者必須執行所有所示的操作以獲得期望的結果。在某些情況下,多任務處理和並行處理可能是有利的。
儘管已經參照附圖說明了本發明的各種實施例,但是本發明所屬領域的普通技術人員應當理解,可以以不同的具體形式實施本發明的技術思想而不改變本發明的技術思想或本質特徵。因此,上述實施例應當被理解為在所有方面都是說明性的而不是限制性的。本發明的保護範圍應由所附申請專利範圍來解釋,並且等同範圍內的所有技術思想應被解釋為包括在本發明所限定的技術思想的權利範圍內。
10:用於流式傳輸服務的視頻加工系統
11:作業項目管理器
12:視頻接入模組
13、640:雲應用監控模組
100:流水線執行器
20:檔庫
300:主隊列
400、500、600:流水線
410、430、510、610:佇列
420、440、520、620:雲函數
530:協作工具
630:模組
1000:計算系統
1100:處理器
1200:通信介面
1300:輔助記憶體
1400:記憶體
1500:電腦程式
1600:系統匯流排
S100、S200、S210、S220、S230、S240、S250、S300、S400:步驟
圖1為根據本發明的一實施例的整個系統的配置圖。
圖2為根據本發明的另一實施例的用於流式傳輸服務的視頻加工方法的流程圖。
圖3為用於參照圖2說明用於流式傳輸服務的視頻加工方法的部分操作的流程圖。
圖4為概念性地顯示第一流水線的執行過程的圖。
圖5為用於說明參照圖2說明的用於流式傳輸服務的視頻加工方法的變形實施例的流程圖。
圖6為概念性地顯示第一流水線和第二流水線的執行過程的圖。
圖7為用於說明參照圖2說明的用於流式傳輸服務的視頻加工方法的變形實施例的流程圖。
圖8為概念性地顯示第一流水線和第三流水線的執行過程的圖。
圖9為本發明的一些實施例中說明的計算系統的硬體配置圖。
S100、S200:步驟
Claims (11)
- 一種用於流式傳輸服務的視頻加工方法,由計算系統執行,其中, 包括如下步驟: 將用於流式傳輸視頻原始檔案的作業項目的創建發佈(publish)到主隊列(queue)的主題;及 隨著所述主隊列的主題的訂閱(subscribe),檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線, 執行所述第一流水線的步驟包括如下步驟: 將創建的所述作業項目插入到所述第一流水線的第一佇列; 使所述作業項目從所述第一佇列出隊(dequeue),並回應於從所述第一佇列的出隊而調用第一雲函數,所述第一雲函數是通過執行視頻接入模組以執行從所述第一佇列出隊的作業項目的視頻接入作業的無伺服器計算應用; 通過用於執行所述視頻接入模組的雲應用監控模組檢測所述視頻接入作業是否執行完成; 回應於檢測到所述視頻接入作業執行完成,將完成的所述視頻接入作業項目插入到所述第一流水線的第二佇列;及 使完成的所述視頻接入作業項目從所述第二佇列出隊,並回應於從所述第二佇列的出隊而調用第二雲函數,所述第二雲函數是執行從所述第二佇列出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
- 如請求項1之用於流式傳輸服務的視頻加工方法,其中,所述第一雲函數與所述第一佇列一一對應,所述第二雲函數與所述第二佇列一一對應。
- 如請求項1之用於流式傳輸服務的視頻加工方法,其中,將所述作業項目的創建發佈到主隊列的步驟包括如下步驟: 通過執行內容創建處理雲函數,將創建的所述作業項目插入到主隊列。
- 如請求項3之用於流式傳輸服務的視頻加工方法,其中,通過執行所述內容創建處理雲函數,將創建的所述作業項目插入到主隊列的步驟包括如下步驟: 通過執行所述內容創建處理雲函數,將與創建的所述作業項目的所述視頻原始檔案對應的記錄添加到內容管理系統(CMS)的資料庫中包括的第一表。
- 如請求項4之用於流式傳輸服務的視頻加工方法,其中,所述第一雲函數包括: 用於執行所述視頻接入模組並更新所述記錄的狀態字段的指令(instruction)。
- 如請求項4之用於流式傳輸服務的視頻加工方法,其中,所述第二雲函數包括: 用於基於從所述第二佇列出隊的作業項目指示的視頻接入作業是否成功更新所述記錄的狀態字段的指令。
- 如請求項1之用於流式傳輸服務的視頻加工方法,其中,還包括如下步驟: 隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第二流水線。
- 如請求項7之用於流式傳輸服務的視頻加工方法,其中,執行所述第二流水線的步驟包括如下步驟: 將創建的所述作業項目插入到所述第二流水線的第三佇列;及 使創建的所述作業項目從所述第三佇列出隊,並回應於從所述第三佇列的出隊而調用第三雲函數,所述第三雲函數是調用消息創建API以在協作工具上發表通知所述作業項目的創建的消息的無伺服器計算應用。
- 如請求項1之用於流式傳輸服務的視頻加工方法,其中, 還包括如下步驟: 隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第三流水線, 執行所述第三流水線的步驟包括如下步驟: 將創建的所述作業項目插入到所述第三流水線的第四佇列;及 使創建的所述作業項目從所述第四佇列出隊,並回應於從所述第四佇列的出隊而調用第四雲函數,所述第四雲函數是包括用於執行與根據從所述第四佇列出隊的作業項目的頻接入作業並行執行的所述視頻原始檔案相關追加操作的指令的無伺服器計算應用。
- 一種用於流式傳輸服務的視頻加工系統,其中, 包括: 通信介面; 記憶體,用於加載(load)電腦程式;及 處理器,用於執行所述電腦程式, 所述電腦程式包括: 將用於流式傳輸視頻原始檔案的作業項目的創建發佈(publish)到主隊列(queue)的主題的多個指令(instructions);及 隨著所述主隊列的主題的訂閱(subscribe),檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第一流水線的多個指令, 執行所述第一流水線的多個指令包括: 將創建的所述作業項目插入到所述第一流水線的第一佇列的多個指令; 使所述作業項目從所述第一佇列出隊(dequeue),並回應於從所述第一佇列的出隊而調用第一雲函數的多個指令,所述第一雲函數是通過執行視頻接入模組以執行從所述第一佇列出隊的作業項目的視頻接入作業的無伺服器計算應用; 通過用於執行所述視頻接入模組的雲應用監控模組檢測所述視頻接入作業是否執行完成的多個指令; 回應於檢測到所述視頻接入作業執行完成,將完成的所述視頻接入作業項目插入到所述第一流水線的第二佇列的多個指令;及 使完成的所述視頻接入作業項目從所述第二佇列出隊,並回應於從所述第二佇列的出隊而調用第二雲函數的多個指令,所述第二雲函數是執行從所述第二佇列出隊的作業項目指示的視頻接入作業的完成處理的無伺服器計算應用。
- 如請求項10之用於流式傳輸服務的視頻加工系統,其中, 還包括:隨著所述主隊列的主題的訂閱,檢測所述作業項目的創建,並回應於所述作業項目的創建來執行第三流水線的多個指令, 執行所述第三流水線的多個指令包括: 將創建的所述作業項目插入到所述第三流水線的第四佇列的多個指令;及 使創建的所述作業項目從所述第四佇列出隊,並回應於從所述第四佇列的出隊而調用第四雲函數的指令,所述第四雲函數是包括用於執行與根據從所述第四佇列出隊的作業項目的視頻接入作業並行執行的所述視頻原始檔案相關追加操作的指令的無伺服器計算應用。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2023-0078611 | 2023-06-20 | ||
| KR1020230078611A KR102632507B1 (ko) | 2023-06-20 | 2023-06-20 | 스트리밍 서비스를 위한 비디오 가공 방법 및 그 시스템 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202502043A TW202502043A (zh) | 2025-01-01 |
| TWI868775B true TWI868775B (zh) | 2025-01-01 |
Family
ID=89717251
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112125008A TWI868775B (zh) | 2023-06-20 | 2023-07-05 | 用於流式傳輸服務的視頻加工方法及其系統 |
Country Status (3)
| Country | Link |
|---|---|
| KR (3) | KR102632507B1 (zh) |
| TW (1) | TWI868775B (zh) |
| WO (1) | WO2024262677A1 (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201901609A (zh) * | 2017-05-15 | 2019-01-01 | 美商谷歌有限責任公司 | 具有高傳輸量內部通信協定之影像處理器 |
| US20190373031A1 (en) * | 2018-05-31 | 2019-12-05 | Salesforce.Com, Inc. | Control message from streaming source to facilitate scaling |
| TW202127838A (zh) * | 2019-12-10 | 2021-07-16 | 美商瞻博網路公司 | 網路裝置中用於封包轉發之經組合輸入及輸出佇列 |
| US20210357757A1 (en) * | 2020-05-15 | 2021-11-18 | David T. Nguyen | Customizing an artificial intelligence model to process a data set |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101141020B1 (ko) | 2009-08-04 | 2012-05-02 | 에스케이플래닛 주식회사 | 고속영상 인제스팅 오류 검출 방법 및 시스템 |
| TWI508538B (zh) * | 2012-06-01 | 2015-11-11 | Wistron Corp | 影音串流之播放方法與系統 |
| KR20150091669A (ko) * | 2014-02-03 | 2015-08-12 | 한국전자통신연구원 | 클라우드 기반 비디오 콘텐츠 제작 장치 및 방법 |
| KR102344368B1 (ko) * | 2015-05-11 | 2021-12-29 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 시스템, 공통 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
| US11252429B2 (en) * | 2018-04-27 | 2022-02-15 | Ati Technologies Ulc | Low-latency consumption of an encoded video bitstream |
| KR20230053243A (ko) * | 2021-10-14 | 2023-04-21 | 에스케이텔레콤 주식회사 | 분산형 병렬 인코딩 방법 및 장치 |
-
2023
- 2023-06-20 KR KR1020230078611A patent/KR102632507B1/ko active Active
- 2023-06-23 WO PCT/KR2023/008761 patent/WO2024262677A1/ko active Pending
- 2023-07-05 TW TW112125008A patent/TWI868775B/zh active
-
2024
- 2024-01-29 KR KR1020240013312A patent/KR102826786B1/ko active Active
-
2025
- 2025-06-25 KR KR1020250083958A patent/KR20250101989A/ko active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201901609A (zh) * | 2017-05-15 | 2019-01-01 | 美商谷歌有限責任公司 | 具有高傳輸量內部通信協定之影像處理器 |
| US20190373031A1 (en) * | 2018-05-31 | 2019-12-05 | Salesforce.Com, Inc. | Control message from streaming source to facilitate scaling |
| TW202127838A (zh) * | 2019-12-10 | 2021-07-16 | 美商瞻博網路公司 | 網路裝置中用於封包轉發之經組合輸入及輸出佇列 |
| US20210357757A1 (en) * | 2020-05-15 | 2021-11-18 | David T. Nguyen | Customizing an artificial intelligence model to process a data set |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20250101989A (ko) | 2025-07-04 |
| KR102826786B1 (ko) | 2025-06-27 |
| KR102632507B1 (ko) | 2024-01-31 |
| WO2024262677A1 (ko) | 2024-12-26 |
| KR20240177694A (ko) | 2024-12-27 |
| TW202502043A (zh) | 2025-01-01 |
| TW202516936A (zh) | 2025-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105763602B (zh) | 一种数据请求处理的方法、服务器及系统 | |
| US10382380B1 (en) | Workload management service for first-in first-out queues for network-accessible queuing and messaging services | |
| CN104331255B (zh) | 一种基于嵌入式文件系统的流式数据读取方法 | |
| US9495197B2 (en) | Reliable and scalable image transfer for data centers with low connectivity using redundancy detection | |
| EP2353079B1 (en) | File input/output scheduler using immediate data chunking | |
| US12222859B2 (en) | Write data cache method and system, device, and storage medium | |
| CN110413390A (zh) | 线程任务处理方法、装置、服务器及存储介质 | |
| CN113885945A (zh) | 一种计算加速方法、设备以及介质 | |
| WO2022078347A1 (zh) | 任务调度方法、装置、电子设备及存储介质 | |
| CN112068925A (zh) | 一种基于WebUploader组件的文件上传方法、装置、电子设备和可读存储介质 | |
| WO2024152666A1 (zh) | 报文模板的动态配置方法、装置、计算机设备及存储介质 | |
| CN114490026A (zh) | 一种消息消费的优化方法与终端 | |
| TWI868775B (zh) | 用於流式傳輸服務的視頻加工方法及其系統 | |
| CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
| CN113407114B (zh) | 一种基于热数据和删除重复操作的在线扩容io调度方法 | |
| TWI908507B (zh) | 用於流式傳輸服務的視頻加工方法及其系統 | |
| US12405861B2 (en) | Adaptive scaling of topics in a stateful event-driven platform | |
| US7636821B2 (en) | Asynchronous hybrid mirroring system | |
| CN118170731A (zh) | 基于服务器的文件管理方法、装置、服务器及程序产品 | |
| US10628914B1 (en) | Distributed image processing and manipulation | |
| US20220345538A1 (en) | System and Method for Boosting Up Performance of NVMe-TCP Transport | |
| US20200089432A1 (en) | Method of and system for scheduling transmission of i/o operations | |
| CN116303513B (zh) | 一种分布式平台的数据加载方法、装置及介质 | |
| US11561927B1 (en) | Migrating data objects from a distributed data store to a different data store using portable storage devices | |
| US7469305B2 (en) | Handling multiple data transfer requests within a computer system |