国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) web前端 js教程 AWS Sideo 縮圖產(chǎn)生器 - 無(wú)伺服器 Node.js 解決方案指南

AWS Sideo 縮圖產(chǎn)生器 - 無(wú)伺服器 Node.js 解決方案指南

Dec 27, 2024 am 10:45 AM

注意:不要分成兩部分,這裡沒有足夠的文字來(lái)證明拆分的合理性,並且本文重點(diǎn)介紹解決方案而不是討論選擇。

需要高效且經(jīng)濟(jì)高效地大規(guī)模生成視訊縮圖嗎?讓我們使用 AWS Lambda 建立一個(gè)真正的無(wú)伺服器解決方案,與使用專用媒體處理服務(wù)相比,該解決方案的運(yùn)作成本僅為幾美分。

我們要建造什麼

此解包含一個(gè) Node.js Lambda 函數(shù),該函數(shù):

  • 處理常見影片格式
  • 依工作負(fù)載進(jìn)行擴(kuò)充
  • 實(shí)作失敗操作的重試邏輯
  • 透過基礎(chǔ)設(shè)施即程式碼部署
  • 每個(gè)影片的運(yùn)作成本僅為一美分

為什麼要定制

大規(guī)模產(chǎn)生縮圖並不容易,也不便宜。對(duì)於影片來(lái)說(shuō),成本因素尤其重要 - 對(duì)於圖像,您所要做的就是調(diào)整大小、裁剪並儲(chǔ)存相同類型的輸出。您可以將此責(zé)任轉(zhuǎn)移給第三方雲(yún)端服務(wù),以專注於提供其他功能,或者只需做一點(diǎn)工作即可在不離開 AWS VPC 的情況下執(zhí)行任務(wù)。但對(duì)於影片來(lái)說(shuō),情況有所不同。視訊檔案要大得多,我們必須支援大量不同的編碼標(biāo)準(zhǔn),最終結(jié)果不再是視訊 - 我們本質(zhì)上是提取靜態(tài)影像。

AWS Native = 超級(jí)昂貴

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

在研究選項(xiàng)時(shí),我總是求助於應(yīng)用程式所在平臺(tái)的原生解決方案。在 AWS 中,這是 MediaConvert 或 MediaLive。當(dāng)您需要專業(yè)級(jí)視訊處理時(shí),兩者都很棒,但當(dāng)您只想從影片中抓取縮圖時(shí)…好吧,它們確實(shí)可以做到,但它們設(shè)計(jì)是否可以處理此類用例?不是真的。

令人驚訝的是,AWS 並沒有專門用於產(chǎn)生縮圖的服務(wù)??捎玫慕鉀Q方案專注於其他用例,例如提供對(duì)串流媒體的支援或運(yùn)行高級(jí)視訊轉(zhuǎn)換任務(wù)。

當(dāng)您查看使用這些服務(wù)建立此類功能的要求時(shí),問題非常明顯

  • 使用 AWS Media 服務(wù)時(shí),無(wú)法建立未定義視訊輸出的處理管道 - 您需要處理整個(gè)視訊並丟棄結(jié)果,僅使用該流程的副產(chǎn)品縮圖
  • 因此,它作為縮圖生成器非常昂貴- 每分鐘處理視頻支付0.0075 美元 可能感覺不多,但加起來(lái)很快- 對(duì)於1,000 個(gè)視頻,每個(gè)15 分鐘長(zhǎng)的處理成本將超過$100

產(chǎn)生一些影片縮圖的成本應(yīng)該比早上喝咖啡的成本還要高嗎? ? 這只是因?yàn)檫@些服務(wù)雖然功能強(qiáng)大,但對(duì)於縮圖產(chǎn)生等簡(jiǎn)單任務(wù)來(lái)說(shuō)卻顯得有些過分了。

AWS Media 服務(wù)的真正成本不僅僅在於美元 - 還在您通常不需要的複雜性

每次遇到新的要求時(shí),我的思維都會(huì)調(diào)整到「尋找適合工作的完美工具」模式。我一直在宣揚(yáng)不要遵循你所知道的東西的重要性,並且總是探索盡可能多的替代方案,這樣我可能會(huì)開始聽起來(lái)像一張破唱片……但我想我喜歡唱片正在播放的曲調(diào)! ??

