サポート問い合わせ先| システムステータス
ページコンテンツ

    Android用ネイティブSDKを使用したHEVCの選択

    このトピックでは、Brightcove Native SDK forAndroidがHEVCソースとレンディションを選択する方法を学習します。

    概要

    High-Effiency Video Coding(HEVC)は、H.265とも呼ばれ、ビデオファイルサイズを縮小するビデオ圧縮規格で、より高品質な再生を可能にします。

    Android 版 Brightcove ネイティブ SDK では、次の HEVC 選択プロセスが使用されます。

    1. HEVC ソース選択
    2. HEVC レンディションの選択

    HEVC ソース選択

    HEVC ソース選択プロセスは、CatalogBrightcoveを使用して動画を要求した後に開始されます。

    アカウント設定によっては、HEVC レンディションの有無にかかわらず、Catalog応答に複数のソースが含まれる場合があります。例を次に示します。

     "sources": [
      {
        "type": "application/dash+xml",
        "src": "http://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=ZYZ",
        "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
      },
      {
        "type": "application/dash+xml",
        "src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=XYZ",
        "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
      },
      {
        "type": "application/dash+xml",
        "src": "http://manifest.prod.boltdns.net/manifest/v2/dash/live-baseurl/clear/avc1_hvc1_mp4a/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=XYZ",
        "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
      },
      {
        "type": "application/dash+xml",
        "src": "https://manifest.prod.boltdns.net/manifest/v2/dash/live-baseurl/clear/avc1_hvc1_mp4a/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=XYZ",
        "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
      }
    ]

    この例では、次の 4 つの DASH ソースがあります。

    • 1つの非 HEVC HTTP ソース
    • 1つの非HEVCHTTPSソース
    • 1つのHEVC HTTPソース
    • 1つのHEVC HTTPSソース

    HEVC ソースには、URL hvcに文字列が含まれていることに注意してください。

    Android 用ネイティブ SDK ソースセレクタは HEVC ソースを好みます。上記の例では、HEVC HTTPS ソースを選択します。

    ネイティブ SDK は、 Android で定義されているデフォルトの選択プロセスを続行します。ソース選択ドキュメント :

    1. HTTPよりHTTPSを優先する
    2. HLSよりDASHを好む
    3. 再生する HLS を選択する場合は、利用可能な最高バージョンの HLS を優先します。

    HEVC レンディションの選択

    取り込みの設定によっては、HEVC ソースが異なるレンディションに含まれている場合があります。次のものがあるかもしれません。

    HEVC レンディションのみ

    ビデオソースのレンディションに HEVC コーデックしかない場合、レンディションの選択は行われません。ExoPlayer は、デバイスの機能と使用可能な帯域幅に応じて、適切なレンディションを選択します。

    HEVC と他のコーデックのミックス

    ビデオソースに HEVC と他のコーデック(AVC など)が混在したレンディションがある場合、レンディション選択プロセスが呼び出されます。ネイティブ SDK がソースを ExoPlayer にロードすると、ビデオレンディションの SelectionOverride が実行され、他のコーデックよりも HEVC が優先されます

    レンディションフォーマットがデバイスでサポートされているビデオの場合、レンディションプロセスは次のとおりです。

    1. ネイティブ SDK は、すべての HEVC レンディションを選択します。
    2. これは、同じ解像度で既存の HEVC を複製する HEVC 以外のレンディションを無視します。

    これにより、ほとんどの場合ExoPlayerがHEVCを好むことが強制されます。考えられるシナリオは 2 つあります。

    コーデックミックス複製

    このシナリオでは、HEVC および AVC コーデックの解像度がほとんど複製されます。例は次のとおりです。

    AVC <Representation bandwidth="453000" height="270" width="480">
    AVC <Representation bandwidth="704000" height="360" width="640">
    AVC <Representation bandwidth="903000" height="360" width="640">
    AVC <Representation bandwidth="1202000" height="540" width="960">
    AVC <Representation bandwidth="1989000" height="720" width="1280">
    AVC <Representation bandwidth="2478000" height="720" width="1280">
    AVC <Representation bandwidth="3458000" height="720" width="1280">
    AVC <Representation bandwidth="3761000" height="720" width="1280">
    HVC <Representation bandwidth="304000" height="270" width="480">
    HVC <Representation bandwidth="548000" height="360" width="640">
    HVC <Representation bandwidth="993000" height="432" width="768">
    HVC <Representation bandwidth="1301000" height="576" width="1024">
    HVC <Representation bandwidth="1605000" height="720" width="1280">
    HVC <Representation bandwidth="2809000" height="720" width="1280">
    

    上記の動画レンディションを考慮すると、Brightcove Natvie SDK は次のレンディションを選択します。

    AVC <Representation bandwidth="1202000" height="540" width="960">
    HVC <Representation bandwidth="304000" height="270" width="480">
    HVC <Representation bandwidth="548000" height="360" width="640">
    HVC <Representation bandwidth="993000" height="432" width="768">
    HVC <Representation bandwidth="1301000" height="576" width="1024">
    HVC <Representation bandwidth="1605000" height="720" width="1280">
    HVC <Representation bandwidth="2809000" height="720" width="1280">
    

    AVC レンディションは既存の HEVC レンディションと重複しないため、AVC レンディションが 1 つだけ選択されていることに注意してください。

    半分と半分

    このシナリオでは、AVC コーデックを使用した低解像度のレンディションと、HVC コーデックを使用した高解像度のレンディションがあります。例は次のとおりです。

    AVC <Representation bandwidth="453000" height="270" width="480">
    AVC <Representation bandwidth="704000" height="360" width="640">
    AVC <Representation bandwidth="903000" height="360" width="640">
    AVC <Representation bandwidth="1202000" height="540" width="960">
    AVC <Representation bandwidth="3761000" height="720" width="1280">
    HVC <Representation bandwidth="1301000" height="576" width="1024">
    HVC <Representation bandwidth="1605000" height="720" width="1280">
    HVC <Representation bandwidth="2809000" height="720" width="1280">
    

    この場合、HEVC レンディションを複製する解像度を持つ AVC コーデックがないため、ネイティブ SDK はすべてのレンディションを選択し、ExoPlayer が使用可能な帯域幅に基づいてレンディションを選択できます。

    Native SDK は、このシナリオのすべてのケースで HEVC 選択を強制しません。これは、最も低いレンディションを高ビットレートの HEVC レンディションにキャップすることを回避します。これにより、ネットワーク接続が悪いと、ユーザーエクスペリエンスが悪くなる可能性があります。


    ページの最終更新日04 Oct 2021