Codecs de mídia
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A partir do Android 10 (nível 29 da API) e versões mais recentes, há métodos em
MediaCodecInfo
que
revelam mais informações sobre um codec:
isSoftwareOnly()
- Retorna true se o codec for executado apenas no software. Os codecs de software não garantem o desempenho da renderização.
isHardwareAccelerated()
- Retorna true se um codec for acelerado pelo hardware.
isVendor()
- Retorna true se o codec for fornecido pelo fornecedor do dispositivo ou false, se fornecido pela plataforma Android.
isAlias()
MediaCodecList
pode conter entradas adicionais para o mesmo codec subjacente
usando um nome de codec alternativo (alias). Esse método retorna true se o codec da entrada for um alias para outro codec.
Além disso, MediaCodec.getCanonicalName()
retorna o nome do codec subjacente para codecs criados por um alias.
Um ponto de desempenho representa a capacidade de um codec de renderizar vídeo em uma altura, largura e taxa de quadros específicas. Por exemplo, o ponto de desempenho UHD_60
representa um vídeo em Ultra HD (3.840 x 2.160 pixels) renderizado a 60 quadros por segundo.
O método
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
retorna uma lista de
PerformancePoint
que o codec pode renderizar ou capturar.
Você pode verificar se um determinado PerformancePoint
abrange outro chamando
PerformancePoint.covers(PerformancePoint)
.
Por exemplo, UHD_60.covers(UHD_50)
retorna "true".
Uma lista de pontos de desempenho é fornecida para todos os codecs acelerados por hardware.
Ela pode ser uma lista vazia se o codec não atender ao ponto de desempenho padrão mais baixo.
Observação: os dispositivos que foram atualizados para o Android 10 (API de nível 29) e versões mais recentes sem atualizar a imagem do fornecedor não terão dados de ponto de desempenho, porque esses dados vêm do HAL do fornecedor. Nesse caso, getSupportedPerformancePoints()
retorna nulo.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-27 UTC."],[],[],null,["Beginning with Android 10 (API level 29) and higher, there are methods in\n[`MediaCodecInfo`](/reference/android/media/MediaCodecInfo) that\nreveal more information about a codec:\n\n[`isSoftwareOnly()`](/reference/android/media/MediaCodecInfo#isSoftwareOnly)\n: Returns true if the codec runs in software only. Software codecs make no\n guarantees about rendering performance.\n\n[`isHardwareAccelerated()`](/reference/android/media/MediaCodecInfo#isHardwareAccelerated)\n: Returns true if a codec is accelerated by hardware.\n\n[`isVendor()`](/reference/android/media/MediaCodecInfo#isVendor)\n: Returns true if the codec is provided by the device vendor or false if provided\n by the Android platform.\n\n[`isAlias()`](/reference/android/media/MediaCodecInfo#isAlias)\n: `MediaCodecList` may contain additional entries for the same underlying codec\n using an alternate codec name/s (alias/es). This method returns true if the\n codec in this entry is an alias for another codec.\n\nIn addition,\n[`MediaCodec.getCanonicalName()`](/reference/android/media/MediaCodecInfo#getCanonicalName)\nreturns the underlying codec name for codecs created via an alias.\n\nPerformance Points\n\nA *performance point* represents a codec's ability to render video at a specific\nheight, width and frame rate. For example, the `UHD_60` performance point\nrepresents Ultra High Definition video (3840x2160 pixels) rendered at 60 frames\nper second.\n\nThe method\n[`MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()`](/reference/android/media/MediaCodecInfo.VideoCapabilities#getSupportedPerformancePoints())\nreturns a list of\n[`PerformancePoint`](/reference/android/media/MediaCodecInfo.VideoCapabilities.PerformancePoint)\nentries that the codec can render or capture.\n\nYou can check whether a given `PerformancePoint` covers another by calling\n[`PerformancePoint.covers(PerformancePoint)`](/reference/android/media/MediaCodecInfo.VideoCapabilities.PerformancePoint#covers(android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint)).\nFor example, `UHD_60.covers(UHD_50)` returns true.\n\nA list of performance points is provided for all hardware-accelerated codecs.\nThis could be an empty list if the codec does not meet even the lowest standard\nperformance point.\n\nNote that devices which have been upgraded to Android 10 (API level 29) and higher without\nupdating the vendor image will not have performance point data, because this\ndata comes from the vendor HAL. In this case, `getSupportedPerformancePoints()`\nreturns null."]]