0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談 Serverless 音視頻處理技術(shù)

西西 ? 來源:Dockone.io ? 作者:西流 ? 2020-06-13 12:24 ? 次閱讀

前言

當您第一次接觸 Serverless 的時候,有一個不那么明顯的新使用方式:與傳統(tǒng)的基于服務器的方法相比,Serverless 服務平臺可以使您的應用快速水平擴展,并行處理的工作更加有效。這主要是因為 Serverless 可以不必為閑置的資源付費,不用擔心預留的資源不夠。而在傳統(tǒng)的使用范式中,用戶必須預留成百上千的服務器來做一些高度并行化但執(zhí)行時長較短的任務,而且必須為每一臺服務器買單,即使有的服務器已經(jīng)不再工作了。

以阿里云 Serverless 產(chǎn)品——函數(shù)計算為例,便可以完美解決您上述所有顧慮:

如果您的任務本身計算量不是很大,但是有大量的并發(fā)任務請求需要并行處理, 比如多媒體文件處理、文檔轉(zhuǎn)換等;

一個任務本身計算量很大,要求單個任務很快處理完,并且還能支持并行處理多個任務。

在這種場景下,用戶唯一關(guān)注的就是:您的任務是可以分治拆解并且子任務是可以并行處理的,一個需要一個小時才能處理完的長任務,可以分解成 360 個獨立的 10 秒長的子任務并行處理,這樣,以前您要花一個小時才能處理完的任務,現(xiàn)在只需要 10 秒就可以搞定。由于采用的是按量計費的模型,完成的計算量和成本是大致相當?shù)模鴤鹘y(tǒng)模型則因為預留資源肯定會存在浪費,浪費的費用也是需要您去承擔的。

接下來,將詳細闡述 Serverless 在大規(guī)模數(shù)據(jù)處理上的實踐。

極致彈性擴縮容應對計算波動

在介紹相關(guān)的大規(guī)模數(shù)據(jù)處理示例之前, 這里先簡單介紹一下函數(shù)計算。

1. 函數(shù)計算簡介

開發(fā)者使用編程語言編寫應用和服務,函數(shù)計算支持的開發(fā)語言請參見開發(fā)語言列表;

開發(fā)者上傳應用到函數(shù)計算;

觸發(fā)函數(shù)執(zhí)行:觸發(fā)方式包括 OSS、API 網(wǎng)關(guān)、日志服務、表格存儲以及函數(shù)計算 API、SDK 等;

動態(tài)擴容以響應請求:函數(shù)計算可以根據(jù)用戶請求量自動擴容,該過程對您和您的用戶均透明無感知;

根據(jù)函數(shù)的實際執(zhí)行時間按量計費:函數(shù)執(zhí)行結(jié)束后,可以通過賬單來查看執(zhí)行費用,收費粒度精確到 100 毫秒。

至此,您大約可以簡單理解到函數(shù)計算是怎么運作的,接下來以大量視頻并行轉(zhuǎn)碼的案例來闡述:假設一家在家教育或娛樂相關(guān)的企業(yè),老師授課視頻或者新的片源一般是集中式產(chǎn)生,而您希望這些視頻被快速轉(zhuǎn)碼處理完以便能讓客戶快速看到視頻回放。比如在當下疫情中,在線教育產(chǎn)生的課程激增,而出課高峰一般是 10 點、12 點、16 點、18 點等明顯的峰值段,特定的時間內(nèi)(比如半個小時)處理完所有新上傳的視頻是一個通用而且普遍的需求。

2. 彈性高可用的音視頻處理系統(tǒng)

OSS 觸發(fā)器

如上圖所示,用戶上傳一個視頻到 OSS,OSS 觸發(fā)器自動觸發(fā)函數(shù)執(zhí)行,函數(shù)計算自動擴容,執(zhí)行環(huán)境內(nèi)的函數(shù)邏輯調(diào)用 FFmpeg 進行視頻轉(zhuǎn)碼,并且將轉(zhuǎn)碼后的視頻保存回 OSS。

消息觸發(fā)器

