Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
Alto uso de CPU de Canvas CaptureStream

Contexto

He estado trabajando en la creación de una función de fondos virtuales para entornos web y, como parte de eso, estoy tomando una transmisión de cámara web (MediaStreamTrack), procesando imágenes en WebGL y enviando los fotogramas de video procesados a un lienzo.

Problema

Tan pronto como llama a captureStream() en el lienzo (o cualquier lienzo que parezca), el uso de la CPU comienza a aumentar (en mi dispositivo Linux, del 20% al 60%).

He vuelto a crear una versión simplificada de este problema aquí, con una animación simple y una llamada a canvas.captureStream():

 const canvas = document.querySelector('#canvas-target'); const animation = new CanvasAnimation(canvas.getContext('2d')); animation.start(); // Starts an animation on canvas function captureStream(){ let stream = canvas.captureStream(); const video = document.querySelector('#stream-output'); // Create canvas stream, feed it to video video.srcObject = stream; // CPU starts to go up here video.play(); }

Consulte Codepen para ver el ejemplo completo: https://codepen.io/sb2702/pen/MWogaeo

Los principales factores que parecen afectar el uso de la CPU son la velocidad de fotogramas y la resolución, por lo tanto,

  1. Supongo que el navegador solo está haciendo mucho trabajo bajo el capó para volver a codificar la transmisión de video en una transmisión de medios.

  2. La respuesta "rápida" es simplemente restringir la velocidad de fotogramas y/o la resolución.

Mi pregunta principal es: ¿me estoy perdiendo algo más fundamental sobre canvas, captureStream, etc., y hay alguna forma mucho más eficiente de CPU de generar un MediaStreamTrack con salida de Canvas?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda