ApsaraVideo VOD は、メディア管理、処理、配信を統合したオールインワンソリューションです。本ガイドでは、ApsaraVideo VOD を使用して、セキュアでコスト効率が高く、本番環境に即応可能なオンデマンド動画プラットフォームをゼロから構築する手順を説明します。
事前準備
ApsaraVideo VOD コンソール にログインし、サービスを有効化してください。課金方法として、従量課金またはリソースプランのいずれかを選択できます。詳細については、「課金の概要」をご参照ください。
新規ユーザー向けに、ApsaraVideo VOD では無料トライアルを提供しており、サービスの機能を実際に体験できます。
リージョンの選択
ApsaraVideo VOD サービスはリージョン単位で分離されています。 ネットワーク遅延を低減し、データ転送速度を向上させるため、ご利用の地域に近いリージョンを選択してください。サポートされる機能はリージョンによって異なります。詳細については、「サービス提供リージョン」をご参照ください。
ソリューションの構築
ステップ 1:ストレージの構成
ApsaraVideo VOD コンソールの ストレージ ページに移動します。上部のメニューバーから、サービスを有効化するリージョンを選択します。

VOD バケットの有効化 をクリックし、冗長性タイプを選択します。可用性を高めるには、ゾーン冗長ストレージ (ZRS) を選択してください。
ZRS
データを同一リージョン内の複数のゾーンに分散して保存します。この設計により、いずれかのゾーンが利用不能になっても、データへのアクセスが継続可能です。
ローカル冗長ストレージ (LRS)
データを単一ゾーン内の異なる施設に設置された複数のデバイスに保存します。これにより、ハードウェア障害発生時でもデータの耐久性と可用性が確保されます。
ストレージ場所の有効化には時間がかかる場合があります。ステータスが 正常 に変更された後のみ、そのストレージの場所を使用できます。
ステップ 2:音声および動画ファイルのアップロード
音声および動画ファイルをアップロードする前に、トランスコーディングテンプレートグループを構成してください。これにより、動画のアップロード後に複数の解像度に対応したバージョンが自動生成され、再生体験の最適化と帯域幅の節約が実現します。
(任意)トランスコーディングテンプレートグループ ページに移動します。トランスコーディングテンプレートグループの作成 をクリックし、必要なパラメーターを設定して構成を保存します。詳細については、「トランスコード」をご参照ください。

アップロード方法を選択します。
SDK を使用したアップロード(本番環境での使用を推奨)
バックエンドサービスが SDK を呼び出してアップロード認証情報を取得し、Web ブラウザーまたはアプリなどのクライアントが ApsaraVideo VOD に直接ファイルをアップロードします。これは最も安全かつ効率的な方法です。
説明コード例については、「メディアファイルのアップロードの概要」をご参照ください。
python# Python の例:バックエンドサービスがアップロード認証情報とアドレスを取得します。 from aliyunsdkvod.request.v20170321 import CreateUploadVideoRequest from aliyunsdkcore.client import AcsClient import json # 1. クライアントを初期化します。 # プレースホルダーを、ご自身の AccessKey ID、AccessKey Secret、およびリージョン ID に置き換えてください。 client = AcsClient('your-access-key-id', 'your-access-key-secret', 'cn-shanghai') # 2. API リクエストを作成し、パラメーターを設定します。 request = CreateUploadVideoRequest.CreateUploadVideoRequest() request.set_Title('My Test Video') request.set_FileName('video_test.mp4') # request.set_TemplateGroupId('your-transcode-template-group-id') # 任意:トランスコーディングテンプレートを指定します。 # 3. リクエストを送信し、応答を取得します。 response = client.do_action_with_exception(request) response_data = json.loads(response) # 4. UploadAddress および UploadAuth をクライアントに返却します。 upload_address = response_data['UploadAddress'] upload_auth = response_data['UploadAuth'] video_id = response_data['VideoId'] # クライアントが認証情報を取得した後、アップロード用 SDK を使用してファイルをアップロードします。コンソールを使用したアップロード(少数の小規模ファイルのアップロードやテストに適しています)
ApsaraVideo VOD コンソールの 音声/動画 ページに移動します。アップロード をクリックし、メディアの追加 をクリックします。ローカルファイルを選択するか、ファイルを指定エリアにドラッグします。

