WWDC Quick Look 💓 By SwiftGGTeam
Deliver a better HLS audio experience

Deliver a better HLS audio experience

元の動画を見る

ハイライト

Apple は、2020 OS リリースで xHE-AAC、FLAC、Apple Lossless のサポートを HLS に追加し、低帯域幅と高忠実度のオーディオ再生を向上させるために、作成者に正しい CODECS、DRC メタデータ、SCORE、およびマルチチャンネル AAC ラダーを使用することを要求しています。

主要内容

以前は、HLS オーディオが 2 つの極端な状況に陥ることが簡単にありました。低帯域幅のネットワークでは、より多くのトラフィックを節約するエンコーディングが必要です。そうしないと、再生が一時停止します。高忠実度コンテンツにはロスレスオーディオとマルチチャンネル出力が必要です。そうしないと、ユーザーはコンテンツ制作中に保存された詳細を聞くことができません。いくつかの AAC バリアントをマスター プレイリストに追加するだけでは、これらのシナリオには対応できなくなります。

このセッションで提供される最初の変更セットは、2020 OS リリースの 3 つの新しい HLS オーディオ コーデック、xHE-AAC、FLAC、Apple Lossless です。 xHE-AAC は低ビットレートから中ビットレートをターゲットにしており、Apple は最低 24 kbps を推奨しています。 FLAC と Apple Lossless はロスレス オーディオをターゲットにしており、AVPlayer は最大 8 チャンネルをサポートしますが、ビットレートは 1 Mbps 近くから、高いマルチチャンネル仕様では数 Mbps まで拡張されます。

これらの変更により、問題はオーサリング段階に戻ります。プレイリストに正しく記述する必要がありますCODECS、xHE-AAC のラウドネスとダイナミック レンジ コントロール (DRC、ダイナミック レンジ コントロール) メタデータを使用して、SCOREプレーヤーがより適切なバリアントを優先し、マルチチャンネル AAC をマルチチャンネル ロスレス オーディオの前に置くようにします。そうしないと、新しいコーデックをサポートするデバイスでは良好な音質が得られず、帯域幅が不十分なデバイスではスムーズな劣化パスが得られません。

これはプレイヤー側のスイッチで解決できるものではありません。サーバー側のエンコーディング、断片化された MP4 コンテナ、共通の暗号化、チャンネル レイアウト、マスター プレイリストの組み合わせはすべて、AVPlayer が最終的に選択するオーディオ ストリームに影響します。

詳細

1. xHE-AAC を使用して 24 kbps の低ビットレート バリアントを補完します。

(01:3305:1607 :16, 09:01)xHE-AAC 音声および汎用オーディオの場合、USAC とも呼ばれます。 Apple はコーデック文字列を明示的に提供しますmp4a.40.42、24 kbps 範囲をカバーすることをお勧めします。講演の例は、既存のHE-AAC 48 kbpsとAAC-LC 64 kbpsに加えて、新しいxHE-AAC 24 kbpsのバリアントを追加するというものです。

以下は、トランスクリプトに基づいて再構成されたプレースホルダー マッピングです。これは Apple オリジナルのプレイリスト フラグメントではなく、音声でサポートされているコーデック文字列とコード レートの関係のみを保持します。

xHE-AAC -> CODECS: mp4a.40.42 -> 24 kbps variant
HE-AAC  -> CODECS: mp4a.40.5  -> 48 kbps variant
AAC-LC  -> CODECS: mp4a.40.2  -> 64 kbps variant

キーポイント:

  • mp4a.40.42xHE-AAC バリアントに使用する必要がありますCODECSxHE-AAC には、AAC ファミリの以前のコーデックのような逆方向デコード機能がないためです。 -mp4a.40.5HE-AAC の場合、スピーチで示された推奨下限は 48 kbps です。 -mp4a.40.2AAC-LC に対応するこのスピーチでは、既存のバリアントの例として 64 kbps が使用され、AAC-LC は 96 kbps まで低くてもよいという推奨事項が検討されました。
  • 24 kbps xHE-AAC の目的は、低スループットのネットワークと、Apple Watch などのネットワーク パスが制限されているデバイスに再生可能なルートを残すことです。
  • AVPlayer の xHE-AAC に対する HLS サポートは、モノラルとステレオ、フラグメント化された MP4 へのカプセル化、および共通暗号化への暗号化に限定されています。

2. DRC メタデータとスコアを使用してボリュームと選択順序を制御します

(05:4410:28) Apple は常に、HLS オーディオにラウドネスと DRC メタデータを含めることを推奨してきました。 xHE-AAC ではこれがさらに重要になります。CMAF では、xHE-AAC にこれらのメタデータを含めることが要求されており、ANSI/CTA-2075 でも含めることが推奨されています。 DRC を使用すると、システムは信号レベルを継続的に調整し、大音量のパッセージと静かなパッセージの差を減らすことができます。

