16

ユーザーがビデオや画像をサーバーにアップロードし、FFMPEGでトランスコードしてAmazon S3に保存できるようにするアプリケーションを開発する場合、人々は何を最も重要だと思いますか?私にはいくつかの選択肢があります。

1)ファイルのアップロードを処理する同じサーバーにFFMPEGをインストールし、ビデオがアップロードされてEC2インスタンスに保存されたら、FFMPEGを呼び出して変換し、完了したら、ファイルをS3バケットに書き込んで元のファイルを破棄します。

これはどの程度スケーラブルですか?多くのユーザーが同時にアップロードするとどうなりますか?複数のプロセスを一度に管理するにはどうすればよいですか?別のインスタンスを開始してこの構成の負荷を分散するタイミングを知るにはどうすればよいですか?

2)アップロード(データベースの更新、ファイルの名前変更など)を処理するためのサーバーとトランスコーディングを行うためのサーバーを1つずつ用意します。繰り返しますが、複数のプロセスを管理するための最良の方法は何ですか?これについてはAmazonSQSを検討する必要がありますか?トランスコーディングサーバーにアップロードサーバーからファイルを取得するように指示できますか、それともファイルをトランスコーディングサーバーにコピーする必要がありますか?すべてのファイルをS3に保存すれば、SQSはそこから読み取ることができます。トラフィックをできるだけ少なくしようとしています。

アップロードサーバーとしてLinuxボックスを実行していて、FFMPEGを実行しています。

このような構成を設定するためのベストプラクティスに関するアドバイスをいただければ幸いです。どうもありがとう

4

4 に答える 4

12

誰かがトランスコーディングのためにファイルをアップロードするたびに、新しいFFMPEGインスタンスを開始したいとは思わないでしょう。代わりに、CPUの数と同じ数のFFMPEGプロセスを開始してから、トランスコードする入力ファイルをキューに入れ、受信した順序で実行することをお勧めします。これはすべて1台のコンピューターで行うことができます。アップロードを受け入れてキューに入れるサーバーは、多くのCPUを必要とし、FFMPEGプロセスとうまく共存できると思います。

スケーリングするサイズに応じて(単一のマシンで数個以上のFFMPEGプロセスを実行する場合)、これを簡単に分散させることができます。これは、SQSが役立つ場所です。コアごとに1つのFFMPEGプロセスを実行し、ローカルキューでデータを探す代わりに、SQSを探すことができます。次に、さまざまなマシンで、必要な数のトランスコーディングプロセスをインスタンス化できます。

これの欠点は、生のビデオを受け入れるサーバーから、トランスコードする必要のあるサーバーに生のビデオを転送する必要があることです。それらをS3に入れてから、S3から取得することもできますが、その代金を支払う必要があるかどうかは、頭のてっぺんから覚えていません。または、それらを受信したマシンのハードディスクに保存し、そこにトランスコーディングプロセスを実行してrawファイルを取得することもできます。

于 2009-10-02T13:50:03.040 に答える
1

AmazonElasticTranscoderをご覧ください。それはあなたが質問で言及したほとんどすべての問題を解決します。

于 2015-02-09T18:20:28.907 に答える
1

実際には、問題を解決するために使用できる方法よりも多くの方法があります。

1-ec2 cronジョブを使用して、トランスコーディングに使用できる新しいビデオがあるかどうかをデータベース(たとえば、30秒ごと)でチェックする単純なphpスクリプトを実行できます(これには単純なDB属性を使用でき、処理されます:ブール値)

2-aws Lambdaサービスを使用してs3バケットにアップロードされた新しいビデオを検出し、サムズとトランスコーディングを取得するためのラムダ関数をトリガーし、出力をターゲットバケットに送信します。@binocularsによるこの素晴らしいツールを確認するには、jsとgulpをある程度理解する必要がありますが、非常に便利でスムーズです。

3- awsトランスコーダーを使用します。それはかなり高価です。あなたが最も近い分に切り上げられているならば、あなたのビデオが短いとき、それは莫大な費用です。映画をトランスコードするために長い仕事をしているNetflixやAmazonの場合、ETの方がはるかに理にかなっています。

于 2016-09-06T11:25:32.873 に答える
1

あなたはパイパーをチェックアウトすることができます。これは、私が元々巨大なエンターテインメント会社がビデオのトランスコーディングを大規模に処理するために構築した製品のオープンソースバージョンです。

于 2017-07-06T17:14:33.933 に答える