Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Configurando uma webcam em Actionscript 3

Recommended Posts

Textooriginal de Andrew Christensen, disponível em http://blog.728media.com/2009/02/24/actionscript-3-webcam-configure/

 

?

 

Configurar uma webcam em Flash sempre foimuito simples. Sinto que existem dois casos em Flash em que você utilizaria awebcam para um projeto: streaming de vídeo para vídeo chat ou como umaferramenta para tirar foto. Esses dois casos têm objetivos completamentediferentes, e você deve configurar sua câmera corretamente paracada um deles.

 

 

Configure sua câmera

Primeiramente, vamos configurar sua câmera e uma instância de vídeo parareprodução. Este código irá configurar uma câmera padrão e uma instância devídeo padrão. Ambos serão configurados para uma reprodução 320×240.

 

var camera:Camera = Camera.getCamera();

var video:Video = new Video();

video.attachCamera(camera);

addChild(video);

Configuresua câmera para vídeo chat streaming

Configurar sua câmara para vídeo chat streaming envolve um pouco mais detrabalho e planejamento do que utilizá-la apenas para tirar uma foto dentro doplayer. O streaming de vídeo precisa que você sacrifique a qualidade do vídeopara melhor velocidade, especialmente se você precisa sincronizar o vídeo com oáudio. Existem dois métodos da classe da câmera que iremos usar para balanceara qualidade do vídeo e a frame rate com a largura da banda: Camera.setQuality() e Camera.setMode().setQuality() são usados para especificar a largura de banda e a qualidade geral dooutput de vídeo da câmera. A documentação de ajuda da Adobe diz o seguinte:

 

  • Para indicar que o uso da largura de banda tem precedência, passe um valor para a largura de banda e 0 para qualidade. O Flash Player transmite o vídeo com a melhor qualidade possível dentro da largura de banda especificada. Se necessário, o Flash Player reduz a qualidade da imagem para evitar exceder a largura de banda especificada. No geral, se o movimento aumenta, a qualidade diminui.
  • Para indicar que a qualidade tem precedência, passe um valor numérico para a qualidade e 0 para a largura de banda. O Flash Player usa a quantidade de banda necessária para manter a qualidade especificada. Se necessário, o Flash Player reduz a frame rate para manter a qualidade de imagem. No geral, se o movimento aumenta, o uso da banda também aumenta.
  • Para especificar que tanto a largura de banda quanto a qualidade são igualmente importantes, passe valores numéricos para ambos os parâmetros. O Flash Player transmite o vídeo que atinge a qualidade especificada e que não excede a largura de banda especificada. Se necessário, o Flash Player reduz a frame rate para manter a qualidade de imagem sem exceder a largura de banda especificada.

Vamos configurar nosso código para ter uma qualidade comprimida média e uma frame rate de 15.

 

var bandwidth:int = 0; // Specifies the maximum amount of bandwidth that the current outgoing video feed can use, in bytes per second. To specify that Flash Player video can use as much bandwidth as needed to maintain the value of quality , pass 0 for bandwidth . The default value is 16384.

var quality:int = 50; // this value is 0-100 with 1 being the lowest quality. Pass 0 if you want the quality to vary to keep better framerates

var camera:Camera = Camera.getCamera();

camera.setQuality(bandwidth, quality);

camera.setMode(320,240,15,true); // setMode(videoWidth, videoHeight, video fps, favor area)

 

// Now attach the webcam stream to a video object.

var video:Video = new Video();

video.attachCamera(camera);

addChild(video);Dependendo do seu projeto, você pode mudar asconfigurações da largura de banda, a qualidade e a frame rate paraencontrar a melhor combinação. Eu sugiro configurar o tamanho de captura dovídeo menor, e então esticá-lo. Isso permitirá uma maior frame rate, umavez que você está enviando um vídeo menor que está esticado. O vídeo fica umpouco embaçado, mas, se você está planejando ter muito movimento, ter uma taxa maiorde quadros será mais importante.

 

 

Configure sua câmera para tirar uma foto

 

Este tipo de configuração não é muito diferente do exemplo acima. A principaldiferença é que não estamos passando quantidades constantes de dados para umservidor streaming a cada segundo. Em vez disso, precisamos apenas pegaros dados da câmera uma vez. Portanto, podemos aumentar a qualidade e a frame rate o quanto quisermos (se o hardware do usuário permitir essasconfigurações).

 

Aqui está o exemplo acima, mas com sua configuração maximizada para umaqualidade de foto alta.

 

var bandwidth:int = 0; // Specifies the maximum amount of bandwidth that the current outgoing video feed can use, in bytes per second. To specify that Flash Player video can use as much bandwidth as needed to maintain the value of quality , pass 0 for bandwidth . The default value is 16384.

var quality:int = 100; // this value is 0-100 with 1 being the lowest quality. Pass 0 if you want the quality to vary to keep better framerates

var camera:Camera = Camera.getCamera();

camera.setQuality(bandwidth, quality);

camera.setMode(320,240,30,false); // setMode(videoWidth, videoHeight, video fps, favor area)

var video:Video = new Video();

video.attachCamera(camera);

addChild(video);

 

 

<h2></h2>

 

http://imasters.com.br/artigo/21034/flash/configurando-uma-webcam-em-actionscript-3

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.