音声とビデオに関する FAQ (3): 音声とビデオが同期していません

まとめ

この記事では、オーディオと画像の同期がずれている問題の 5 つの要素、つまりエンコードとカプセル化の段階、ネットワーク送信段階、プレーヤーでの処理段階、ソース コンテンツの生成の問題、トランスコーディングと編集の問題について説明します。これらの要因を目指して、標準化されたツールの使用、強力な送信プロトコルの選択、適応型バッファリングなど、対応するソリューションが提案されています。さらに、最適化されたコーデック、動的ビット レート調整、前方誤り訂正、パケット再送信などを含む、サードパーティのオーディオおよびビデオ サービス プロバイダーである Rujigou のソリューションが紹介されています。最後に、開発者はアプリケーションのパフォーマンスを注意深く監視し、オーディオおよびビデオのサービス プロバイダーと協力して、最高のオーディオとビデオの同期エクスペリエンスを確保する必要があることを強調します。

I.はじめに

オーディオとビデオの開発者にとって、トラブルシューティングの技術的なスキルと方法を習得することは非常に必要です。トラブルシューティングの技術的な方法は、開発者がオーディオとビデオのテクノロジの原理と動作メカニズムをより深く理解し、オーディオとビデオをより深く理解するのにも役立ちます。開発中に遭遇したさまざまな問題。

つまり、リアルタイム インタラクションの分野における長年のテクノロジーの蓄積と顧客サービスの保証に基づいて、リアルタイム インタラクションの分野での共通の問題と経験を共有する一連の記事「ライブ ビデオ テクノロジーの FAQ」を開始します。インタラクティブ テクノロジーに時間を費やし、特定の問題に対する一般的なビジネス知識、一般的な解決策や事例経験を添付します。このシリーズが、開発者が問題を迅速に特定し、適切な解決策を見つけるのに役立つ、一般的なオーディオおよびビデオの小冊子として手元に置かれることを願っています。

このシリーズは引き続き更新され、次のよくある質問が整理されました。

  1. ビデオがスタックする

  2. 高いレイテンシ

  3. 音声と画像が同期していない

  4. ビデオのぼやけた画面、緑色の画面

  5. ビデオの黒い画面

  6. ズームインしたビデオまたは黒いバー

  7. 最初はゆっくりと開けてください

  8. オーディオとビデオのフロー制御

  9. ぼやけたビデオ

  10. カメラを開けません

  11. オーディオエコー

  12. 音量が小さすぎる

  13. オーディオノイズ

  14. 静けさ

  15. マイクの音量変更

前回の記事では、オーディオとビデオの送信中の長い遅延の問題について説明しました。まず、遅延の概念を詳しく紹介し、デバイス側の遅延、ネットワーク伝送の遅延、サーバーの遅延など、遅延の原因となる可能性のあるさまざまなリンクを紹介します。ネットワーク問題のトラブルシューティング、テクノロジースタックの予想される遅延が一貫しているかどうかの検証、音声やビデオの送信にUDPを使用するなど、一連のトラブルシューティングとソリューションを提供します。これらの方法を通じて、読者はオーディオとビデオの伝送における高遅延の問題をよりよく理解し、解決することができます。

しかし、高遅延の問題を解決した後、別の課題に直面する可能性があります。たとえば、オーディオとビデオの非同期は、多くの開発者が頻繁に遭遇する厄介な問題です。オーディオとビデオのデータが完全に同期していないと、ビデオの再生が非常に不自然になり、視聴者の視聴体験が低下します。したがって、その理由を理解し、対応する解決策を習得することが特に重要です。

この記事は、「リアルタイム インタラクティブ テクノロジ FAQ」シリーズの 3 番目の記事です。ハードウェア機器、コーデック処理、ネットワーク伝送などに起因する同期ずれの可能性も含め、音声と映像が同期しない原因を徹底的に分析します。同時に、オーディオとビデオの同期がずれている問題を特定、トラブルシューティング、解決するための一連の方法を提供し、ユーザーがオーディオとビデオのコンテンツを視聴するときにより良いエクスペリエンスを確実に得られるようにします。対応するソリューションを開発者に提供します。

2. 音声と映像の非同期の基本概念と性能