同じビット レート バジェットの下では、xHE-AAC が AAC-LC よりも再生に適している可能性があります。 AVPlayer が xHE-AAC をサポートするデバイスで優先されるように、ストリーム タグでセッション メンションを使用できます。SCORE。トランスクリプトは、次の選択関係のみをサポートし、特定のスコアや URI を提供しません。

xHE-AAC: 94 kbps, CODECS mp4a.40.42, SCORE 高于 AAC-LC
AAC-LC:  96 kbps, CODECS mp4a.40.2,  SCORE 低于 xHE-AAC

キーポイント:

  • 94 kbps および 96 kbps 対応音声における xHE-AAC と AAC-LC の比較。 -SCOREHLS バリアントの浮動小数点数です。プレーヤーは、プレイ可能なバリアントを除外した後、より高いスコアを使用して優先順位を決定します。
  • xHE-AAC のビットレートは AAC-LC より低いですが、高いですSCOREそれをサポートする AVPlayer がこのバリアントを優先するようにします。
  • xHE-AAC をサポートしていないデバイスでも、AAC-LC バリアントにフォールバックできます。
  • DRC メタデータはエンコード出力の一部であり、プレイリスト属性だけで完了することはできません。

3. FLAC と Apple Lossless を使用してロスレス オーディオを配信する

(11:4412:03 deos/play/wwdc2020/10158/?time=723),12:54) 2020 OS リリースでは、HLS に FLAC と Apple Lossless も追加されます。 FLAC のコーデック文字列は大文字と小文字が区別されますfLaC, Appleロスレスとは、alac。 AVPlayer は両方のすべてのチャネル構成 (最大 8 チャネル) をサポートし、カプセル化も断片化された MP4 に限定され、暗号化は共通暗号化に限定されます。

以下は、トランスクリプトでサポートされているロスレス オーディオ ファクト テーブルですが、完全なプレイリスト エントリではありません。

FLAC codec string: fLaC
Apple Lossless codec string: alac
Stereo lossless at 16-bit / 48 kHz: average data rate close to 1 Mbps

キーポイント:

  • fLaC大文字の使用はこの形式で維持する必要があり、スピーチでは、奇妙に見えるかもしれないが、それは真実であることが特に強調されています。 -alacAppleロスレスを意味します。
  • 16 ビット、48 kHz ステレオ ロスレスの平均ビット レートは 1 Mbps に近く、一般的な AAC オーディオ バリアントよりもはるかに高くなります。
  • ロスレス コーデックは、ロッシー コーデックのように固定ターゲット ビット レートを設定することはできません。オーディオの忠実度に基づいて、必要な量のデータが消費されます。
  • Apple は、ユーザーが十分な帯域幅を持ち、忠実度の高いオーディオを真に期待している場合にのみ、これらの高ビットレートのバリアントを含めることをお勧めします。

4. マルチチャンネルロスレスの前にはマルチチャンネル AAC が必要です

