As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como o iOS escolhe a resolução e a taxa de quadros da câmera
A câmera gerenciada pelo SDK de transmissão otimiza sua resolução e taxa de quadros (frames-per-secondou FPS) para minimizar a produção de calor e o consumo de energia. Esta seção explica como acontece a seleção da resolução e da taxa de quadros para ajudar aplicações no host a otimizarem seus casos de uso.
Ao criar um IVSLocalStageStream
com um IVSCamera
, a câmera é otimizada para uma taxa de quadros de IVSLocalStageStreamVideoConfiguration.targetFramerate
e uma resolução de IVSLocalStageStreamVideoConfiguration.size
. A chamada de IVSLocalStageStream.setConfiguration
atualiza a câmera com valores mais novos.
Prévia da câmera
Se você criar uma prévia de um IVSCamera
sem anexá-lo a um IVSBroadcastSession
ou IVSStage
, o padrão será uma resolução de 1080p e uma taxa de quadros de 60 FPS.
Transmissão de um palco
Ao usar um IVSBroadcastSession
para transmitir um IVSStage
, o SDK tenta otimizar a câmera com uma resolução e uma taxa de quadros que atendam aos critérios de ambas as sessões.
Por exemplo, se a configuração de transmissão estiver definida para ter uma taxa de quadros de 15 FPS e uma resolução de 1080p, enquanto o palco tiver uma taxa de quadros de 30 FPS e uma resolução de 720p, o SDK selecionará uma configuração de câmera com uma taxa de quadros de 30 FPS e uma resolução de 1080p. O IVSBroadcastSession
eliminará todos os outros quadros da câmera e o IVSStage
ajustará a escala da imagem de 1080p para 720p.
Se uma aplicação do host planeja usar ambos IVSBroadcastSession
e IVSStage
em conjunto com uma câmera, recomendamos que as propriedades targetFramerate
e size
das respectivas configurações correspondam. Uma incompatibilidade pode fazer com que a câmera se reconfigure durante a captura de vídeo, o que causará um breve atraso na entrega da amostra de vídeo.
Se a presença de valores idênticos não corresponder ao caso de uso da aplicação do host, criar primeiro a câmera de maior qualidade evitará que a câmera se reconfigure quando a sessão de qualidade inferior for adicionada. Por exemplo, se você transmitir em 1080p e 30 FPS e depois entrar em um palco definido para 720p e 30 FPS, a câmera não se reconfigurará e o vídeo continuará sem interrupções. Isso ocorre porque 720p é menor ou igual a 1080p e 30 FPS é menor ou igual a 30 FPS.
Taxas de quadros, resoluções e taxas de proporções arbitrárias
A maioria dos hardwares de câmera é capaz de corresponder exatamente aos formatos comuns, como 720p a 30 FPS ou 1080p a 60 FPS. Contudo, não é possível corresponder exatamente a todos os formatos. O SDK de transmissão escolhe a configuração da câmera com base nas seguintes regras (em ordem de prioridade):
-
A largura e a altura da resolução são maiores ou iguais à resolução desejada, mas dentro dessa restrição, a largura e a altura são as menores possíveis.
-
A taxa de quadros é maior ou igual à taxa de quadros desejada, mas dentro dessa restrição, a taxa de quadros é a mais baixa possível.
-
A taxa de proporção corresponde à proporção desejada.
-
Se houver vários formatos correspondentes, o formato com o maior campo de visão será usado.
Veja dois exemplos a seguir:
-
A aplicação do host está tentando transmitir em 4K a 120 FPS. A câmera selecionada é compatível somente com 4K a 60 FPS ou 1080p a 120 FPS. O formato selecionado será 4k a 60 FPS, porque a regra de resolução tem prioridade superior em relação à regra de taxa de quadros.
-
Uma resolução irregular é solicitada, 1910x1070. A câmera usará 1920x1080. Cuidado: escolher uma resolução como 1921x1080 fará com que a câmera aumente para a próxima resolução disponível (como 2592x1944), o que acarretará em penalidade na largura de banda da CPU e da memória.
E quanto ao Android?
O Android não ajusta sua resolução ou taxa de quadros em tempo real, como o iOS, portanto, isso não afeta o SDK de Transmissão do Android.