オーディオとビデオの同期のずれ: アクセントの同期ずれ、または AV 同期とも呼ばれます。これは、ビデオの視聴時に画像と音声の間に明らかな時間差があり、ユーザーの音声の中断につながることを意味します。視聴体験。具体的なパフォーマンスは次のとおりです。

  • 第 1 の音と第 2 の影: 音が映像の前に現れるため、観客は音は聞こえますが、対応する映像はまだ見ていません。

  • サウンドの前にムービー: サウンドの前に画像が表示されるため、観客は最初に画像を見て、後で対応するサウンドを聞くことになります。

3. タイムスタンプ - オーディオとビデオの同期のずれに影響を与える中心的な要素

バトンの役割:タイムスタンプは、オーディオとビデオの処理において、オーディオとビデオをいつ、どのように再生するかを決定する「バトン」の役割を果たします。タイムスタンプ処理の正確性と継続性は、オーディオとビデオの同期を確保し、ユーザーにシームレスで高品質のオーディオとビデオのエクスペリエンスを提供するための鍵となります。タイムスタンプが不正確または不連続であると、再生にさまざまな問題が発生する可能性があります。その中で最も明白で問題となるのは、サウンドと画像の同期のずれです。

その他の問題を解決するための基礎: タイムスタンプは、オーディオとビデオの同期のずれに関連するその他の問題を解決するための鍵となります。たとえば、ネットワークの変動によるパケットの遅延や損失は、パケットの並べ替えや補償にタイムスタンプを使用することで対処できます。正しく連続したタイムスタンプは、これらの操作に必要な情報を提供します。

他のテクノロジーとの相互作用: タイムスタンプは、バッファリング、前方誤り訂正、適応ストリーミングなど、多くのオーディオおよびビデオ テクノロジーの基礎です。これらはすべて、オーディオおよびビデオ ストリームの送信と再生を最適化および同期するために、正確かつ継続的なタイムスタンプに依存しています。

タイムスタンプは、通常「PTS」(プレゼンテーション タイム スタンプ)と表され、サンプルがいつ提示または再生されるべきかを示すためにオーディオまたはビデオ サンプルに添付されるマークです。これは、データがリアルタイムで送信されているかどうかに関係なく、プレーヤーがタイムスタンプに基づいてオーディオ フレームとビデオ フレームを正しく同期して再生できることを意味します。

オーディオとビデオの分野では、タイムスタンプは重要な概念です。オーディオおよびビデオ コンテンツは、作成、送信、再生中の同期を確保するためにタイムスタンプに依存しています。タイムスタンプは、各フレーム (オーディオまたはビデオ) に関連付けられ、そのフレームをいつ再生するかを示すマーカーです。理想的には、再生時にサウンドと画像が同期するように、オーディオとビデオのタイムスタンプが厳密に一致している必要があります。適切に処理しないと、ビデオとオーディオの同期のずれ、フレームのドロップ、またはその他の関連問題が発生する可能性があります。

4. 音と映像がずれる原因

オーディオとビデオの同期問題の核心は「タイムスタンプ」にあります。オーディオとビデオが同期していない場合、その背後にある内部ロジックは次のとおりです。オーディオとビデオの処理、送信、または再生の特定のリンクで、オーディオとビデオ間のタイムスタンプの一致が破壊されます。これは、ネットワーク遅延、コーデック遅延、プレーヤーの処理ポリシー、ソース コンテンツの問題など、さまざまな理由が原因である可能性があります。

タイムスタンプが原因でオーディオとビデオが同期しない主な理由は次のとおりです。

  1. 不正確なタイムスタンプ: 録音、キャプチャ、エンコード、またはパッケージ化中にオーディオとビデオのタイムスタンプが正確に設定されていない場合、再生時に同期されません。

  2. タイムスタンプ処理: 送信中またはストリーミング中、特にリアルタイムのオーディオおよびビデオ通信やライブ ブロードキャストでは、ネットワークの変動により一部のデータ パケットの遅延や損失が発生する可能性があります。これらのパケットに重要なタイムスタンプ情報が含まれている場合、オーディオとビデオの同期が失われる可能性があります。

  3. プレーヤーの処理方法: プレーヤーは、タイムスタンプに基づいてオーディオ フレームとビデオ フレームをデコードしてレンダリングする必要があります。プレーヤーがこれらのタイムスタンプを正しく解析また​​は使用できない場合、またはバッファリングやパケット損失などに対処するときにタイムスタンプの一貫性を維持できない場合も、オーディオとビデオが同期しなくなります。

  4. つまり、オーディオとビデオの同期を確保する鍵は、オーディオとビデオの処理チェーン全体でタイムスタンプを正しく生成、維持、使用することです。タイムスタンプの一貫性を損なう何らかの要因により、音声とビデオの同期が失われる可能性があります。