URL からの一括アップロード(ファイルがローカルに保存されておらず、インターネット経由でアクセス可能な場合のオフラインサイト移行に適しています)。詳細については、「URL からのプルによる一括アップロード」をご参照ください。
Windows クライアント(多数の大規模ファイルの一括アップロードに適しています)。詳細については、「PC クライアントツールを使用したメディアファイルのアップロード」をご参照ください。
(任意)ステップ 3:CDN ドメイン名の構成
再生 URL からの直接ストリーミングは、ストレージのアウトバウンドトラフィック に基づいて課金されます。コスト削減のため、CDN ドメイン名を構成してください。アクセラレーションサービス料金 は、ストレージからのアウトバウンドトラフィック料金と比較して 割安です。詳細については、「CDN ドメイン名の追加」をご参照ください。
ステップ 4:メディアファイルの再生
再生認証情報の取得(本番環境での使用を推奨)
バックエンド API 呼び出し
バックエンドサービスは、各再生リクエストに対して、有効期限付きの再生認証情報(PlayAuth)を動的に生成するために API を呼び出す必要があります。
python# Python の例:再生認証情報の取得 from aliyunsdkvod.request.v20170321 import GetVideoPlayAuthRequest # アップロード手順でクライアントは既に初期化済みです。 request = GetVideoPlayAuthRequest.GetVideoPlayAuthRequest() request.set_VideoId('your-video-id') # プレースホルダーを実際の VideoId に置き換えます。 request.set_AuthInfoTimeout(3000) # 認証情報の有効期間(秒単位)。本例では 50 分です。 response = client.do_action_with_exception(request) play_auth = json.loads(response)['PlayAuth'] # 取得した play_auth および video_id をフロントエンドに返却します。フロントエンドプレーヤーとの連携
フロントエンドプレーヤーは、バックエンドから取得した
vidおよびplayAuthを使用して再生を初期化します。Web
<!-- Web プレーヤーの例 --> <div id="player-container"></div> <script src="https://g.alicdn.com/de/prismplayer/2.15.2/aliplayer-min.js"></script> <script> var player = new Aliplayer({ id: 'player-container', width: '100%', height: '500px', vid: 'your-video-id', // バックエンドから取得 playauth: 'your-play-auth', // バックエンドから取得 cover: 'https://your-domain.com/cover.jpg' // サムネイルの URL }, function (player) { console.log('プレーヤーが作成されました。'); }); </script>Android
1. プレーヤーを作成します。 AliPlayer player = AliPlayerFactory.createAliPlayer(context); // 2. 再生ソースを構成します。 VidAuth vidAuth = new VidAuth(); vidAuth.setVid("your-video-id"); vidAuth.setPlayAuth("your-play-auth"); vidAuth.setRegion("cn-shanghai"); // リージョンを設定します。 // 3. 再生の準備を行います。 player.setDataSource(vidAuth); player.prepare();iOS
1. プレーヤーを作成します。 let player = AliPlayer() // 2. 再生ソースを構成します。 let vidAuth = AVPVidAuthSource() vidAuth.vid = "your-video-id" vidAuth.playAuth = "your-play-auth" vidAuth.region = "cn-shanghai" // リージョンを設定します。 // 3. 再生の準備を行います。 player.setSource(vidAuth) player.prepare()
URL 署名
URL 署名では、署名情報を URL に付与します。この方法は再生認証情報の使用よりも安全性が低いため、プレーヤーの変更が困難なシナリオに適しています。詳細については、「URL 署名」をご参照ください。
Web プレーヤーによるテスト
テストおよびデモンストレーション目的で、デモ Web プレーヤー を使用してメディアファイルを再生することもできます。
ApsaraVideo VOD コンソールの 音声/動画 ページに移動します。対象動画の [操作] 列で 管理 をクリックします。
ビデオ URL タブを選択します。対象解像度の [操作] 列で コピー をクリックします。

再生 URL を Web プレーヤーで使用して動画を再生します。
リファレンス
トランスコード:アップロード時に動画を自動トランスコードし、複数の解像度に対応した出力を生成するためのトランスコーディングテンプレートを設定します。
ワークフロー:動画のアップロード後に、トランスコード、スナップショットの取得、ウォーターマークの挿入などの動画処理タスクを自動実行するワークフローを設定します。
ビデオ編集:オンライン、または API・SDK を使用してプロフェッショナルなビデオ編集を実行します。
CDN ドメイン名の追加:CDN ドメイン名を構成することで、動画のアップロードおよびダウンロードを高速化し、トラフィック料金の割引を受けることができます。
よくある質問
複数のメディアファイルを一括でアップロードするにはどうすればよいですか?
PC クライアント、URL からの一括アップロード、またはアップロード用 SDK を使用して、複数の音声および動画ファイルを一度にアップロードできます。詳細については、「メディアファイルのアップロードの概要」をご参照ください。
OSS から ApsaraVideo VOD へメディアファイルを移行するにはどうすればよいですか?
以下の 2 つの条件を満たす場合、OSS バケットを ApsaraVideo VOD に追加できます。
ターゲットリージョンに標準ストレージクラスの OSS バケットが存在すること。
RAM クイック承認 ページで、ApsaraVideo VOD が OSS リソースにアクセスできるよう許可済みであること。
また、ソースファイルのアドレスを事前に準備し、アップロードツールを使用して移行することもできます。詳細については、「メディアファイルのアップロードの概要」をご参照ください。