Publicando a webcam na internet com FlashCom/Flash Media Server

Sabemos como conectar e saber se nossa conexão esta funcionando perfeitamente, veremos então como publicar nossa cam pela internet.

Iniciando com a chamada da webcam:

Actionscript:
  1. var teste_cam:Camera = Camera.get();
  2. aovivo.attachVideo(teste_cam);

Vamos modificar o nosso codigo, a conexão agora estará dentro de uma função:
Dentro da função doConnect iniciaremos a conexao com o servidor FlashCom

Actionscript:
  1. function doConnect() {
  2.     client_nc = new NetConnection();
  3.     client_nc.onStatus = function(info) {
  4.         trace("Level: "+info.level+"   Code: "+info.code);
  5.         txt_status.text = "Level: "+info.level+"   Code: "+info.code;
  6.     };
  7.     //client_nc.connect("rtmp://dominio");
  8.     client_nc.connect("rtmp:/cam");
  9. }

Feito isto, iniciaremos outra função para publicar as imagens da cam pelo FlashCom

Actionscript:
  1. function publishMe() {
  2.     out_ns = new NetStream(_root.client_nc);
  3.     out_ns.attachVideo(teste_cam);
  4.     out_ns.publish("myTestStream");
  5. }

Finalizando com a função que dara o play para visualizarmos a cam via stream:

Actionscript:
  1. function playMe() {
  2.     in_ns = new NetStream(_root.client_nc);
  3.     Published_video.attachVideo(in_ns);
  4.     in_ns.play("myTestStream");
  5. }

Agora basta chamarmos cada função:

Actionscript:
  1. // Connect to the server
  2. doConnect();
  3. // Publish the live stream
  4. publishMe();
  5. // Play back the stream from the server
  6. playMe();

O codigo completo:

Actionscript:
  1. var teste_cam:Camera = Camera.get();
  2. aovivo.attachVideo(teste_cam);
  3. /////////////////
  4. function doConnect() {
  5.     client_nc = new NetConnection();
  6.     client_nc.onStatus = function(info) {
  7.         trace("Level: "+info.level+"   Code: "+info.code);
  8.         txt_status.text = "Level: "+info.level+"   Code: "+info.code;
  9.     };
  10.     //client_nc.connect("rtmp://dominio");
  11.     client_nc.connect("rtmp:/cam");
  12. }
  13. function publishMe() {
  14.     out_ns = new NetStream(_root.client_nc);
  15.     out_ns.attachVideo(teste_cam);
  16.     out_ns.publish("myTestStream");
  17. }
  18. function playMe() {
  19.     in_ns = new NetStream(_root.client_nc);
  20.     Published_video.attachVideo(in_ns);
  21.     in_ns.play("myTestStream");
  22. }
  23. // Connect to the server
  24. doConnect();
  25. // Publish the live stream
  26. publishMe();
  27. // Play back the stream from the server
  28. playMe();

Lembrando que foi criado dois movieclips do tipo video com os respectivos nomes de instâncias "aovivo" e "Published_video". Publique seu swf para ver o resultado.
Esse exemplo foi retirado do proprio help do FlashCom.

Veja a aplicação em funcionamento

Flash Media Server Developer Center
http://www.macromedia.com/devnet/flashmediaserver/

FlashComGuru
http://www.flashcomguru.com/

FlashCom.com.br
http://www.flashcom.com.br/

Flash Media Server Fun
http://www.fczone.com/