非同期オーディオとビデオは基本的に、オーディオ フレームとビデオ フレームのタイムスタンプの不一致によって発生します。これは、作成、送信、再生に至る、オーディオおよびビデオ コンテンツのライフ サイクルのどの段階でも発生する可能性があります。この同期外れを修正するには、通常、オーディオ フレームとビデオ フレームのタイムスタンプが再び一致するように、影響を受けるリンク上で調整または同期操作を行う必要があります。

上記の要素に基づいたいくつかの提案と解決戦略を次に示します。

エンコードとパッケージ化のフェーズ:

  • 標準化されたツール: 実績があり広く認知されているコーディング ツールとパッケージ化ツールを使用すると、タイムスタンプ エラーのリスクが軽減されます。
  • カプセル化形式の選択: アプリケーション シナリオに適したカプセル化形式を理解し、選択します。たとえば、ストリーミングの場合は HLS の方が適切かもしれません。

ネットワーク送信

  • 強力なトランスポート プロトコル: オーディオとビデオの同期サポートが組み込まれている RTMP や WebRTC などのプロトコルを使用します。
  • 前方誤り訂正: 前方誤り訂正技術を適用して、ネットワークの問題によるパケット損失を軽減します。
  • アダプティブストリーミング: ネットワーク状況に基づいてビットレートと品質を調整し、パケット損失と遅延を削減します。

プレーヤーの操作:

  • 成熟したプレーヤーを選択する: 成熟したプレーヤーは、タイムスタンプ処理に対する耐障害性が強い傾向があります。

  • アダプティブ バッファリング: バッファ長を動的に調整して、同期の問題を軽減しながらスムーズな再生を保証します。

  • ハードウェア アクセラレータ チェック: 使用されているハードウェア アクセラレータがプレーヤーと互換性があり、タイムスタンプの順序を正しく処理していることを確認します。

ソースコンテンツの問題:

  • 録音デバイスを調整する: 録音時にカメラとマイクが同期していることを確認します。

  • 録画を監視: 録画をリアルタイムで監視し、同期していない問題を迅速に特定して解決します。

トランスコーディングと編集:

  • 非破壊編集: 元のタイムスタンプの変更を避け、オーディオとビデオを非破壊で処理できる編集ソフトウェアを選択します。

  • 標準のトランスコーディング ツール: エンコードおよびパッケージ化の段階と同様に、実績のあるトランスコーディング ツールを選択します。

オーディオとビデオが同期していることを確認することは、オーディオとビデオの処理チェーン全体で複数の段階が関与する複雑なタスクです。ただし、問題の原因と思われる原因を理解し、適切な技術的戦略を採用することで、非同期の問題を最小限に抑えたり、排除したりすることができます。

5、オーディオとビデオが同期していないソリューション

以下では、各段階でオーディオとビデオの同期に影響を与える要因を分解し、さまざまな要因に基づいていくつかの提案と解決策を提供しますタイムスタンプの正確さと連続性が鍵となります。

理由 1:エンコードおよびカプセル化の段階でオーディオとビデオの非同期の問題が発生する

原因:

  • タイムスタンプの不正確な生成: 記録、エンコード、またはパッケージ化中に、ソースデバイスまたはソフトウェアがタイムスタンプを正しく生成しない場合、同期の問題が発生する可能性があります。

  • カプセル化形式: MP4、MKV、TS などの異なるカプセル化形式では、タイムスタンプの処理方法が異なる場合があり、不適切な場合は非同期が発生する可能性があります。

解決:

  • 標準化されたツール:実績があり広く認知されているコーディング ツールとパッケージ化ツールを使用すると、タイムスタンプ エラーのリスクが軽減されます。FFmpeg、サードパーティのオーディオおよびビデオ メーカーのコーデック ツールなど: インスタント構築。

  • カプセル化形式の選択:アプリケーション シナリオに適したカプセル化形式を理解し、選択します。たとえば、ストリーミングの場合は、MPEG-DASH または HLS の方が適切な場合があります。