(13:28、[16:00](https://developer.apple.com/vid eos/play/wwdc2020/10158/?time=960)、 17:44) FLAC と Apple Lossless は 5.1 と 7.1 をサポートします。 2 つのコーデックのチャネル レイアウトは異なります。Apple Lossless では、中央チャネルが前、次に左、右になります。 FLACは前に左と右、そして中央があります。チャンネルの順序が間違っていると、間違ったスピーカーからサウンドが出力されます。

マルチチャンネルロスレスのビットレートは急速に増加します。講演での比較は次のとおりです。マルチチャンネル AAC-LC は約 400 kbps ですが、16 ビット、48 kHz マルチチャンネル ロスレスは 2 Mbps を超えています。 24 ビット、96 kHz、6 チャネルで 8 Mbps に達します。 Apple の提案は、マルチチャンネル AAC をマスター プレイリストに追加して、プレーヤーが低ビットレートからマルチチャンネル ロスレスに段階的に拡張できるようにすることです。

以下は、トランスクリプト、非オリジナル プレイリストによってサポートされるプレースホルダー構造です。メディア タグはチャンネル数を宣言する必要があり、プレイリストはステレオ AAC、マルチチャンネル AAC、およびマルチチャンネル ロスレスのラダーを同時に保持する必要があります。GROUP-IDNAMEURIAUDIOまた、特定のバリアント パスは実際のサービスによって名前を付ける必要があり、トランスクリプトではリテラル値が得られません。

media tag: declares channel count
stereo AAC fallback: required for backwards compatibility
multichannel AAC-LC ladder: about 400 kbps
multichannel lossless ladder: over 2 Mbps at 16-bit / 48 kHz
high-end six-channel lossless: up to about 8 Mbps at 24-bit / 96 kHz

キーポイント:

  • メディア タグは、マルチチャンネル デバイスがすべてのチャンネルを完全にデコードできるようにチャンネル数を宣言します。
  • マルチチャンネル AAC ラダーにより、帯域幅に問題のあるユーザーがマルチチャンネル ルートに留まることができます。
  • マルチチャンネルロスレスラダーは、帯域幅と出力デバイスが条件を満たすシナリオに適しています。
  • Apple が下位互換性ルートとしてプレイリストにステレオ AAC を含めることを要求しているため、ステレオ AAC は引き続き存続します。
  • マルチチャンネル AAC が省略された場合、マルチチャンネル出力をサポートするデバイスでは、利用可能な 2 Mbps を超えるロスレス バリアントが 1 つしかない可能性があり、ユーザーの帯域幅がサポートできない場合、再生が停止します。

重要ポイント

1. ポッドキャストとオーディオブックのインターネット速度を下げる

内容: 各プログラムに 24 kbps xHE-AAC オーディオ専用バリアントが追加されました。

実行する価値がある理由: このセッションでは、xHE-AAC が音声再生に適しており、24 kbps という低いデータ レートでも使用できると明示的に述べられています。

開始方法: 断片化された MP4 を使用してモノラルまたはステレオ xHE-AAC を出力し、書き込みますCODECS="mp4a.40.42"、AAC-LC または HE-AAC フォールバックを保持し、エンコード段階でラウドネスと DRC メタデータを追加します。

2. Apple Watch用に別途オーディオラダーを用意する

対処方法: AAC-LC、HE-AAC、または HE-AAC v2 を保持したまま、xHE-AAC をウォッチ側の HLS マニフェストに追加します。

実行する価値がある理由: このセッションでは、データ速度が制限されているデバイスの例として Apple Watch を使用します。関連セッションでは、watchOS 7 オーディオ ストリームに xHE-AAC を使用することも推奨しています。

開始方法: 24 kbps から 160 kbps までの xHE-AAC バリアントを、ウォッチでアクセスできるマニフェストに追加します。古いデバイスの場合は AAC フォールバックを保持します。実際の Apple Watch ネットワーク条件でバリアントの選択とストール動作をテストします。

3. 高忠実度のサブスクリプション ファイルにロスレス HLS を提供する

手順: FLAC または Apple Lossless バリアントを音楽、パフォーマンス録音、またはコースオーディオに追加します。

実行する価値がある理由: Session は、FLAC および Apple Lossless の HLS サポート範囲を提供します。これは、十分な帯域幅を備えた高品質のサービスを明らかに期待しているユーザーに適しています。

開始方法: まずステレオロスレスを実行し、使用しますfLaCまたはalac断片化された MP4 としてカプセル化されたコーデック文字列。ロスレスでは固定のターゲット ビット レートを設定できないため、オンラインにする前に平均ビット レートとピーク ビット レートを評価してください。

4. ホームシアターシーン用のマルチチャンネルオーディオラダーを作成する

機能: 5.1 または 7.1 コンテンツにマルチチャンネル AAC とマルチチャンネル ロスレスを同時に提供します。

価値がある理由: Apple は、高ビットレートのマルチチャネル ロスレスへの適応ラダーとしてマルチチャネル AAC を使用することを明示的に推奨しています。

開始方法: コーデック要件に従ってチャネルの順序を調整し、EXT-X-MEDIA書くCHANNELS、ステレオ AAC フォールバックを保持し、マルチチャンネル出力をサポートするデバイスとステレオのみをサポートするデバイスによってどのバリアントが選択されるかを確認します。

5. プレイリストのチェックを公開プロセスに組み込む

やるべきこと: 公開する前にすべてのオーディオ エンコーディングを確認してくださいCODECSCHANNELSSCORE、DRC メタデータとコンテナーの制限。

実行する価値がある理由: このセッションの核となるリスクはすべてオーサリングに起因します。コーデック文字列の記述が間違っている、DRC の欠落、チャネル ラダーの欠落により、AVPlayer が期待どおりにオーディオ ストリームを選択できなくなります。

開始方法: CI でマスター プレイリストをスキャンし、xHE-AAC が使用されていることを確認しますmp4a.40.42、FLAC を使用します。fLaC、Apple Lossless によって使用されます。alac;次に、HLS オーサリング ツールを使用して、断片化された MP4、共通の暗号化、およびオーディオ グループの組み合わせを確認します。

関連セッション

コメント

GitHub Issues · utterances