日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

構建基于CloudFlow的彈性高可用音視頻處理系統(tǒng)

在音視頻系統(tǒng)中,音視頻轉碼是比較消耗計算力的一個子系統(tǒng),您可以通過函數(shù)計算云工作流構建彈性高可用的Serverless音視頻處理系統(tǒng)。本文會從工程效率、運維、性能和成本方面介紹Serverless音視頻處理系統(tǒng)和傳統(tǒng)方案的差異。同時介紹如何搭建并體驗Serverless音視頻處理系統(tǒng)。

背景信息

針對音視頻轉碼,雖然您可以使用云上專門的轉碼服務,但在以下場景,您仍然會選擇自己搭建轉碼服務。

  • 彈性伸縮訴求

    • 需要更彈性的視頻處理服務。

      例如,您已經(jīng)在虛擬機或容器平臺上基于FFmpeg部署了一套視頻處理服務,但想在此基礎上實現(xiàn)更彈性、更高可用性的服務。

  • 工程效率訴求

    • 需要并行處理多個視頻文件。

    • 需要批量快速處理多個超大的視頻。

      例如,每周五定時產(chǎn)生幾百個4 GB以上1080P的大視頻,需要幾小時內(nèi)處理完。

  • 自定義處理訴求

    • 需要處理更高級的自定義處理需求。

      例如,視頻轉碼完成后,需要記錄轉碼詳情到數(shù)據(jù)庫,或自動將熱度很高的視頻預熱到CDN上以緩解源站壓力。

    • 需要轉換音頻格式、自定義采樣率或音頻降噪等。

    • 需要直接讀取源文件進行處理。

      例如,當您的視頻源文件存放在NAS或ECS云盤上時,您需要自建服務直接讀取源文件進行處理,而不需要將其再次遷移至OSS。

    • 需要將視頻轉換為其他格式,然后在此基礎上增加其他新的需求。

      例如,將視頻進行轉碼、加水印和生成視頻首頁的GIF,然后在此基礎上增加新的需求,例如調(diào)整轉碼參數(shù)、發(fā)布新功能時對在線服務無影響。

  • 成本訴求

    • 需要簡單的轉碼或較輕量的需求時。

      例如,獲取OSS上視頻前幾幀的GIF、獲取音視頻的時長,此時您自己搭建的成本會更低。

針對自己搭建轉碼服務的方案有傳統(tǒng)自建方案和Serverless方案,本文會介紹這兩類方案的差異及Serverless方案具體的操作流程。

解決方案

傳統(tǒng)自建方案

隨著計算機技術和網(wǎng)絡的發(fā)展,云計算廠商的產(chǎn)品在不斷成熟完善。如果想要搭建音視頻處理系統(tǒng),可以直接上云購買ECS服務器部署服務,通過OSS、CDN等技術完成音視頻的存儲和音視頻的播放加速。

image

Serverless方案

視頻處理工作流系統(tǒng)

如果您需要加快大視頻的轉碼速度或者完成各種復雜的組合操作,可以通過云工作流編排函數(shù)實現(xiàn)功能強大的視頻處理系統(tǒng)。方案架構圖如下。

image

當用戶上傳一個MP4格式的視頻到OSS,OSS自動觸發(fā)云工作流流程執(zhí)行,進行一種或多種格式的轉碼。通過該方案可以實現(xiàn)以下需求:

  • 一個視頻文件可以同時被轉碼成各種格式和其他自定義處理,例如增加水印或在處理后更新信息到數(shù)據(jù)庫等。

  • 當有多個文件同時上傳到OSS時,函數(shù)計算會自動伸縮,并行處理多個文件,同時將文件并行轉碼成多種格式。

  • 結合NAS和視頻切片,可以解決超大視頻的轉碼。對于每個視頻,都需先進行切片處理,然后并行轉碼切片,最后合成。通過設置合理的切片時間,可以提高較大視頻的轉碼速度。

    說明

    視頻切片是指將視頻流按指定的時間間隔切分成一系列分片文件,并生成一個索引文件,記錄分片文件的信息。