31 Comments

  • By Roger, April 10, 2006 @ 18:17

    Olá Leonardo,
    VC tem algum exemplo ou dica de como eu poderia restringir a conexão para apenas duas pessoas, e retornar uma menssagem caso a sala esteja cheia?
    Atenciosamente
    Roger

  • By julio, May 30, 2006 @ 11:36

    preciso de uma aplicação de vídeo chat entre usuários, quanto vc cobra…?

  • By Marcelo, June 15, 2006 @ 12:40

    Leonardo, preciso só de uma luz: Tenho que publicar as imagens de uma camera ip para um ip global onde todos os usuarios da internet possam acessá-la. Seria esse o caminho? O que deve ser exibido para o usuário é somente o swf com a imagem da cam.
    Agradeço desde já,
    Marcelo Moreles

  • By danielgarcia, October 9, 2006 @ 17:11

    no meu teste deu um erro

    Level: error Code: NetConnection.Connect.Failed

    mas o video fica aparecendo normal

    usei o flash 8 normal acho que não instalei os componentes flashcom

    tb gostaria de saber como faço para gravar o video?

  • By Leonardo França, October 9, 2006 @ 17:17

    Esse exemplo não utiliza os componentes do Flashcom.
    Imagino que so esteja aparecendo a cam local, tem que aparecer duas janelinhas uma com a cam local e outra com o video publicado.
    Quanto ao erro do netconnection, verifique se vc esta usando o servidor do Flashcom esta iniciado ou se o endereço do rtmp esta correto. ;)

  • By Daniel Garcia, October 10, 2006 @ 10:18

    Realmente so está aparecendo a cam local!

    O que estava querendo era gravar um video a partir de uma webcam, não sei se esse artigo faz isso, gostaria muito de aprender a gravar e salvar o video a partir de uma webcam!

  • By daniel Garcia, October 10, 2006 @ 10:32

    tenho no meu IIS o //localhost/natalhelp, como faria para fazer a conexão certo?

    e gravar o video tb!

  • By Leonardo França, October 11, 2006 @ 11:04

    para gravar o video basta adicionar o parametro “record” do metodo publish

    publish(ListItem.text, “record”);

    http://www.leonardofranca.com.br/index.php/2006/03/04/criando-uma-playlist-com-flash-communication-serverflash-media-server/pt/

    Se o servidor estiver no seu pc, utilize:
    client_nc.connect(“rtmp:/natalhelp”);
    com uma barra apenas.
    não importando se vc tem o IIS ou outro servidor web instalado na maquina ;)

  • By danielgarcia, October 11, 2006 @ 14:52

    Eu queria tirar aquela msg em inglês que confirma a gravação!

  • By danielgarcia, October 11, 2006 @ 14:53

    Aquele poupup do inicio da aplicação!

  • By danielgarcia, October 16, 2006 @ 17:21

    Leonardo gostaria que me ajudasse, existe alguma forma de colocar para video terminar de gravar após 15 segundos, ao invés do botão record!!

    Tenho quase nenhuma experiência em action script!

  • By Leonardo França, October 18, 2006 @ 14:00

    vc pode usar a propriedade time do flash media server
    http://livedocs.macromedia.com/fms/2/docs/00000595.html#wp158176
    ou então criar uma função com o setInterval para contar o tempo e para de gravar.

    ah, não entendi essa do popup

  • By danielgarcia, October 19, 2006 @ 17:56

    Oi leonardo sou eu denovo,

    Queria saber como defino para o meu video ficar num resolução 320X240???

    è caso de vida ou morte!

  • By danielgarcia, October 19, 2006 @ 17:57

    o video que falo é o flv que foi gravado!

  • By Marcelo, November 4, 2006 @ 00:45

    Olá ?

    Gostaria de saber como integrar o flashcomm com o servidor apache
    Pois intale o flashcomm com ilimitado numero de usuarios que está instalado em C:\Arquivos de programas\macromedia\Flash Communication Server MX

    Enquanto o apache tá instalado em C:\Arquivos de programas\Apache Software Foundation

    Quando eu testo a minha apresentação está tudo legal localmente no –> aplication directory do arquivo fla está como rtmp:/sample_firstapp/sharedobjects/_definst_ e quando coloco rtmp:/sample_firstapp tudo ocorre bem mais quando coloco ela no apache em C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs

    Só consigo ver localmente tipo http:\\localhost

    Mais as pessoas não consegue entrar no chat e logar no chat e ligar cam e mic
    MEU EXEMPLO É ESSE
    https://locaweb.com.br/flashcom/exemplos/default.asp
    mais não consigo fazer funcionar no meu servidor caseiro com apache

    Obrigado

  • By Leonardo França, November 6, 2006 @ 15:42

    Ola Marcelo,
    não entendi bem qual sua duvida, mas eu uso normalmente o Flashcom com o Apache na minha maquina, no diretorio do Flashcom guardo apenas os arquivos .asc, flv e mp3. Acesso a aplicação normalente usando HttP://localhost/minhaplicacao.html
    Se vc esta querendo que outras pessoas acessem seu pc. será necessário Disponibilizar o ip da sua maquina para que eles acessem.por exemplo:
    http://ip da sua maquina/sua aplicacao.html

    ate mais

  • By Marcelo, November 8, 2006 @ 15:15

    Olá?

    Bem é o seguinte
    Tenho o apache em minha maquina roteado pra porta 8080
    utilize o serviço NO-IP que fica assim o meu endereço
    http://meu dominio.no-ip.org:8080
    Utilizo a porta 8080 devido ao hub que eu uso e adsl que não permite usar a porta 80 pra o apache
    Tudo está funcionando normalmente
    Depois instale o Flash Media Serviçe o FMS fica em c:\Arquivos de programas\Macromedia\Flash Media Service
    O apache fica em C:\Arquivos de programas\Apache Group\
    Apóis intale note que não poderia jamais fazer os trabalhos na pasta do flash media e levar pra o htdocs do Apache pois a direção estaria errada e ele não estaria ativo externamente quando fosse acessar o meu endereço http://meu dominio.no-ip.org:8080 note que havia um arquivo chamado FMS.INI no FMS e no FCS o nome é VHOST dentro de config lá tem assim ….

    # Application directory for the virtual host
    # For example:
    # VHOST.APPSDIR = C:\myapps
    #
    VHOST.APPSDIR = C:\Arquivos de programas\Macromedia\Flash Media Server 2\Aplications

    coloque então a linha do VHOST assim
    C:\Arquivos de programas\Apache Software Foundation\Apache2.2

    Pois iria criar algo em htdocs e ficar ativo até ai tudo bem está ativo localmente
    Mais entenda o modem é roteado ele é que fica com o IP verdadeiro , o ip interno é outro também e fora isso não tenho noção de como ficara isso em rtmp:// pois tenho que rotear ele pra porta 8080
    Exite varios arquivos dentro do flash comm e flash MS os XML que traz exemplos pra router mais já fiz de tudo e não consigo nada sobre isso , já busque google já li manual e nada encontre, ele sempre fica ativo localmente mais nunca externamente nem acessando o ip interno de outro pc via browser
    A questão da dificuldade está no roteamento via porta 8080, espero que alguem aqui me ajude
    Um abraço

  • By Thiago, January 5, 2007 @ 14:27

    Como eu faço um chata somente com webcam’s???…vc sabe onde tem tutorial explçicando ou vc tem script????

  • By Leonardo França, January 6, 2007 @ 21:51

    Tenho uma videoconferencia, mas a logica esta nesse artigo, breve escrevei um mais detalhando sobre como fazer uma conferencia

    Ate mais
    Leonardo França

  • By Roger, February 23, 2007 @ 12:35

    Olá,

    Gostaria de saber como faço para tocar um bip do lado do servidor quando um cliente estiver online, tipo o skype.

  • By Roger, February 23, 2007 @ 12:46

    Olá,
    Como faço para conectar somente um ´cliente de cada vez, caso o atendimento esteja cheio, ele retorna uma menssagen dizendo “Todos os atendentes estão ocupados no momento, tente mais tarde”.

  • By Leonardo França, March 5, 2007 @ 13:09

    vc pode verificar se a instancia do NetStream já esta em uso, caso sim mostra a mensagem para o usuario ou ainda guardar isso em um SharedObject ;)

  • By Leonardo França, March 5, 2007 @ 13:15

    você pode fazer algo do tipo:
    client_nc = new NetConnection();
    client_nc.onStatus = function(info) {
    trace(“Level: “+info.level+” Code: “+info.code);
    if(info.code == “NetConnection.Connect.Success”){
    tocasom();
    }
    };
    e na funcão tocasom, vc implementa a rotina do Flash para carregar um som ;)

  • By Roger, March 5, 2007 @ 21:11

    Ok, consegui. O que tá pegando é que eu preciso restringir a conexão para somente dois usuários, e colocar um botão que possa desconectar um usuário que deseje.
    Obrigado pela força.

  • By Roger, March 18, 2007 @ 19:04

    Olá,

    Estou precisando de um help. Como faço para implementar um peoplelist para que eu possa desconectar um usuário que escolher?
    Grato
    Roger

  • By Rodrigo Martinez, March 26, 2007 @ 18:14

    Olá, gostaria de saber se existe a possibilidade de manipular quatro câmeras pelo FLASH na mesma tela, sendo uma delas IP?

    Caso seja positiva a sua resposta, tem como você me indicar uma literatura que me ajude para esta configuração, ou seja, alguma literatura que informe como é possível a leitura de câmeras externas pelo FLASH?

    Muito Obrigado desde já.

  • By Muniz Alves, December 19, 2008 @ 21:28

    Ola, estou com uma duvida, sou doido pra aprender o Flashcom
    O que eu preciso inicialmente?
    Preciso pagar uma hospedagem super cara para começar meus testes?
    Tem como fazer testes no meu pc e hospedar em servidores comum?
    Obrigado, desde ja

  • By Leonardo França, December 19, 2008 @ 23:08

    vc pode instalar o servidor Flash Media Server no seu pc e usar para os testes tranquilamente ;)

  • By Alexandre, December 21, 2008 @ 07:19

    ops…
    disculpa o comentario anterior ,mas…
    como fazer para somente gravar o video no computador?

  • By Eduardo, January 18, 2009 @ 22:30

    Olá Leonardo, td bem?
    por favor, estou precisando de um favor, tenho instalado no meu pc wm recorder, pra gravar videos da internet, ele funciona mto bem e automaticamente para sites q disponibilizam o conteudo em windows media player… mas qdo vejo algum site que tem transmissao ao vivo, mtos sao com algum programa em flash, o q nao me deixa garvar, jah baixei o flv recorder, ele cria os arquivos mtu grandes, e mtas vezes perco partes do video.

    deixo um site da web, q transmite jogos ao vivo, http://www.channelsurfing.net um dos canais eh q estou tentando gravar, descobri no proprio video q aparece a opção rtmp, porém nao sei com q programa posso gravar… de um tamanho consideravel…. e com som, de preferencia…
    se vc puder me ajudar agradeceria…
    obrigado, Eduardo.

Other Links to this Post

RSS feed for comments on this post. TrackBack URI

Leave a comment

WordPress Themes


Video & Audio Comments are proudly powered by Riffly