您也可以稱之為醫(yī)療狀況。我完全意識(shí)到我的工程強(qiáng)迫癥問題...?

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

但是我離題了...

超越 AWS

當(dāng)然,還有其他解決方案,但它們常常帶來(lái)令人頭痛的問題:

  • 外部服務(wù)通常會(huì)按 API 呼叫或處理的資料量收費(fèi)
  • 您必須將影片上傳到外部服務(wù)進(jìn)行處理,這意味著出口成本更高
  • 它們可能無(wú)法很好地?cái)U(kuò)展,讓您需要處理節(jié)流

客製化的專用解決方案

讓我們建立一些不僅更便宜,而且專注於我們實(shí)際需要的東西 - 一個(gè)可以產(chǎn)生視訊縮圖的無(wú)伺服器解決方案。 ?

系統(tǒng)使用下列 AWS 服務(wù)與工具:

  • Amazon S3 - 來(lái)源視訊和產(chǎn)生的縮圖的儲(chǔ)存
  • AWS Lambda - 無(wú)伺服器運(yùn)算環(huán)境
  • FFmpeg - 視訊處理框架
  • Docker - FFmpeg 和 Lambda 程式碼的容器打包
  • Amazon SQS - 用於處理協(xié)調(diào)的訊息佇列

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

當(dāng)影片上傳到來(lái)源 S3 儲(chǔ)存桶時(shí),它會(huì)觸發(fā)一個(gè)對(duì)處理請(qǐng)求進(jìn)行排隊(duì)的事件。 Lambda 函數(shù)使用在 Docker 容器中執(zhí)行的 FFmpeg 擷取並處理它。然後生成的縮圖儲(chǔ)存在目標(biāo) S3 儲(chǔ)存桶中??苫謴?fù)的暫時(shí)性問題(例如限製或基礎(chǔ)設(shè)施相關(guān)問題)會(huì)自動(dòng)重試,而所有其他失敗事件會(huì)自動(dòng)發(fā)送到死信佇列以進(jìn)行審核。

此服務(wù)會(huì)自動(dòng)產(chǎn)生兩種尺寸的影片縮圖。較大的版本在畫面中央包含一個(gè)半透明的視訊圖標(biāo),幫助用戶快速識(shí)別視訊內(nèi)容。

範(fàn)例項(xiàng)目

  • 從 GH 拉取

服務(wù)

  • 編排 視訊處理實(shí)用程式
  • FFmpeg
  • 兩種縮圖類型
  • 不同尺寸,附覆蓋層 容器中的 FFmpeg
  • 這就是我們?nèi)绾巫?Ffmpeg CLI 可用於 Lambda
  • Dockerfile 部署
  • 容器建置
  • 無(wú)伺服器部署
  • Docker化的Lambda定義 測(cè)試
  • int
  • e2e 無(wú)伺服器
  • 此時(shí)還有什麼嗎?

神奇的容器?

這是我們用 Lambda 打包 FFmpeg 的 Dockerfile:

讓我看看錢! ?

讓我們來(lái)詳細(xì)分析一下每月處理 1000 個(gè)影片的成本:

AWS MediaConvert

  • 每分鐘影片 0.08 美元
  • 1000 影片 × $0.08 = $80

我們的解決方案

  • Lambda:1024MB × 10s × 1000 = 0.17 美元
  • S3:儲(chǔ)存 GET/PUT = $0.05
  • 總計(jì):$0.22

成本降低了 99.7%! ?

AWS Sideo Thumbnail Generator - The Serverless Node.js Solution Guide

可能會(huì)出現(xiàn)什麼問題? ?

雖然這個(gè)解決方案非常棒,但它並非沒有問題:

  • 記憶體使用:FFmpeg 可能會(huì)佔(zhàn)用大量記憶體。如果您正在處理 4K 視頻,您可能需要增加 Lambda 記憶體。
  • 超時(shí)限制:對(duì)於很長(zhǎng)的視頻,您可能會(huì)遇到 Lambda 的超時(shí)。對(duì)於這些情況,請(qǐng)考慮使用階躍函數(shù)。
  • 冷啟動(dòng):容器很大,所以第一次呼叫可能會(huì)比較慢。

