Alibaba Cloud ApsaraVideo VOD は、オーディオとビデオの管理、処理、配信、再生を統合したオールインワンソリューションです。このトピックでは、ApsaraVideo VOD をゼロから統合して、本番環境向けの安全でコスト効率の高いビデオ再生ソリューションを構築する方法を説明します。
前提条件
ApsaraVideo VOD コンソールにログオンし、サービスを有効化します。課金方法として、従量課金またはリソースプラン (サブスクリプション) を選択できます。詳細については、「課金の概要」をご参照ください。
ApsaraVideo VOD は、新規ユーザーがサービスを体験できる無料トライアルを提供しています。
リージョンの選択
ApsaraVideo VOD サービスはリージョンごとに分離されています。 近くのサービスリージョンを選択すると、ネットワーク遅延が短縮され、データ転送速度が向上します。サポートされている機能もリージョンによって異なります。詳細については、「サービスリージョン」をご参照ください。
ソリューションのセットアップ
ステップ 1: ストレージの設定
ApsaraVideo VOD コンソールの [ストレージ] ページに移動します。上部のメニューバーから、有効化するサービスリージョンを選択します。

[VOD システムバケットを有効にする] をクリックし、ストレージ冗長タイプを選択します。可用性を高めるには、ゾーン冗長ストレージを選択します。
標準 - ゾーン冗長ストレージ (ZRS)
このオプションは、データ冗長化メカニズムを使用して、同じリージョン内の複数のアベイラビリティゾーン (AZ) にデータのコピーを保存します。1 つの AZ が利用できなくなっても、データには引き続きアクセスできます。
標準 - ローカル冗長ストレージ (LRS)
このオプションは、データ冗長化メカニズムを使用して、単一のアベイラビリティゾーン (AZ) 内の異なる施設にある複数のデバイスにデータのコピーを保存します。これにより、ハードウェア障害が発生した場合でも、データの耐久性と可用性が確保されます。
ストレージの場所を有効にするには、時間がかかる場合があります。ストレージの場所は、ステータスが [正常] に変更された後にのみ使用できます。
ステップ 2: オーディオファイルとビデオファイルのアップロード
オーディオファイルとビデオファイルをアップロードする前に、トランスコーディングテンプレートグループを設定します。これにより、ビデオのアップロード後に複数の解像度のバージョンが自動的に生成されます。これにより、再生エクスペリエンスが最適化され、帯域幅が節約されます。
(オプション) ApsaraVideo VOD コンソールの [トランスコーディングテンプレートグループ] ページに移動します。[トランスコーディングテンプレートグループの追加] をクリックし、必須パラメーターを設定して、構成を保存します。詳細については、「ビデオトランスコーディング」をご参照ください。

アップロード方法の選択
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 クライアント (複数の大きなファイルを一括アップロードする場合に適しています)。詳細については、「Windows クライアントを使用してファイルをアップロードする」をご参照ください。
ステップ 3: 高速化ドメイン名の設定 (オプション)
再生 URL を使用してメディアファイルを再生する場合、ストレージからのアウトバウンドトラフィックに対して課金されます。コストを削減するために、高速化ドメイン名を設定できます。高速化サービス料金は、ストレージからのアウトバウンドトラフィックの料金よりも 低くなります。詳細については、「高速化ドメイン名の追加」をご参照ください。
ステップ 4: 再生の統合
再生資格情報の取得 (本番環境に推奨)
バックエンド API 呼び出し
バックエンドサービスは、API を呼び出して、各再生リクエストに対して時間制限のある再生資格情報 (PlayAuth) を動的に生成する必要があります。
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 プレーヤーで再生 URL を使用してビデオを再生します。
拡張機能
ビデオトランスコーディング: トランスコーディングテンプレートを設定して、アップロード時にビデオを自動的にトランスコードし、複数の解像度で出力を生成します。
ワークフロー: ワークフローを設定して、ビデオのアップロード後に、トランスコーディング、スナップショットの取得、ウォーターマークの追加などのビデオ処理タスクを自動的に実行します。
ビデオ編集: オンラインまたは API や SDK を使用して、プロフェッショナルなビデオ編集を実行します。
高速化ドメイン名の追加: 高速化ドメイン名を設定して、ビデオのアップロードとダウンロードを高速化し、トラフィック割引を受けます。
よくある質問
オーディオファイルとビデオファイルを一括でアップロードするにはどうすればよいですか?
PC クライアント、URL からの一括アップロード、またはアップロード SDK を使用して、一度に複数のオーディオファイルとビデオファイルをアップロードできます。詳細については、「メディアアップロードの概要」をご参照ください。
OSS から ApsaraVideo VOD にオーディオファイルとビデオファイルを移行するにはどうすればよいですか?
次の 2 つの条件が満たされている場合、Object Storage Service (OSS) バケットを ApsaraVideo VOD に追加できます。
標準ストレージクラスの OSS バケットがターゲットリージョンに存在します。
[クラウドリソースアクセス認証ページ] で、ApsaraVideo VOD に OSS リソースへのアクセスを許可している。
ソースファイルのアドレスを準備し、アップロードツールを使用して移行することもできます。詳細については、「メディアアップロードの概要」をご参照ください。