如上圖所示,應用只需要發(fā)一個消息,自動觸發(fā)函數(shù)執(zhí)行音視頻處理的任務即可,函數(shù)計算自動擴容,執(zhí)行環(huán)境內(nèi)的函數(shù)邏輯調(diào)用 FFmpeg 進行視頻轉(zhuǎn)碼, 并且將轉(zhuǎn)碼后的視頻保存回 OSS。

直接手動調(diào)用 SDK 執(zhí)行音視頻處理任務

python 為例,大致如下:

python#-*-coding:utf-8-*-

importfc2

importjson

client=fc2.Client(endpoint="http://123456.cn-hangzhou.fc.aliyuncs.com",accessKeyID="xxxxxxxx",accessKeySecret="yyyyyy")

#可選擇同步/異步調(diào)用

resp=client.invoke_function("FcOssFFmpeg","transcode",payload=json.dumps(

{

"bucket_name":"test-bucket",

"object_key":"video/inputs/a.flv",

"output_dir":"video/output/a_out.mp4"

})).data

print(resp)

從上面我們也可以看出,觸發(fā)函數(shù)執(zhí)行的方式也很多,同時簡單配置下 SLS 日志,就可以很快實現(xiàn)一個彈性高可用、按量付費的音視頻處理系統(tǒng),同時能提供免運維、具體業(yè)務數(shù)據(jù)可視化、強大自定義監(jiān)控報警等超強功能的 dashboard。

目前已經(jīng)落地的音視頻案例有 UC、語雀、躺平設計之家、虎撲以及幾家在線教育的頭部客戶等,其中有些客戶高峰期間,彈性使用到了萬核以上 CPU 計算資源,并行處理的視頻達到 1700+,同時提供了極高的性價比。

任務分治,并行加速

這種將任務分而治之的思想應用在函數(shù)計算上是一件有趣的事情,在這里舉一個例子,比如您有一個超大的 20G 的 1080P 高清視頻需要轉(zhuǎn)碼,即使您使用一臺高配機器,需要的時間可能還是要按小時計,如果中途出問題中斷轉(zhuǎn)碼,您只能重新開始再重復一遍轉(zhuǎn)碼的過程,如果您使用分治的思想+函數(shù)計算,轉(zhuǎn)碼的過程衍變?yōu)?分片-> 并行轉(zhuǎn)碼分片-> 合并分片,這樣就可以解決您上述的兩個痛點:

分片和合成分片是內(nèi)存級別的拷貝,需要的計算量極小,真正消耗計算量的轉(zhuǎn)碼,拆分成了很多子任務并行處理,在這個模型中,分片轉(zhuǎn)碼的最大時間基本等同于整個大視頻的轉(zhuǎn)碼時間;

即使中途某個分片轉(zhuǎn)碼出現(xiàn)異常,只需要重試這個分片的轉(zhuǎn)碼即可,不需要整個大任務推倒重來。

通過將大任務合理的分解,配合使用函數(shù)計算,編寫一點 code,就可以快速完成一個彈性高可用、并行加速、按量付費的大型數(shù)據(jù)處理系統(tǒng)。

在介紹這個方案之前,我們先簡單介紹一下 Serverless 工作流,Serverless 工作流可以很好地將函數(shù)和其他云服務和自建服務有組織地編排起來。

1. Serverless 工作流簡介

Serverless 工作流(Serverless Workflow)是一個用來協(xié)調(diào)多個分布式任務執(zhí)行的全托管云服務。在 Serverless 工作流中,您可以用順序、分支、并行等方式來編排分布式任務,Serverless 工作流會按照設定好的步驟可靠地協(xié)調(diào)任務執(zhí)行,跟蹤每個任務的狀態(tài)轉(zhuǎn)換,并在必要時執(zhí)行用戶定義的重試邏輯,以確保工作流順利完成。Serverless 工作流簡化了開發(fā)和運行業(yè)務流程所需要的任務協(xié)調(diào)、狀態(tài)管理以及錯誤處理等繁瑣工作,讓您聚焦業(yè)務邏輯開發(fā)。

接下來以一個大視頻快速轉(zhuǎn)碼的案例來闡述 Serverless 工作編排函數(shù),實現(xiàn)大計算任務的分解,并行處理子任務,最終達到快速完成單個大任務的目的。

2. 大視頻的快速多目標格式轉(zhuǎn)碼

