メディアアップロードは、メディアリソースを ApsaraVideo VOD に送信する機能であり、メディアアセット管理、メディア処理、配信と再生といった他の ApsaraVideo VOD サービスを利用するための前提条件です。このトピックでは、アップロード前に確認すべき事項、利用可能なアップロード方法、アップロードイベント通知、アップロード後の対応について説明します。
アップロード前の確認事項
対応メディア形式
ApsaraVideo VOD は、動画、音声、画像、補助メディアアセット (ウォーターマーク、字幕、素材ファイル) などのメディアファイルのアップロードをサポートしています。ファイルは、ローカルファイルまたはネットワークファイル (URL プルアップロードを使用) のいずれかです。次の表に、各メディアタイプでサポートされている形式を示します。
アップロード時には、必ずファイル拡張子を含めてください。拡張子の大文字と小文字は区別されません。たとえば、MP4 と mp4 は同等です。
| メディアタイプ | 対応ファイル形式 |
| 動画 |
説明 ApsaraVideo VOD コンソールから M3U8 ファイルをアップロードする場合、URL プルアップロードのみを使用できます。ローカルの M3U8 ファイルをアップロードする場合は、ApsaraVideo VOD API または SDK を使用してください。詳細については、「ApsaraVideo VOD API を使用したメディアファイルのアップロード」をご参照ください。
|
| 音声 | MP3、WMA、WAV、AAC、RA、M4A、FLAC、APE、AC3、AMR、CAF、ACM。 |
| 画像 | PNG、JPG、JPEG、GIF、HEIC。 |
| 補助メディアアセット |
|
ApsaraVideo VOD のメディアアップロードは、上記のメディアタイプのみをサポートしています。その他のファイルタイプをアップロードする場合は、「OSS へのファイルのアップロード」の手順に従ってください。
ストレージリージョン
ApsaraVideo VOD は、メディアリソースを Alibaba Cloud Object Storage Service (OSS) に保存します。各ストレージノードがストレージリージョンです。ApsaraVideo VOD は各ストレージリージョンにストレージアドレスを割り当てます。
ApsaraVideo VOD コンソールまたは PC クライアントからアップロードする場合、ストレージアドレスはログインまたは選択したリージョンによって決まります。SDK または API を使用してアップロードする場合、UploadMediaByURL API の StorageLocation パラメータなどを使用してストレージアドレスを指定できます。
ApsaraVideo VOD は、次のストレージリージョンとリージョン ID をサポートしています。
| ストレージリージョン | リージョン ID |
| 中国 (上海) | cn-shanghai |
| 中国 (北京) | cn-beijing |
| 中国 (深圳) | cn-shenzhen |
| 中国 (香港) | cn-hongkong |
| 日本 (東京) | ap-northeast-1 |
| シンガポール | ap-southeast-1 |
| インドネシア (ジャカルタ) | ap-southeast-5 |
| ドイツ (フランクフルト) | eu-central-1 |
| 米国 (シリコンバレー) | us-west-1 |
デフォルトでは、ApsaraVideo VOD は同じアカウント内のリージョン間でデータを共有しません。アップロード前に、アップロードするリージョンが実際のビジネスリージョンと一致していることを確認してください。一致していない場合、ファイルが見つからない可能性があります。
ストレージアドレスについて
| 利用可能なストレージアドレス設定 | 説明 |
| ApsaraVideo VOD システムストレージアドレスの有効化 | ApsaraVideo VOD をアクティブ化すると、各サービスリージョンにはデフォルトで独立したストレージバケット (ApsaraVideo VOD システムバケット) が割り当てられます。このバケットを有効にすると、追加の設定なしでメディアリソースをアップロードおよび管理できます。詳細については、「ストレージバケットの管理」をご参照ください。 |
| ストレージアドレスの追加 | 独自の OSS バケットを ApsaraVideo VOD に追加することで、OSS バケットに保存されているメディアファイルをトランスコード、スナップショット取得、再生できます。詳細については、「ストレージバケットの管理」をご参照ください。 |
| デフォルトストレージアドレスの変更 | 複数のストレージリージョンのストレージアドレスを有効化、または複数のストレージアドレスを追加した後、デフォルトのストレージアドレスを変更できます。ファイルをアップロードする際、ストレージアドレスを指定することも、指定しないこともできます。指定しない場合、ApsaraVideo VOD はデフォルトのストレージアドレスを使用します。詳細については、「ストレージバケットの管理」をご参照ください。 |
ストレージの課金
ApsaraVideo VOD のストレージは、従量課金 (後払い) とリソースプラン (前払い) の 2 つの課金方式をサポートしています。
従量課金については、「メディアアセットストレージの課金」をご参照ください。
リソースプランについては、「ApsaraVideo VOD ストレージプラン」をご参照ください。
アップロード方法
ApsaraVideo VOD は、さまざまなユーザーシナリオに対応するため、手動アップロードとプログラマティック (自動) アップロードの方法を提供しています。次のガイダンスを参考に方法を選択し、詳細については概要表をご参照ください。
少数の小さなファイルを迅速にアップロードする:コンソールを使用します。
大きなファイルまたは長時間のアップロードを実行する:PC クライアントを使用します。
バッチアップロードまたは自動統合:サーバーサイドアップロード SDK を使用します。
ネットワークファイルをアップロードする:URL プルアップロードを使用します。
| アップロード方法 | シナリオ | 説明 | |
| 手動アップロード | ApsaraVideo VOD コンソールへのファイルのアップロード | メディアリソースを迅速かつ便利に ApsaraVideo VOD にアップロードする必要があるシナリオ。 説明 コンソールのセキュリティポリシーにより、ログインセッションの有効期限が切れると、大きなファイルの長時間アップロードが失敗する場合があります。この問題を回避するには、PC クライアントで大きなファイルをアップロードしてください。 |
|
| Windows クライアントを使用したファイルのアップロード | 大きなファイル、長時間のアップロード、低障壁の運用シナリオ。 |
| |
| プログラマティック統合 | Upload SDK を使用したアップロード |
説明 アップロード SDK の使用を推奨します。アップロード SDK がお使いの言語をサポートしていない場合は、OSS ネイティブ SDK を使用してアップロードできます。 |
|
| OSS SDK を使用したメディアファイルのアップロード |
|
説明 Java、Python、PHP、C/C++ の場合は、ApsaraVideo VOD アップロード SDK の使用を推奨します。 | |
| URL からのバッチアップロード | ファイルがローカルサーバーまたは端末に保存されておらず、パブリックネットワークからアクセス可能な URL からアップロードする必要があるシナリオ。 |
|
アップロード方法別の機能比較
次の表は、各アップロード方法がアップロード中にサポートする機能を比較したものです。①、②のマークは、表の後に続く機能の説明に対応しています。
| グループ | 機能 | コンソール | PC クライアント | サーバーサイド SDK-Java | サーバーサイド SDK-Python | サーバーサイド SDK-PHP | サーバーサイド SDK-C/C++ | OSS SDK |
| メディアアセット管理 | メディアタイトルの設定 | サポート | サポート | サポート | サポート | サポート | サポート | サポート |
| メディアカテゴリの指定 | サポート | サポート | サポート | サポート | サポート | サポート | サポート | |
| メディアタグの設定 | 非サポート | サポート | サポート | サポート | サポート | サポート | サポート | |
| 動画サムネイルの設定 | 非サポート | 非サポート | サポート | サポート | サポート | サポート | サポート | |
| 音声および動画トランスコーディング① | トランスコーディングテンプレートグループ | サポート | サポート | サポート | サポート | サポート | サポート | サポート |
| メディアワークフロー | サポート | 非サポート | サポート | サポート | サポート | サポート | サポート | |
| トランスコーディングなし | サポート | サポート | サポート | サポート | サポート | サポート | サポート | |
| アップロード制御② | アップロード進行状況の取得 | サポート | サポート | サポート | サポート | サポート | サポート | サポート |
| レジュームアップロード | 非サポート | 非サポート | サポート | サポート | 非サポート | 非サポート | 非サポート | |
| マルチパートアップロード | デフォルトで有効 | デフォルトで有効 | デフォルトで有効 | デフォルトで有効 | デフォルトで有効 | デフォルトで有効 | デフォルトで有効 |
以下の注記は、前の表で①および②でマークされた機能グループについて説明しています。
音声および動画トランスコーディング①
音声または動画ファイルをアップロードする際にトランスコーディングを設定し (トランスコーディングテンプレートグループまたはメディアワークフローを指定)、アップロード完了後に自動的にトランスコーディングが開始されます。トランスコーディングしないことも選択できます。ただし、トランスコーディングなしで再生できる動画は、MP4、FLV、M3U8、MP3、WEBM 形式のみです。
トランスコーディングテンプレートグループを使用したトランスコーディング:トランスコーディングテンプレートグループの使用は、ApsaraVideo VOD のデフォルトの処理方法です。アップロード時にトランスコーディングテンプレートグループ処理方法を選択すると、ApsaraVideo VOD はアップロード完了後に自動的にトランスコーディングを開始します。
メディアワークフローを使用したトランスコーディング:トランスコーディングタスクを含むメディアワークフローを作成した後、アップロード時にメディアワークフロー処理方法を選択します。アップロード完了後、ApsaraVideo VOD は指定されたメディアワークフローを自動的に実行してトランスコーディングを完了します。
トランスコーディングなし:アップロード中にトランスコーディングが不要な場合は、トランスコーディングテンプレートグループで[トランスコーディングなし]テンプレートを選択します。
アップロード制御②
マルチパートアップロード:アップロードするファイルを複数のパートに分割して個別にアップロードし、アップロード完了後に 1 つのオブジェクトに結合します。ApsaraVideo VOD は、デフォルトでマルチパートアップロードを使用してファイルをアップロードします。
マルチパートアップロードを使用する場合、アップロードに失敗するとフラグメントファイルが生成されることがあります。これらは約 7 日後に自動的に削除されます。DeleteMultipartUpload API を呼び出して、フラグメントファイルを手動で削除することもできます。
アップロード進行状況またはステータスの取得。
レジュームアップロード:ネットワークエラーによってアップロードが失敗した場合、ApsaraVideo VOD は正常にアップロードされた最後のパートからアップロードを再開できます。
レジュームアップロードは、アップロード SDK (クライアント) によって内部的に処理されます。ブレークポイントやフラグメントの回復を管理する必要はありません。例外によって失敗した後の再アップロードは、ブレークポイントから開始されます。
アップロードイベント通知
メディアファイルのアップロードが完了した後、事前に設定されたコールバックアドレスを通じて、処理の進行状況とステータスをタイムリーに取得できます。ApsaraVideo VOD は、イベント通知用に HTTP コールバック (HTTPS 互換) と Message Service (MNS) コールバックの 2 つのコールバック方式をサポートしています。コールバック設定の詳細については、「イベント通知」をご参照ください。コールバック設定を完了するには、「コールバックの設定」をご参照ください。すべてのアップロード方法はアップロードイベント通知をサポートしています。アップロード関連のイベントを次の表に示します。
各イベントの詳細については、「イベント通知」をご参照ください。
| イベント名 | イベントタイプ | 説明 |
| 動画アップロード完了 | FileUploadComplete | ApsaraVideo VOD サーバーがアップロードされた音声または動画ファイルの受信を完了した後に生成されます。 説明 トランスコーディングされていない音声および動画 (または音声) の場合、動画アップロード完了イベント通知を受信した後にのみ再生 URL を取得できます。アップロード中にトランスコーディングを無効にした場合、動画アップロード完了イベント通知を受信した後、SubmitMediaTranscodingJobs API を呼び出してトランスコーディングできます。 |
| 画像アップロード完了 | ImageUploadComplete | ApsaraVideo VOD サーバーがアップロードされた画像ファイルの受信を完了した後に生成されます。 |
| 補助メディアアップロード完了 | AttachedMediaUploadComplete | ApsaraVideo VOD サーバーがアップロードされた補助メディアアセットファイルの受信を完了した後に生成されます。 |
| URL からの動画アップロード完了 | UploadByURLComplete | URL によるメディアファイルのアップロードタスクを呼び出した後、クラウドが動画のプルとアップロードを完了したときに UploadByURLComplete イベントが生成されます。 |
| ストリームトランスコーディング完了 | StreamTranscodeComplete | 動画の特定の定義と形式のストリーム (たとえば、標準解像度の MP4 ファイル) のトランスコーディングが完了したときに生成されます。 説明 トランスコーディングされた音声および動画の場合、ストリームトランスコーディング完了イベント通知を受信した後にのみ再生 URL を取得できます。コールバックを受信する前に再生すると、再生に失敗する可能性があります。 |
| 動画トランスコーディング完了 | TranscodeComplete | 動画のすべてのストリームのトランスコーディングが完了したときに生成されます。 説明 再生前にすべての定義が利用可能であることを確認するには、動画トランスコーディング完了イベント通知を受信してから続行してください。コールバックを受信する前に再生すると、再生に失敗する可能性があります。 |
アップロード後の対応
メディアリソースが ApsaraVideo VOD にアップロードされると、ビジネス処理の状況と段階に応じて、さまざまなメディアステータスになります。異なるメディアステータスの音声および動画リソースは、異なる操作をサポートします。たとえば、「アップロード中」、「アップロード失敗」、または「ブロック済み」 ステータスの音声および動画は削除のみでき、他の操作 (トランスコーディングの開始、動画スナップショットの取得、メディアアセットのレビューなど) はサポートされません。「正常」 ステータスの音声および動画は、トランスコーディング、動画スナップショット、メディアアセットレビュー、再生を含むすべての操作をサポートします。メディアステータスの詳細については、「ステータス:動画ステータス」および「ステータス:画像ステータス」をご参照ください。
アップロード後に利用可能な ApsaraVideo VOD サービスと、その後の配信と再生に関する注意事項は次のとおりです。
| ApsaraVideo VOD サービス | 説明 | 参考資料 |
| メディアアセット管理 (アップロード後) | アップロード完了後、ApsaraVideo VOD を使用して、動画ソースファイル、トランスコーディングされたストリームファイル、画像ファイルなどのメディアファイルを管理します。 | メディアアセット管理 |
| メディア処理 | ApsaraVideo VOD は、音声および動画トランスコーディング、自動レビュー、オンライン編集 (クラウド内の動画編集)、AI 処理などのアップロード後の操作をサポートしています。 説明 ApsaraVideo VOD ストレージにアップロードされた音声および動画ファイルは、デフォルトでメタデータ (動画解像度、長さ、ビットレートなど) が抽出され、動画のサムネイルとスプライトがデフォルトでキャプチャされます。この前処理は完全に無料です。 | メディア処理 |
| 音声および動画の再生 | 音声または動画のアップロードが完了した後、ファイルが必ずしも準備完了とは限りません。ApsaraVideo VOD サーバーがファイルの受信を完了したことを確認する必要があります。アップロードされた音声または動画が再生可能になるタイミングを判断するには、イベント通知を使用してください。
|
|
アップロードセキュリティ
プログラマティックアップロードシナリオでは、アップロード認証情報と STS の両方が、アップロード中の認証とセキュリティの問題を解決し、メディアファイルが悪意を持ってアップロードおよび再生されるのを防ぎます。
各方法のシナリオについては、「認証情報方式と STS 方式の比較」をご参照ください。
具体的な使用方法については、各アップロード方法の開発者向けドキュメントをご参照ください。
- - - - OSS SDK を使用したメディアファイルのアップロード
パブリック読み取りファイルアップロードの制限
2024 年 1 月 31 日以降、ApsaraVideo VOD は OSS x-oss-object-acl ヘッダーを介したファイルアクセス許可の変更をサポートしなくなりました。これにより、パブリック読み取りファイルを直接アップロードすることによって引き起こされる、メディアリソースの漏洩や悪意のあるアクセスによるコストの急増などの問題を効果的に防ぐことができます。ApsaraVideo VOD で独自の OSS バケットへのパブリック読み取りファイルのアップロードを制限するには、次のアクセス許可管理方法を使用できます。
ApsaraVideo VOD が OSS およびその他のリソースにアクセスすることを承認するには、「クラウドリソースアクセス承認」をクリックして承認を付与してください。
「独自の OSS バケットへのパブリック読み取りオブジェクト ACL を持つファイルのアップロードを禁止する」 というカスタムポリシーを作成します。手順とポリシーの内容については、「ACL がパブリック読み取りであるオブジェクトの OSS バケットへのアップロードを禁止するポリシー」をご参照ください。
AliyunVODDefaultRole ロールに、前の手順で作成した 「独自の OSS バケットへのパブリック読み取りオブジェクト ACL を持つファイルのアップロードを禁止する」 というアクセス許可を付与します。
AliyunVODDefaultRole ロールにアクセス許可を付与するには
Resource Access Management (RAM) コンソールにログオンします。手順については、「RAM ユーザーアクセス許可の管理」をご参照ください。
左側メニューで[ロール]をクリックし、AliyunVODDefaultRole を見つけてクリックします。
[アクセス許可] タブで、[アクセス許可の付与] をクリックします。
表示されるパネルで、[カスタムポリシー] タブを選択し、対象のポリシーを選択して、承認を完了します。
アップロードアクセラレーション
ApsaraVideo VOD は、長距離ファイルや GB または TB レベルの大きなファイルの転送を改善するために、アップロードアクセラレーションを提供しています。アップロードアクセラレーションは、リージョン間のアップロード (海外転送など) に適用されます。たとえば、中国本土からシンガポールストレージリージョンのストレージアドレスへ動画をアップロードする場合などです。
有効化方法
アップロードアクセラレーションを有効にするには、チケットを送信してください。Alibaba Cloud アカウント UID と、アクセラレーションする ストレージアドレス を提供してください。
課金
アップロードアクセラレーションは ApsaraVideo VOD の付加価値機能であり、使用量に応じて課金されます。課金の詳細については、「転送アクセラレーションの課金」をご参照ください。
機能を有効にしても使用しない場合、料金は発生しません。
制限事項
ApsaraVideo VOD コンソールへのファイルのアップロードは、アクセラレーションをサポートしていません。その他のすべてのアップロード方法ではサポートされています。
課金
ApsaraVideo VOD へのメディアアセットのアップロードには、追加料金は発生しません。関連する料金は、使用した ApsaraVideo VOD のサービスリソースに対して発生します。
| 課金項目 | 説明 |
| ストレージ料金 | アップロード後のメディアファイルのストレージ料金。ストレージ容量と期間に基づいて課金されます。 |
| トラフィック料金 | アップロードトラフィックは無料です (クライアントから ApsaraVideo VOD へのインバウンドトラフィックは課金されません)。ダウンストリーム再生トラフィックは別途課金されます。 |
| トランスコーディング料金 | アップロード後にトランスコーディングがトリガーされた場合、出力ファイルの長さとトランスコーディング仕様に基づいて課金されます。トランスコーディングが実行されない場合、料金は発生しません。 |
| アップロードアクセラレーション料金 | アップロードアクセラレーションを有効にして使用する場合、アクセラレーションされたトラフィックに基づいて追加で課金されます。 |