理由 2:ネットワーク送信中に音声とビデオが同期しない

原因:

  • データ パケットの損失: ネットワークが不安定な場合、オーディオまたはビデオのデータ パケットが失われる可能性があり、その結果、プレーヤーが受信するタイムスタンプ情報が不連続になります。

  • パケットの遅延: ネットワークの変動や輻輳により、オーディオまたはビデオのパケットが遅延し、再生時にタイムスタンプが不連続になる可能性があります。

  • 再送信メカニズム: 失われたパケットを補うために、一部のプロトコルはパケットを再送信する場合があり、その結果、タイムスタンプが順序どおりでなかったり、重複したりする可能性があります。

解決:

  • 強力な送信プロトコル:オーディオとビデオの同期サポートが組み込まれている RTMP や WebRTC などのオープン ソース プロトコルを使用します。

  • 前方誤り訂正:前方誤り訂正技術を適用して、ネットワークの問題によるパケット損失を軽減します。

  • アダプティブ ストリーミング:ネットワーク状況に基づいてビットレートと品質を調整し、パケット損失と遅延を削減します。

理由 3:プレーヤーの処理段階によって引き起こされるオーディオとビデオの同期外れの問題

原因:

  • バッファリング戦略: スムーズな再生エクスペリエンスを提供するために、プレーヤーは一定量のオーディオ データとビデオ データをキャッシュすることがあります。これは、オーディオとビデオの同期に影響を与える可能性があります。

  • タイムスタンプの解析が正しくない: プレーヤーがオーディオおよびビデオ ストリームのタイムスタンプを解析するときに、エンコード、カプセル化、またはその他の問題によりエラーが発生する可能性があります。

  • ハードウェア アクセラレーション: 一部のハードウェア アクセラレーション デコーダは、オーディオ ストリームとビデオ ストリームを処理するときに標準のタイムスタンプ処理ロジックに完全には従わず、同期が失われる場合があります。

解決:

  • 成熟したプレーヤーを選択する: 成熟したプレーヤーは、タイムスタンプ処理に対する耐障害性が強い傾向があります。

  • アダプティブ バッファリング: バッファ長を動的に調整して、同期の問題を軽減しながらスムーズな再生を保証します。

  • ハードウェア アクセラレータ チェック: 使用されているハードウェア アクセラレータがプレーヤーと互換性があり、タイムスタンプを正しく処理していることを確認します。

理由 4:ソース コンテンツによって生成されたオーディオとビデオが同期していません

原因:

  • 録画中の非同期: 録画プロセス中にオーディオとビデオのソース自体が同期していない場合、タイムスタンプが正確であっても、再生中にオーディオとビデオは依然として同期していません。

解決:

  • 録音デバイスを調整する: 録音時にカメラとマイクが同期していることを確認します。

  • 録画を監視: 録画をリアルタイムで監視し、同期していない問題を迅速に特定して解決します。

理由 5:トランスコーディングと編集

原因:

  • ポスト編集またはトランスコーディングのプロセスで、オーディオ トラックとビデオ トラックが分離されて個別に処理されると、タイムスタンプが不整合になる可能性があります。

  • トランスコーディング ツールや編集ソフトウェアは元のタイムスタンプを変更または再生成する可能性があり、適切に処理しないと同期が取れなくなる問題が発生する可能性があります。

解決:

  • 非破壊編集: 元のタイムスタンプの変更を避け、オーディオとビデオを非破壊で処理できる編集ソフトウェアを選択します。

  • 標準のトランスコーディング ツール: エンコードおよびパッケージ化の段階と同様に、実績のあるトランスコーディング ツールを選択します。

上記の要因を考慮すると、オーディオとビデオの同期を維持するには、オーディオとビデオの処理チェーン全体にわたってタイムスタンプを継続的かつ正確に管理および保守する必要があります。

6. オーディオおよびビデオのメーカー向けソリューション - オーディオとビデオの同期ずれの問題