如上圖所示,假設用戶上傳一個 mov 格式的視頻到 OSS,OSS 觸發(fā)器自動觸發(fā)函數(shù)執(zhí)行,函數(shù)調(diào)用 FnF 執(zhí)行,F(xiàn)nF 同時進行 1 種或者多種格式的轉(zhuǎn)碼(由 template.yml 中的 DST_FORMATS 參數(shù)控制),假設配置的是同時進行 mp4 和 flv 格式的轉(zhuǎn)碼。

一個視頻文件可以同時被轉(zhuǎn)碼成各種格式以及其他各種自定義處理,比如增加水印處理或者在 after-process 更新信息到數(shù)據(jù)庫等;

當有多個文件同時上傳到 OSS,函數(shù)計算會自動伸縮,并行處理多個文件,同時每次文件轉(zhuǎn)碼成多種格式也是并行;

結(jié)合 NAS + 視頻切片,可以解決超大視頻的轉(zhuǎn)碼,對于每一個視頻,先進行切片處理,然后并行轉(zhuǎn)碼切片,最后合成,通過設置合理的切片時間,可以大大加快較大視頻的轉(zhuǎn)碼速度;

fnf 可以跟蹤每一步執(zhí)行情況,并且可以自定義每一個步驟的重試,提高任務系統(tǒng)的魯棒性,如:retry-example

在任務分治,并行加速具體的案例中,上面分享的是 CPU 密集型任務分解,但也可以進行 IO 密集型任務分解,比如這個需求:上海的 region 的 OSS bucket 中的一個 20G 大文件,秒級轉(zhuǎn)存回杭州的 OSS Bucket 中。這里也可以采用分治的思路,Master 函數(shù)在接到轉(zhuǎn)存任務之后,將超大文件進行分片的 range 分配給每個 Worker 子函數(shù),Worker 子函數(shù)并行轉(zhuǎn)存屬于自己那部分的分片,Master 函數(shù)待所有子 Worker 運行完畢之后,提交合并分片請求,完成整個轉(zhuǎn)存任務。

詳情可以參考:利用函數(shù)計算多實例并發(fā)實現(xiàn)秒級轉(zhuǎn)存超大文件

總結(jié)

本文探討了 Serverless 服務平臺可以使您的應用快速水平擴展,并行處理的工作更加有效,并給出了具體的實踐案例,無論在 CPU 密集型還是 IO 密集型場景,函數(shù)計算 + Serverless 都能完美解決您以下顧慮:

  • 不必為閑置的資源付費
  • 不用擔心計算資源預留不夠
  • 大計算量的任務需要快速處理完畢
  • 更好的任務流程跟蹤
  • 完善的監(jiān)控報警、免運維、業(yè)務數(shù)據(jù)可視化等