接下來(lái)是什麼? ?

這只是開始!您可以將此解決方案擴(kuò)展到:

  • 產(chǎn)生多個(gè)縮圖尺寸
  • 擷取視訊元資料
  • 建立預(yù)覽 GIF
  • 新增影片浮水印

結(jié)束了嗎?

我們建立了一個(gè)經(jīng)濟(jì)高效、可擴(kuò)展的視訊縮圖生成解決方案,而且不會(huì)花太多錢。不再需要為不需要的功能付費(fèi)!

記住:有時(shí)最好的解決方案並不是最昂貴或最複雜的 - 而是能夠完全滿足您需要的解決方案,僅此而已。

筆記

覺得這有幫助嗎?考慮關(guān)注我以獲取更多 AWS 和無(wú)伺服器內(nèi)容!如果您的縮圖看起來(lái)像現(xiàn)代藝術(shù)而不是您的影片...那麼,請(qǐng)先檢查您的影片格式,然後在下面發(fā)表評(píng)論! ?

拋開所有笑話,我很想聽聽您在 AWS 中進(jìn)行視訊處理的體驗(yàn)。您是否找到了其他優(yōu)化成本的創(chuàng)意方法?評(píng)論裡分享一下吧!

免責(zé)聲明

雖然此解決方案已經(jīng)在生產(chǎn)中經(jīng)過了實(shí)際測(cè)試,但請(qǐng)?jiān)诓渴鹬霸谀约旱沫h(huán)境中進(jìn)行徹底測(cè)試。如果有東西著火了,我有一個(gè)很棒的棉花糖食譜! ?


--- 我的筆記 - 文章的談話重點(diǎn)

為什麼 docker 與 Lambda - 不是第一選擇,有時(shí)是唯一選擇,層替代
與 AWS Media 服務(wù)相比,運(yùn)作起來(lái)超便宜
速度很快,可以對(duì)不同檔案大小進(jìn)行比較
可測(cè)試的 Ffmpeg

以上是AWS Sideo 縮圖產(chǎn)生器 - 無(wú)伺服器 Node.js 解決方案指南的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語(yǔ)言,各自適用於不同的應(yīng)用場(chǎng)景。 Java用於大型企業(yè)和移動(dòng)應(yīng)用開發(fā),而JavaScript主要用於網(wǎng)頁(yè)開發(fā)。

JavaScript評(píng)論:簡(jiǎn)短說(shuō)明 JavaScript評(píng)論:簡(jiǎn)短說(shuō)明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時(shí)間合作? 如何在JS中與日期和時(shí)間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時(shí)間處理需注意以下幾點(diǎn):1.創(chuàng)建Date對(duì)像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時(shí)間信息可用get和set方法,注意月份從0開始;3.手動(dòng)格式化日期需拼接字符串,也可使用第三方庫(kù);4.處理時(shí)區(qū)問題建議使用支持時(shí)區(qū)的庫(kù),如Luxon。掌握這些要點(diǎn)能有效避免常見錯(cuò)誤。

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

為什麼要將標(biāo)籤放在的底部? 為什麼要將標(biāo)籤放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript:探索用於高效編碼的數(shù)據(jù)類型 JavaScript:探索用於高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什麼是在DOM中冒泡和捕獲的事件? 什麼是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個(gè)階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。 1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實(shí)現(xiàn);2.事件冒泡是默認(rèn)行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動(dòng)態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯(cuò)誤處理。了解這兩個(gè)階段有助於精確控制JavaScript響應(yīng)用戶操作的時(shí)機(jī)和方式。

Java和JavaScript有什麼區(qū)別? Java和JavaScript有什麼區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語(yǔ)言。 1.Java是靜態(tài)類型、編譯型語(yǔ)言,適用於企業(yè)應(yīng)用和大型系統(tǒng)。 2.JavaScript是動(dòng)態(tài)類型、解釋型語(yǔ)言,主要用於網(wǎng)頁(yè)交互和前端開發(fā)。

See all articles