Serverless方案優(yōu)勢

提高工程效率

對比項

Serverless方案

傳統(tǒng)自建方案

基礎設施

需要您采購和管理。

開發(fā)效率

只需專注業(yè)務邏輯的開發(fā),配合Serverless Devs編排和部署資源。

除了必要的業(yè)務邏輯開發(fā),還需要您自己建立相同的線上運行環(huán)境,包括相關軟件的安裝、服務配置、安全更新等一系列問題。

并行和分布式視頻處理

通過云工作流資源編排即可實現(xiàn)多個視頻的并行處理和單個大視頻的分布式處理,穩(wěn)定性和監(jiān)控交由云平臺。

需要很強的開發(fā)能力和完善的監(jiān)控系統(tǒng)來保證穩(wěn)定性。

學習上手成本

會編寫對應語言的函數(shù)代碼和熟悉FFmpeg使用即可。

除了編程語言開發(fā)能力和熟悉FFmpeg外,可能還需要使用K8s和云服務器ECS,需要了解更多的產(chǎn)品、名詞和參數(shù)意義。

項目上線周期

預計3人天(開發(fā)調(diào)試2人天和壓測觀察1人天)。

在具體業(yè)務邏輯外耗費大量的時間和人力成本,保守估計大約30人天,包括硬件采購、軟件和環(huán)境配置、系統(tǒng)開發(fā)、測試、監(jiān)控報警和灰度發(fā)布系統(tǒng)等。

彈性伸縮免運維

內(nèi)容項

Serverless方案

傳統(tǒng)自建方案

彈性高可用

函數(shù)計算系統(tǒng)具有毫秒級彈性伸縮,可以快速實現(xiàn)底層擴容以應對峰值壓力,免運維,轉碼性能優(yōu)異。

需要自建負載均衡SLB,彈性伸縮、擴容縮容速度較函數(shù)計算慢。

監(jiān)控報警查詢

提供更細粒度的云工作流流程執(zhí)行和函數(shù)執(zhí)行情況。同時,可以查詢每次函數(shù)執(zhí)行的Latency和日志等,更加完善的報警監(jiān)控機制。

彈性伸縮或容器級別的Metrics。

視頻處理工作流操作步驟

前提條件

操作步驟

