Überblick
High-Efficiency Video Coding (HEVC), auch bekannt als H.265, ist ein Videokomprimierungsstandard, der die Videodateigröße reduziert und eine qualitativ hochwertigere Wiedergabe ermöglicht.
Das Brightcove Native SDK für Android verwendet den folgenden HEVC-Auswahlprozess:
Auswahl der HEVC-Quelle
Der Auswahlprozess für die HEVC-Quelle beginnt, nachdem Sie mit Brightcove . eine Videoanforderung gestellt haben Catalog
.
Abhängig von Ihrer Kontokonfiguration wird die Catalog
Antwort kann mehrere Quellen mit oder ohne HEVC-Wiedergabe enthalten. Hier ist ein Beispiel:
"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"
}
]
In diesem Beispiel gibt es vier DASH-Quellen:
- Eine Nicht-HEVC-HTTP-Quelle
- Eine Nicht-HEVC-HTTPS-Quelle
- Eine HEVC-HTTP-Quelle
- Eine HEVC-HTTPS-Quelle
Beachten Sie, dass HEVC-Quellen die Zeichenfolge . enthalten hvc
in der URL.
Die Quellenauswahl des nativen SDK für Android bevorzugt HEVC-Quellen. Im obigen Beispiel wird die HEVC-HTTPS-Quelle ausgewählt.
Das Native SDK fährt mit dem Standardauswahlprozess fort, wie in der Android: Quellenauswahl dokumentieren:
- Bevorzuge HTTPS gegenüber HTTP
- Bevorzuge DASH gegenüber HLS
- Wenn Sie HLS für die Wiedergabe auswählen, bevorzugen Sie die höchste verfügbare HLS-Version
Auswahl der HEVC-Wiedergabe
Abhängig von Ihren Aufnahmekonfigurationen kann die HEVC-Quelle in unterschiedlichen Darstellungen enthalten sein. Sie können Folgendes haben:
Nur HEVC-Versionen
Wenn die Wiedergaben der Videoquelle nur HEVC-Codecs aufweisen, ist keine Wiedergabeauswahl beteiligt. Der ExoPlayer wählt anhand der Gerätefunktionen und der verfügbaren Bandbreite die geeignete Wiedergabe aus.
Eine Mischung aus HEVC und anderen Codecs
Wenn die Videoquelle Wiedergaben mit einer Mischung aus HEVC und anderen Codecs (wie AVC) enthält, wird ein Wiedergabeauswahlprozess aufgerufen. Wenn das Native SDK die Quelle in den ExoPlayer lädt, führt es eine SelectionOverride für die Videowiedergabe HEVC anderen Codecs vorziehen.
Bei einem Video, dessen Wiedergabeformate vom Gerät unterstützt werden, sehen Sie hier den Wiedergabeprozess:
- Das native SDK wählt alle HEVC-Darstellungen aus.
- Es ignoriert Nicht-HEVC-Darstellungen, die ein vorhandenes HEVC mit derselben Auflösung duplizieren.
Dies zwingt ExoPlayer in den meisten Fällen dazu, HEVC zu bevorzugen. Hier sind zwei mögliche Szenarien:
Codec-Mix-Duplizierung
In diesem Szenario werden die meisten Auflösungen des HEVC- und AVC-Codecs dupliziert. Zum Beispiel:
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">
Angesichts der obigen Videowiedergaben wählt das Brightcove Natvie SDK die folgenden Wiedergaben aus:
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">
Beachten Sie, dass nur eine AVC-Wiedergabe ausgewählt wurde, da ihre Auflösung keine vorhandene HEVC-Wiedergabe dupliziert.
Halb und halb
In diesem Szenario gibt es Wiedergaben mit niedrigerer Auflösung mit dem AVC-Codec und Wiedergaben mit höherer Auflösung mit dem HVC-Codec. Zum Beispiel:
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">
Da es in diesem Fall keine AVC-Codecs mit Auflösungen gibt, die HEVC-Wiedergaben duplizieren, wählt das Native SDK alle Wiedergaben aus, sodass ExoPlayer die Wiedergaben basierend auf der verfügbaren Bandbreite auswählen kann.
Das native SDK erzwingt in diesem Szenario nicht in allen Fällen die HEVC-Auswahl, um zu vermeiden, dass die niedrigste Wiedergabe auf eine HEVC-Wiedergabe mit hoher Bitrate begrenzt wird. Dies würde möglicherweise zu einer schlechten Benutzererfahrung mit einer schlechten Netzwerkverbindung führen.