本文中對于 Serverless 音視頻處理只是一個示例,它展示的是函數(shù)計算配合 Serverless 工作流在離線計算場景中的能力和獨一無二的優(yōu)勢。我們可以用發(fā)散的方式去拓展 Serverless 在大規(guī)模數(shù)據(jù)處理實踐的邊界,比如AI、基因計算、科學仿真等。希望本篇文章能吸引您,開啟您的 Serverless 奇妙之旅。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1995

    瀏覽量

    61016
  • 阿里云
    +關(guān)注

    關(guān)注

    3

    文章

    939

    瀏覽量

    42940
  • serverless
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    4490
收藏 人收藏

    評論

    相關(guān)推薦

    音視頻SoC與AI技術(shù)融合,帶來更智能的音視頻處理解決方案

    ,如WiFi路由器和物聯(lián)網(wǎng)設備。在安防、智能音頻等領(lǐng)域,對SoC芯片的算力要求相比智能手機、服務器等略低。 ? 人工智能技術(shù)音視頻SoC 的融合??????????????????????????????????????? ? 隨著人工智能
    的頭像 發(fā)表于 04-26 01:20 ?4148次閱讀

    音視頻開發(fā):實時傳輸與處理音視頻流的技術(shù)與應用

    音視頻
    YS YYDS
    發(fā)布于 :2023年06月27日 18:20:58

    最新的高效音視頻編碼及視頻圖像處理

    本帖最后由 mr.pengyongche 于 2013-4-30 02:58 編輯 最新的高效音視頻編碼及視頻圖像處理技術(shù)視頻領(lǐng)域
    發(fā)表于 10-11 16:39

    2款音視頻處理芯片

    Package: 20mm x 20mm 144-pin TQFP with ePad集成電路 (IC) > 接口 - 音視頻處理芯片50元/片2、SII9334CTU (SILICON
    發(fā)表于 11-26 15:28

    【OK210申請】智能音視頻處理平臺

    申請理由:首先是以前買過幾套飛凌6410的板子,感覺質(zhì)量和售后都挺好的。再者我們團隊準備搭建一個智能音視頻研究的平臺, 向飛凌售后質(zhì)詢了一下,說是210的板子更適合做視頻處理。我們沒有接觸過210
    發(fā)表于 07-21 09:19

    什么是音視頻同步?音視頻同步的影響因素有哪些?

    什么是音視頻同步?有什么要求?音視頻同步的影響因素有哪些?音視頻同步的常見技術(shù)有哪些?
    發(fā)表于 06-15 08:48

    音視頻

    音視頻技術(shù)都喜歡深究內(nèi)部最核心的原理和機制,尤其是ffmpeg這個編解碼庫,可以說是音視頻領(lǐng)域事實上的標準。語音智能算法,語言語義分析和理解,流媒體服務器等高端技術(shù)也都基于它而構(gòu)建。
    發(fā)表于 11-23 08:51

    數(shù)字音視頻編解碼技術(shù)(AVS標準)

    數(shù)字音視頻編解碼技術(shù)標準AVS黃鐵軍數(shù)字音視頻編解碼標準是數(shù)字音視頻產(chǎn)業(yè)的共性基礎標準,具有巨大的產(chǎn)業(yè)需求??缛胄率兰o以來,隨著編解碼技術(shù)
    發(fā)表于 08-25 12:43 ?63次下載

    Blackfin處理器與音視頻外設之間的連接

    Blackfin®處理器與音視頻外設之間的連接:課程單元:Blackfin®處理器與音視頻外設之間的連接主講人:David Katz第1章:簡介第2章:連接至音頻轉(zhuǎn)換器
    發(fā)表于 09-02 12:36 ?23次下載

    IPTV音視頻編解碼技術(shù)

    IPTV音視頻編解碼技術(shù) 三足鼎立   當前在IPTV業(yè)務中,音視頻編解碼技術(shù)的選擇呈現(xiàn)了三足鼎立的狀況,即MPEG4ASP、H.264和AVS。其中MPEG4和H.264都是國
    發(fā)表于 11-27 10:04 ?1031次閱讀

    音視頻矩陣的設計技術(shù)要點

    音視頻矩陣的設計技術(shù)要點 1. 音視頻矩陣的作用在現(xiàn)代多媒體會議室,為了滿足不同演示場合的需求,通常會具備多種不
    發(fā)表于 02-09 11:49 ?617次閱讀

    音視頻/信號分配器,音視頻/信號分配器是什么意思

    音視頻/信號分配器,音視頻/信號分配器是什么意思     音視分配器專為音視頻信號在傳播中進行分配而設計,適用于KTV、MTV
    發(fā)表于 03-26 09:51 ?2690次閱讀

    你要了解的一些關(guān)于音視頻技術(shù)

    音視頻采集音視頻處理音視頻編碼和封裝推流流媒體服務器處理拉流音視頻解碼
    發(fā)表于 05-25 11:33 ?1775次閱讀

    實時音視頻邁向普惠化 助音視頻社交發(fā)掘更多可能

    從去年到今年,以音遇、吱呀語音、Soul為代表的聲音社交應用屢屢登上APP社交排行榜前列。音視頻社交崛起的背后,是作為底層支撐技術(shù)的實時音視頻走向成熟。
    發(fā)表于 06-05 09:37 ?763次閱讀

    音視頻集成是什么 音視頻視頻有什么區(qū)別

    音視頻集成是將音頻和視頻設備、系統(tǒng)和技術(shù)進行整合,以實現(xiàn)全面的音視頻功能和體驗的過程。
    發(fā)表于 06-19 17:14 ?2554次閱讀