ストリーミング同時トランスコードは、オンラインビデオ再生向けのリアルタイムトランスコーディング機能で、アップロード直後から再生が始まり、視聴中のセグメントのみをトランスコードします。
概要
アップロード後に動画全体のトランスコーディング完了を待ってから再生を開始する必要がある ApsaraVideo Media Processing とは異なり、ストリーミングトランスコードはソース動画のアップロード完了後すぐに再生を開始します。再生に必要な動画セグメントのみをトランスコードします。このアプローチには、以下の特長があります:
-
再生中のトランスコーディング — 待機は不要です。
-
1 秒未満の起動とシーク時間を実現する最適化されたトランスコーディング — ローカル再生に近い体験。
-
再生がない場合はトランスコードされません。トランスコードされたファイルが削除されても、オンデマンドで再生成できます — トランスコーディングとストレージのコストの大幅な削減。
-
数十のトランスコーディングパラメーターをサポート — 高度にカスタマイズ可能な設定。
-
高い互換性 — 300 種類以上のオーディオとビデオのフォーマットに対応。
ストリーミングトランスコードは匿名再生をサポートしていません。
ワークフロー
-
ビデオファイルを Object Storage Service (OSS) にアップロードします。
-
GenerateVideoPlaylist API を使用して、メディアプレイリストファイルを迅速に生成します。OSS の署名機能を使用してプレイリストに署名し、署名済みプレイリスト URL を取得します。
-
プレーヤーは署名済みプレイリストを取得して再生を開始します。再生中に、ストリーミング中のトランスコード機能が自動的に作動します。
シナリオ
-
クラウドストレージ:ユーザーは動画をクラウドドライブにアップロードします。クライアントはネットワーク状況に基づき、再生に適した解像度を即座に選択します。これにより、リアルタイム再生とクロスデバイス互換性が確保されます。クラウドストレージ内の動画の大半はアクセス頻度が低い (「コールド」) ため、ストリーミング中のトランスコードでは未再生コンテンツをトランスコードしないことで、トランスコーディングコストとストレージコストを大幅に削減します。
-
チャットアプリの動画プレビュー:インスタントメッセージ (IM) やソーシャルプラットフォームでは、送信者がアップロードを完了 (サーバーがファイルを受信) すると、受信者はすぐに再生を開始できます。これにより、リアルタイムコミュニケーションが向上します。長期間視聴されていない過去メッセージのトランスコード済みファイルは、ストレージコストを抑えるために定期的にクリーンアップできます。また、再アクセス時も即座に再生できます。
-
オンラインフォーラムとブログ:ユーザーが共有用のソース動画をアップロードすると、ほかのユーザーはトランスコード済みバージョンをすぐに再生できます。これにより、スムーズな再生、高画質、幅広いフォーマットへの互換性が確保されます。
機能
次の表で、追加の機能について説明します。
|
機能 |
説明 |
|
標準化 |
|
|
低コスト |
|
|
高効率 |
|
対応オーディオおよびビデオフォーマット
ストリーミング中のトランスコードは、300 種類以上のオーディオおよびビデオフォーマットをサポートしています。次の表に、一般的にサポートされているフォーマットの一部を示します。
|
入力ビデオフォーマット |
avi、mov、flv、mkv、webm、mpeg、wmv、rm、vob、ts、およびその他すべての主流フォーマット |
|
入力オーディオフォーマット |
mp3、wav、aac、flac、wma、およびその他すべての主流フォーマット |
|
出力コンテナフォーマット |
ts |
前提条件
-
Object Storage Service (OSS) を有効化し、バケットを作成してファイルをアップロードします。 詳細については、「コンソールでのクイックスタート」をご参照ください。
-
Intelligent Media Management (IMM) を有効化し、プロジェクトを作成します。 詳細については、「サービスの有効化」および「プロジェクトの作成」をご参照ください。
説明CreateProject API を呼び出してプロジェクトを作成することもできます。
ListProjects API を呼び出して、指定したリージョン内のすべてのプロジェクトを一覧表示できます。
-
Resource Access Management (RAM) ユーザーに、IMM 操作に必要な権限を付与します。
-
ストリーミング中のトランスコードを使用する前に、IMM プロジェクトをバインドします。 コンソールまたは API でのバインド手順については、「クイックスタート」および「OSS バケットのバインド」をご参照ください。
-
ソース動画または出力動画を含むバケットでホットリンク保護が有効になっている場合、ホットリンク保護ポリシーが empty Referer を許可することを確認してください。
-
プレーヤーが OSS へのクロスドメインアクセスを必要とする場合は、ターゲットバケットに対して OSS のオリジン間リソース共有 (CORS) を有効にしてください。 「CORS 設定」をご参照ください。
使用方法
メディアプレイリストの例
トランスコーディング設定
-
ソースビデオ情報
-
フォーマット:AVI
-
ソース URI:oss://your-oss-bucket-name/test.avi
-
-
ターゲットビデオ
-
セグメント期間:10 秒
-
先行トランスコード期間:36 秒
-
ビデオコーデック:H.264
-
解像度:1280×720
-
フレームレート:25 fps
-
ビデオビットレート:2 Mbps
-
オーディオコーデック:AAC
-
オーディオビットレート:128 Kbps
-
出力パスプレフィックス:oss://your-oss-bucket-name/output/media
-
ステップ 1:プレイリストの生成
ステップ 2:プレイリストへの署名
ステップ 3:ビデオの再生
マスタープレイリストの例
トランスコーディング設定
-
ソースビデオ
-
フォーマット:AVI
-
ソース URI:oss://your-oss-bucket-name/test.avi
-
-
マスタープレイリスト URI:oss://your-oss-bucket-name/output/master.m3u8
-
ターゲットビデオ 1
-
セグメント期間:10 秒
-
先行トランスコード期間:36 秒
-
ビデオコーデック:H.264
-
解像度:1920×1080
-
フレームレート:25 fps
-
オーディオコーデック:AAC
-
オーディオビットレート:128 Kbps
-
出力パスプレフィックス:oss://your-oss-bucket-name/output/1080p/1080p
-
-
ターゲットビデオ 2
-
セグメント期間:10 秒
-
先行トランスコード期間:36 秒
-
ビデオコーデック:H.264
-
解像度:1280×720
-
フレームレート:25 fps
-
オーディオコーデック:AAC
-
オーディオビットレート:96 Kbps
-
出力パスプレフィックス:oss://your-oss-bucket-name/output/720p/720p
-
-
ターゲットビデオ 3
-
セグメント期間:10 秒
-
先行トランスコード期間:36 秒
-
ビデオコーデック:H.264
-
解像度:720×406
-
フレームレート:25 fps
-
オーディオコーデック:AAC
-
オーディオビットレート:64 Kbps
-
出力パスプレフィックス:oss://your-oss-bucket-name/output/540p/540p
-
ステップ 1:プレイリストの生成
ステップ 2:プレイリストへの署名
ステップ 3:ビデオの再生
よくある質問
カスタムプレーヤーは必要ですか。
いいえ。ストリーミング中のトランスコードは、標準の HLS プロトコルをサポートしています。標準の HLS 互換プレーヤー (Alibaba Cloud Aliplayer や Safari ブラウザなど) を使用してください。
どのような出力ファイルが生成されますか。
指定した入力パスプレフィックスに基づいて m3u8 ファイルと TS ファイルを生成します。m3u8 ファイルはすぐに生成されます。
事前トランスコード期間を指定した場合、システムは対応する TS ファイルを非同期に生成します。指定されていないセグメントは、再生中にオンデマンドでトランスコードされます。動画が一度も再生されなかった場合、それらのセグメントに対応する TS ファイルは生成されません。例えば、再生が 15 分の時点から開始された場合、トランスコードはその時点から開始されます。結果として得られるディレクトリ構造は次のようになります:
.
├── outobjprefix.m3u8
├── outobjprefix-c280f054328fcde47c1732a8f2915009-0.ts
├── outobjprefix-c280f054328fcde47c1732a8f2915009-1.ts
├── outobjprefix-c280f054328fcde47c1732a8f2915009-2.ts
├── outobjprefix-c280f054328fcde47c1732a8f2915009-3.ts
生成された TS ファイルを手動で削除しても、動画を再生できますか。
はい。ソース動画と m3u8 プレイリストが残っている限り、TS ファイルの一部またはすべてを削除しても再生に影響はありません。m3u8 プレイリストが再度リクエストされると、見つからない TS ファイルは再生成されます。これにより、将来の再生に影響を与えることなく、再生頻度の低い動画の TS ファイルをクリーンアップしてストレージコストを削減できます。
ストリーミング中のトランスコード以外で生成された m3u8 ファイルをこの機能に使用できますか。
いいえ。ストリーミング中のトランスコードのプロセス以外で生成された m3u8 ファイルを使用してこの機能を有効にすることはできません。
CDN を使用してストリーミング中のトランスコードを高速化できますか。
はい。詳細については、「CDN を使用したストリーミング中のトランスコードの高速化」をご参照ください。