ユーザーが音楽アプリ、ポッドキャストプレーヤー、またはビデオコンテンツのバックグラウンド音声再生などでオーディオのみを必要とする場合、完全なビデオファイルを転送すると帯域幅が無駄になります。オーディオ抽出機能を使用すると、CDN のエッジノードがビデオファイルからビデオトラックを除去し、オーディオストリームのみを返すことで、オーディオのみのユースケースでの帯域幅の消費を削減できます。
仕組み
クライアントが ali_audio_only=1 クエリパラメーター付きでビデオファイルをリクエストすると、最寄りの CDN エッジノードがリクエストを傍受し、オーディオトラックを抽出し、メタデータとオーディオデータのみを返します。ビデオデータがクライアントに送信されることはありません。
クライアントは、チャンク転送エンコーディング (Transfer-Encoding: chunked) をサポートしている必要があります。
オーディオ抽出の有効化
Alibaba Cloud CDN コンソールにログインします。
左側のナビゲーションペインで [ドメイン名 ] をクリックします。
[ドメイン名] ページで、管理対象のドメイン名を見つけ、[アクション] 列の [管理] をクリックします。

ドメイン名の左側のナビゲーションウィンドウで、[ビデオ関連] をクリックします。
オーディオ抽出 セクションで、スイッチをオンにします。
リクエストの作成
オーディオ抽出を有効化した後、リクエスト URL に ali_audio_only=1 を含めます。
http://<domain>/<video-file>?ali_audio_only=1プレースホルダーを実際の値に置き換えます。
プレースホルダー | 説明 | 例 |
| CDN の高速化ドメイン名 |
|
| ビデオファイルへのパス |
|
CDN ノードはメタデータとオーディオデータのみを返します。パラメーターが指定されていないか、1 以外の値に設定されている場合、オーディオ抽出は実行されません。
サポートされているフォーマット
MP4
メタデータ要件:メタデータはファイルヘッダーに含まれている必要があります。ファイル末尾にメタデータがあるファイルはサポートされていません。
ボックスヘッダーのサイズ:8 バイトのボックスヘッダーを持つ MP4 ファイルのみがサポートされています。16 バイト (64 ビット) のボックスヘッダーを持つ MP4 ファイルはサポートされていません。
リクエスト例:
http://<domain>/video.mp4?ali_audio_only=1FLV
メタデータ要件:要件はありません。
リクエスト例:
http://<domain>/video.flv?ali_audio_only=1制限事項
範囲リクエストはサポートされていません。Safari などのブラウザは、メディア再生時に自動的に範囲リクエストを発行します。独自開発のクライアントをユーザーに提供することを推奨します。
シークには追加の設定が必要です。ユーザーがオーディオコンテンツをシークする必要がある場合は、動画シーク機能を有効にしてください。動画シークは、ファイルメタデータを読み取ってファイルの全長を判断し、位置ベースのシークを可能にします。
MP4 ボックスヘッダーのサイズ
オーディオ抽出機能による MP4 ファイルの処理が失敗した場合、そのファイルの mdat ボックスがオーディオ抽出と互換性のない拡張 16 バイト ヘッダーを使用している可能性があります。このセクションを参照して、ボックスヘッダーのサイズを理解し、お使いのファイルに互換性があるかを確認してください。
MP4 ボックスヘッダーについて
MP4 ファイルは、moov ボックスや mdat ボックスなど、複数のボックス (コンテナユニット) で構成されています。各ボックスには、ボックスのサイズとタイプを記述するヘッダーが含まれています。ヘッダーには次の 2 つのフォーマットがあります。
フォーマット | ヘッダーサイズ | 説明 |
標準ヘッダー | 8 バイト (32 ビット) | サイズフィールド (4 バイト) とボックスタイプフィールド (4 バイト) を含みます。サイズフィールドにはボックスの実際のサイズが格納されます。ボックスサイズが 4 バイトで表現できる場合に使用されます。 |
拡張ヘッダー | 16 バイト (64 ビット) | サイズフィールド (4 バイト、固定値 1)、ボックスタイプフィールド (4 バイト)、および largesize フィールド (8 バイト) を含みます。サイズフィールドが 1 の場合、largesize メカニズムが有効になり、実際のボックスサイズは largesize フィールドに格納されます。データ量の大きい mdat ボックスで一般的に使用されます。 |
MP4 ファイルのボックスヘッダーサイズの確認
以下のツールを使用して、MP4 ファイルのボックスヘッダーサイズを確認できます。
方法 1: MP4Box.js オンラインツールを使用する (推奨)
MP4 ファイルをアップロードします。
左側の Box View ツリーで、[mdat (MediaDataBox)] をクリックします。
右側の [Box Property View] で、
original_sizeフィールドを確認してヘッダーサイズを判断します。original_sizeが 1 の場合:mdat ボックスヘッダーのサイズは 16 バイトです。オーディオ抽出はサポートされていません。original_sizeが表示されないか、1 ではない場合:mdat ボックスヘッダーのサイズは 8 バイトです。オーディオ抽出はサポートされています。
次の表は、両方のシナリオのプロパティを比較したものです。
プロパティ | ヘッダーサイズ = 8 バイト (サポート) | ヘッダーサイズ = 16 バイト (非サポート) |
size | 実際のサイズ値 | 実際のサイズ値 |
box_name | MediaDataBox | MediaDataBox |
start | オフセット (バイト単位) | オフセット (バイト単位) |
original_size | 表示されない | 1 と表示される |
方法 2: Bento4 コマンドラインツールを使用する
次のコマンドを実行します。
./mp4dump your-file.mp4 | grep -E "\[mdat\]|\[moov\]"出力の解釈:
[mdat] size=8+xxxxxx:ヘッダーサイズは 8 バイトです。オーディオ抽出はサポートされています。[mdat] size=16+xxxxxx:ヘッダーサイズは 16 バイトです。オーディオ抽出はサポートされていません。
オーディオ抽出におけるヘッダーサイズの制限
オーディオ抽出は、mdat ボックスが標準の 8 バイト ヘッダーを使用する MP4 ファイルのみをサポートします。mdat ボックスが拡張 16 バイト ヘッダー (largesize メカニズム) を使用するファイルはサポートされていません。
MP4 ファイルのシナリオ | ヘッダーサイズ | オーディオ抽出 |
mdat ボックスが標準ヘッダーを使用 | 8 バイト | サポート |
mdat ボックスが拡張 large-size ヘッダーを使用 | 16 バイト | 非サポート |
この制限は、主に生のメディアデータを格納する mdat ボックスに適用されます。moov などの他のボックスは、通常、デフォルトの 8 バイト ヘッダーを使用するため、この制限の影響は受けません。