3

この構成が機能しています。

1- Display a JS Upload Form to the visitor
2- Upload file chosen direclty to Amazon S3
3- Transcode the Video in MP4 using Amazon Elastic Transcoder with options:
       * resolution: auto
       * thumbnails: on, every 2sec

すべて正常に動作します。ただし、2 つの理由から、元のビデオの解像度/比率を取得する必要があります。1つ目の理由は、サムネイルの世代に適切な比率を設定できるようにするためです。(16/9、4/3、iphone ビデオの場合もあります...) 2 つ目の理由は、HTML5 ビデオ プレーヤーを完璧な比率で表示して、プレーヤーの側面に空白スペースが入らないようにするためです。

すでにAmazon Elastic Transcoderビデオの解像度を自動的に検出しているので、検出された解像度を返す方法があるのではないかと思っていましたが...そうではないようです!

誰でもビデオの解像度/比率を取得する方法を考えることができますか? 私の現在の解決策は、サーバーの S3 からビデオをダウンロードし、FFmpegまたはを使用して解像度を検出することFFprobeです。明らかに、それは理想的ではありません。

4

2 に答える 2

1

うまくいく方法がありますが、アップロードされたビデオに関するメタデータに直接アクセスできないと、エラスティック トランスコーダー サービスの有用性が制限され、次のような代替手段を使用することを強くお勧めします。encoding.com (皮肉なことに、独自のサーバーはAWS でホストされています)。


したがって、私の解決策は、 「自動」に設定することで、元のアップロードされたビデオのアスペクト比に一致するサムネイル ファイルを作成するエンコード ジョブのプリセットを使用できるということです。

サムネイルの縦横比。Elastic Transcoder で入力ファイルの縦横比を自動的に検出し、その値をサムネイルに使用する場合は、[自動] を選択します。サムネイルの縦横比を指定する場合は、適切な値を選択します。

この時点で、元のビデオのアスペクト比に実際にアクセスする方法が 2 つあります (どちらも JavaScript を使用します)。

1. 最初のサムネイル ファイルをダウンロードする JS を記述し、画像のサイズを明示的に解析し、幅を高さで割って縦横比を計算します。

また

2.ThumbnailPattern 元のジョブを作成するときに、「 {resolution}」プレースホルダーを使用して、画像ファイルの解像度を含むサムネイル ファイル名を生成するように指定します。

サムネイル ファイル名のパターン

{解像度} (オプション): Elastic Transcoder でファイル名に解像度を含める場合は、フィールドに {解像度} を含めます。

次に、エンコードされたビデオの最初の画像サムネイルを取得し、JS を使用してファイル名の解像度を解析し、アスペクト比を計算するだけです。

どちらの方法もちょっとハックですが、追加のビデオ処理を行う必要がないという利点があります。将来、AWS がメタデータへのアクセスを許可する場合は、この手間を排除する非常に簡単なアップグレード パスが必要です。

Amazon のフォーラムでの AWS 開発者からの回答に基づいて、ビデオ メタデータへのアクセスはおそらく近い将来利用可能になるでしょう。そのため、待つという 3 番目のオプションもあると思います。この問題は自然に解決する可能性があります。

于 2013-03-21T05:08:41.523 に答える
0

ジョブの入力ビデオと出力ビデオに関する情報を取得できるようになりました:
http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/get-job.html

于 2017-06-13T19:44:03.867 に答える