ホームページ >ウェブフロントエンド >jsチュートリアル >AWS Sideo サムネイル ジェネレーター - サーバーレス Node.js ソリューションガイド
注: 2 つの部分に分割しないでください。ここには分割を正当化するのに十分なテキストがありません。また、この記事では選択肢については説明せず、解決策に重点を置いています。
ビデオのサムネイルを効率的かつコスト効率よく大規模に生成する必要がありますか?専用のメディア処理サービスを使用する場合と比較して、実行コストがわずか数ペニーの AWS Lambda を使用して、真のサーバーレス ソリューションを構築しましょう。
ソリューションは、次の Node.js Lambda 関数で構成されます。
サムネイルを大規模に生成するのは、それほど簡単でも、安価でもありません。コスト要因はビデオの場合に特に重要です。画像の場合は、同じタイプの出力をサイズ変更、切り抜き、保存するだけで済みます。この責任をサードパーティのクラウド サービスにオフロードして、他の機能の提供に集中したり、ほんの少しの作業を行うだけで AWS VPC を離れることなくタスクを実行したりできます。動画の場合は話が別ですが。ビデオ ファイルははるかに大きく、さまざまなエンコード標準をサポートする必要があり、最終結果はビデオではなくなり、基本的に静止画像を抽出することになります。
オプションを調査するとき、私は常にアプリケーションが使用されているプラットフォームにネイティブなソリューションに目を向けます。 AWS では、それは MediaConvert または MediaLive です。どちらも、プロレベルのビデオ処理が必要な場合には最適ですが、ビデオからサムネイルを取得したいだけの場合には便利です...まあ、確かにそれは可能ですが、そのような使用例を処理できるように設計されていますか? ?そうではありません。
驚くべきことかもしれませんが、AWS にはサムネイルの生成専用のサービスがありません。利用可能なソリューションは、ストリーミング メディアのサポートの提供や高度なビデオ変換タスクの実行など、他のユースケースに焦点を当てています。
これらのサービスでそのような機能を構築するための要件を見ると、問題は非常に明らかです
ビデオのサムネイルをいくつか生成するのに、朝のコーヒーよりも費用がかかるはずですか? ☕ これらのサービスは強力ですが、サムネイルの生成などの単純なタスクには過剰であるためです。
AWS メディア サービスの実際のコストはドル単位だけではなく、必要のない複雑さにもかかっています。
新しい要件に遭遇するたびに、私の心は「仕事に最適なツールを見つける」モードに切り替わります。私は、自分が知っているものに頼らず、できるだけ多くの代替案を常に模索することの重要性を説いてきたので、壊れたレコードのように聞こえるかもしれません…でも、私はそのレコードがかかっている曲が好きなのだと思います! ??
それは病状とも言えます。私はエンジニアリングの OCD の問題を十分に認識しています... ?
でも余談ですが...
確かに、他の解決策もありますが、多くの場合、それぞれに頭痛の種が伴います。
ただ安いだけでなく、実際に必要なものに重点を置いたもの、つまり、文字通り 1 セントでビデオのサムネイルを生成するサーバーレス ソリューションを構築しましょう。 ?
システムは次の AWS のサービスとツールを使用します:
ビデオがソース S3 バケットにアップロードされると、処理リクエストをキューに入れるイベントがトリガーされます。 Lambda 関数がそれを取得し、Docker コンテナ内で実行されている FFmpeg を使用して処理します。生成されたサムネイルは、ターゲットの S3 バケットに保存されます。スロットルやインフラストラクチャ関連の問題などの回復可能な一時的な問題は自動的に再試行されますが、その他すべての失敗したイベントは監査のために配信不能キューに自動的に送信されます。
このサービスは、2 つのサイズのビデオ サムネイルを自動的に生成します。大きいバージョンには、フレームの中央に半透明のビデオ アイコンが含まれており、ユーザーがビデオ コンテンツをすばやく識別できるようになります。
サンプルプロジェクト
サービス
Lambda で FFmpeg をパッケージ化する Dockerfile は次のとおりです。
1 か月あたり 1,000 本のビデオを処理する場合のコストの内訳を見てみましょう:
これは 99.7% のコスト削減です。 ?
このソリューションは素晴らしいですが、落とし穴がないわけではありません:
これはほんの始まりにすぎません!このソリューションを次のように拡張できます。
私たちは、大金を掛けずにビデオのサムネイルを生成するための、費用対効果が高く、スケーラブルなソリューションを構築しました。不要な機能に料金を支払う必要はもうありません!
覚えておいてください: 最良のソリューションとは、最も高価で複雑なソリューションではなく、必要なことを正確に実行し、それ以上でも以下でもないということです。
これは役に立ちましたか? AWS とサーバーレスのコンテンツをさらに知りたい場合は、私をフォローすることを検討してください。サムネイルがビデオではなくモダンアートのように表示される場合は、まずビデオ形式を確認してから、下にコメントを入力してください。 ?
冗談はさておき、AWS でのビデオ処理の経験についてぜひお聞かせください。コストを最適化するための他の創造的な方法を見つけましたか?コメントで共有してください!
このソリューションは運用環境で徹底的にテストされていますが、展開する前に独自の環境で徹底的にテストしてください。何かに火がついた場合は、マシュマロの素晴らしいレシピを用意しておきます。 ?
Lambda を使用して Docker を実行する理由 - 最初の選択肢ではなく、場合によっては唯一の選択肢、レイヤーの代替手段
AWS メディア サービスと比べて実行コストが非常に安い
高速です。異なるファイル サイズで比較を実行します
テスト可能な Ffmpeg
以上がAWS Sideo サムネイル ジェネレーター - サーバーレス Node.js ソリューションガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。