ZEGO ( https://www.zego.im/ )などのサードパーティのオーディオおよびビデオ サービスを使用してオーディオおよびビデオ アプリケーションを構築する場合、オーディオとビデオの同期に関連する多くの問題は、実際には、サービスアップ。サードパーティ サービスには通常、このような問題に対処するための専用のチームとテクノロジがあり、SDK とプラットフォームに複数の解決戦略を実装しています。オーディオ ビデオ SDK の中核となる戦略は、タイム スタンプの送信を正確に保つことです。以下では、オーディオとビデオの同期がずれている問題を解決するために、Instant などのオーディオおよびビデオ メーカーを紹介します。たとえば、操作手順は次のとおりです。

1 トラブルシューティング

  1. カスタム ビデオ キャプチャを使用する場合は、カスタム ビデオ キャプチャのタイムスタンプが正しいかどうか、特にタイムスタンプの単位が正しいかどうかを確認してください (SDK では Unix 標準のタイムスタンプが使用されており、単位はミリ秒です)。内部的には、ZEGO SDK は、提供された収集タイムスタンプに従ってオーディオとビデオを同期します。

  2. キャプチャに仮想カメラ (XX Live Assistant など) が使用されている場合、仮想カメラの取得に遅延が大きすぎる可能性があり、ZEGO SDK がこの遅延を取得できず、音声とビデオの出力に問題が発生する可能性があります。同期します。このような場合は、ZEGO公式サイトのZEGOテクニカルサポートにお問い合わせいただくと、分析・確認の上、高度なエンジン設定による修正を行うことができます。

2 Starmapで品質を監視する

ZEGO 管理コンソール ( https://console.zego.im/ ) のスター マップ( https://console.zego.im/ )を使用して 、音声通話とビデオ通話の品質を追跡します。つまり、ZEGO スター マップ プラットフォームは、問題箇所の診断、品質とエクスペリエンスの洞察、業務運営分析、リアルタイムの監視と警報などのコア モジュールを含む、フルリンクのオーディオおよびビデオ品質監視を提供します。開発者がビジネスの実行を多面的に監視できるよう、豊富な市場データを提供します。

3 技術戦略

ZEGO ( https://www.zego.im/ ) は、リアルタイム音声・映像技術を提供する企業として、高品質な音声・映像伝送を提供するために多くの先進的な技術戦略を持っています。

  1. 最適化されたコーデック: Nagoo およびその他のオーディオおよびビデオ メーカーは通常、業界標準のコーデックを統合または最適化し、タイムスタンプの正確な生成とデコードを保証します。

  2. 動的なビット レート調整: ネットワーク状況の変化に応じて、内蔵 SDK がビット レートを動的に調整して、オーディオ データとビデオ データの連続性を確保し、パケット損失や遅延を最小限に抑えます。

  3. 前方誤り訂正とパケット再送信: ネットワーク送信中のデータ損失を補うために、Jigou などのサービスは前方誤り訂正とデータ パケット再送信メカニズムを実装しており、これによりオーディオとビデオの同期を復元できます。

  4. 階層コーディングと大小フロー戦略:構造化された階層コーディングと大小フロー戦略により、送信者はさまざまな解像度のストリームを送信し、ネットワーク状況に応じて再生するストリームを動的に選択することで、ビデオの滑らかさを確保し、また、オーディオとビデオの同期。

  5. インテリジェントなルーティングとマルチパス伝送: ネットワーク遅延とパケット損失を最小限に抑えるために、クラウド サービスを使用してインテリジェント ルーティングまたはマルチパス伝送を行うことができます。

7. 結論

Instant Go などのサードパーティのオーディオおよびビデオ サービスを使用すると、開発者はオーディオとビデオの同期の問題を大幅に簡素化できます。これらのサービスは、テクノロジーとプラットフォームにさまざまな戦略と最適化を実装し、エンド ユーザーにプレミアムなオーディオとビデオのエクスペリエンスを提供します。ただし、これらの高度なソリューションにもかかわらず、開発者はアプリケーションのパフォーマンスを注意深く監視し、オーディオおよびビデオのサービス プロバイダーと協力して、最高のオーディオとビデオの同期エクスペリエンスを確保する必要があります。

ここでは、音声とビデオが同期していない問題の トラブルシューティングと解決策を紹介します。次の記事では、ビデオのぼやけとグリーン スクリーン について詳しく説明します 。

おすすめ

転載: blog.csdn.net/ZEGO123/article/details/132347896