該方案需要通過云工作流編排函數(shù)實現(xiàn)視頻處理系統(tǒng),涉及到多個函數(shù)代碼和工作流的配置和編寫。本文使用Serverless Devs部署該系統(tǒng)。

  1. 訪問multimedia-process-flow模板

  2. 單擊一鍵部署跳轉到函數(shù)計算的應用中心,開始快速部署應用。image

  3. 創(chuàng)建應用頁面,配置以下參數(shù),然后單擊創(chuàng)建并部署默認環(huán)境

    重點參數(shù)配置如下,其余參數(shù)保持默認值即可。

    參數(shù)名稱

    參數(shù)說明

    基礎信息

    部署類型

    選擇直接部署

    角色名稱

    • 如果您使用的是阿里云賬號,第一次在應用中心創(chuàng)建應用,則需要單擊前往授權,跳轉至角色快捷創(chuàng)建頁面,創(chuàng)建AliyunFCServerlessDevsRole角色,然后單擊同意授權

      image.png

    • 如果您使用的是RAM用戶,請根據(jù)頁面提示,將復制的授權鏈接給到阿里云賬號進行授權。授權完成后,單擊已完成授權

      image.png

      說明

      如果頁面提示無法獲取角色,請聯(lián)系對應的阿里云賬號給當前RAM用戶賦予AliRAMReadOnlyAccessAliyunFCFullAccess權限。具體操作,請參見通過阿里云賬號給RAM用戶授權

    高級配置

    地域

    選擇應用部署的地域。

    工作流RAM角色的ARN

    工作流執(zhí)行使用的服務角色。請?zhí)崆皠?chuàng)建角色,并為其授予AliyunFCInvocationAccess權限策略。

    函數(shù)計算Service角色

    函數(shù)計算訪問其他云服務時使用的服務角色,如果沒有特殊要求,建議使用函數(shù)計算提供的默認服務角色AliyunFCDefaultRole。

    對象存儲存儲桶名

    填寫與工作流和函數(shù)相同地域下的Bucket名稱。

    前綴

    存放原始視頻的目錄前綴,本文示例為src

    轉碼后的視頻保存目錄

    轉碼后視頻存放目錄,本文實例為dst

    OSS觸發(fā)器RAM角色ARN

    推薦使用角色AliyunOSSEventNotificationRole,第一次使用的用戶,需單擊創(chuàng)建新的服務角色前往授權并創(chuàng)建該角色。

    等待1~2分鐘后,應用部署成功,系統(tǒng)將自動創(chuàng)建5個函數(shù)以及對應的1個工作流multimedia-process-flow-3oih,您可以分別登錄函數(shù)計算控制臺云工作流控制臺查看創(chuàng)建結果。5個函數(shù)的作用分別如下:

    • oss-trigger-workflow:配置對應的觸發(fā)器,感知特定目錄的新視頻上傳內(nèi)容,觸發(fā)工作流執(zhí)行。

    • split:將特定視頻按照分段長度,在工作目錄中進行切分。

    • transcode:依照傳入的視頻格式,分別進行分段的視頻轉碼。

    • merge:將分段轉碼后的視頻拼接。

    • after-process:工作目錄清理。

  4. 驗證結果。

    1. 登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。

    1. 在工作流列表,單擊目標工作流multimedia-process-flow-3oih,在工作流詳情頁面,單擊啟動執(zhí)行執(zhí)行工作流。在執(zhí)行工作流面板,填寫執(zhí)行名稱執(zhí)行輸入,輸入示例如下。

      {
        "oss_bucket_name": "buckettestfnf",
        "video_key": "source/test.mov",
        "output_prefix": "outputs",
        "segment_time_seconds": 15,
        "dst_formats": [
          "mp4",
          "flv"
        ]
      }

      當執(zhí)行狀態(tài)為已成功時,表示執(zhí)行完成。

    2. 登錄對象存儲OSS控制臺,進入目標Bucket中,轉碼后視頻存放目錄/outputs,查看轉碼后的文件。

      當看到轉碼后的文件時,說明視頻處理系統(tǒng)的服務已正常運行。可以看到目標視頻格式已轉碼合并完成。

      image

常見問題

  • 有更高級的自定義處理需求,例如視頻轉碼完成后,需要記錄轉碼詳情到數(shù)據(jù)庫,或在轉碼完成后,自動將熱度很高的視頻預熱到CDN上,從而緩解源站壓力時,如何操作?

    部署方案,請參見視頻處理工作流操作步驟。處理中可以做一些自定義的操作,或基于此流程再做一些額外處理等,例如再增加后續(xù)流程,或最開始增加預處理等。

  • 自定義視頻處理流程中可能會有多種操作組合,例如轉碼、加水印和生成視頻首頁GIF。如果需要后續(xù)為視頻處理系統(tǒng)增加新需求,例如調(diào)整轉碼參數(shù),并且希望新功能發(fā)布上線對在線服務無影響時,如何操作?

    部署方案,請參見視頻處理工作流操作步驟云工作流只負責編排調(diào)用函數(shù),因此只需要更新相應的處理函數(shù)即可,同時函數(shù)有版本和別名功能,更好地控制灰度上線。更多信息,請參見版本

  • 只有簡單的轉碼需求,或是一些極其輕量的需求,例如需獲取OSS上視頻前幾幀的GIF、獲取音視頻的時長,自己搭建成本更低時,如何操作?

    函數(shù)計算可以解決自定義問題,只需要在代碼中快速執(zhí)行幾個FFmpeg的命令即可完成需求。典型示例工程,請參見fc-oss-ffmpeg

  • 視頻源文件存放在NAS或ECS云盤上,希望自建服務可以直接讀取源文件處理,而不需要將他們再遷移到OSS時,如何操作?

    函數(shù)計算可以掛載NAS,直接處理NAS中的文件。更多信息,請參見配置NAS文件系統(tǒng)