<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>FMS Guru { Brasil } - Home</title>
  <id>tag:www.fmsguru.com.br,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://www.fmsguru.com.br/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.fmsguru.com.br/" rel="alternate" type="text/html"/>
  <updated>2008-08-09T01:34:35Z</updated>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-08-09:752</id>
    <published>2008-08-09T01:20:00Z</published>
    <updated>2008-08-09T01:34:35Z</updated>
    <category term="curso de flash media server"/>
    <category term="curso de fms"/>
    <link href="http://www.fmsguru.com.br/2008/8/9/curso-on-line-de-flex-3-v-deo" rel="alternate" type="text/html"/>
    <title>Curso on-line de Flex 3 + V&#237;deo</title>
<content type="html">
            &lt;p&gt;
Olá amigos,
&lt;/p&gt;
&lt;p&gt;
Iniciou no dia 05/08 o &lt;a href=&quot;http://www.egenial.com.br/cursovideo&quot;&gt;curso on-line de Flex + Vídeo&lt;/a&gt; da e-Genial Soluções Inteligentes. O curso tem por objetivo ensinar todos os passos para se integrar Adobe Flex 3 + Flash Media Interactive Server, seguindo um passo a passo com um material muito bem documentado e exclusivo, contando também com um grupo de estudos e aulas duas vezes por semana em tempo real, usando o Treina &lt;span class=&quot;caps&quot;&gt;TOM&lt;/span&gt;.
&lt;/p&gt;
&lt;p&gt;
Neste curso será criado várias aplicações reais integrando Flex + Flash Media Interactive Server, como ferramentas para conferências, ferramentas para comunicações síncronas dentre outras. No final do curso os participantes irão aprender como colocar a aplicação em produção.
&lt;/p&gt;
&lt;p&gt;
Para maiores informações, não deixe de visitar o site, e se você tiver alguma dúvida basta entrar em contato com a equipe e-Genial.
&lt;/p&gt;
&lt;p&gt;
http://www.egenial.com.br/cursovideo/
&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-07-08:746</id>
    <published>2008-07-08T14:23:00Z</published>
    <updated>2008-07-08T14:42:01Z</updated>
    <category term="ao vivo"/>
    <category term="flash media server"/>
    <category term="streaming"/>
    <link href="http://www.fmsguru.com.br/2008/7/8/streaming-e-download-progressivo" rel="alternate" type="text/html"/>
    <title>Streaming e download progressivo</title>
<content type="html">
            &lt;p&gt;Neste post gostaria de compartilhar com você alguns conceitos que fazem parte de nosso dia a dia dentro deste mundo fantástico chamado web 2.0. O primeiro deles é entender o que é streaming.&lt;/p&gt;


	&lt;p&gt;A primeira transmissão digital via streaming ocorreu no ano de 1988 utilizando a tecnologia Shoutcast com base no &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt; comprimido à 128kbps (qualidade de CD), porém, a internet ainda não era capaz de suportar transmissões de elevada velocidade e o projeto foi engavetado.&lt;/p&gt;


	&lt;p&gt;Hoje com sua internet de alta velocidade, isso já é real. Quando você se conecta a sua rádio preferida pela internet, onde a programação da mesma está acontecendo ao vivo, o seu player favorito tenta estabelecer uma conexão persistente com o servidor onde está o serviço de compartilhamento da rádio.&lt;/p&gt;


	&lt;p&gt;Desta forma os dados são enviados por pacotes de um único ponto, o servidor. Assim se cria um processo chamado de streaming ou broadcast, pelo qual se transmite ou difunde determinada informação, tendo como principal característica que a mesma informação está sendo enviada para muitos receptores ao mesmo tempo.&lt;/p&gt;


	&lt;p&gt;Com isto temos a sensação de que o áudio é transmitido ao vivo, dando a impressão que você está realmente com seu rádio ligado. Quando falamos em sensação, estamos descontando alguma latência de alguns milissegundos ou segundos que pode haver entre a rede que está o servidor até chegar em sua rede onde está o seu computador. Podemos concluir então que streaming é uma forma de transmissão síncrona através de uma comunicação persistente via &lt;span class=&quot;caps&quot;&gt;TCP IP&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Outra coisa que você precisa entender é sobre o download progressivo, que permite assistir vídeos ou escutar música pela internet baixando os arquivos para o cache de seu browser. Desta forma você só consegue ter acesso a mídia assim que for ocorrendo o download da mesma.&lt;/p&gt;


	&lt;p&gt;Um exemplo simples de download progressivo são os vídeos disponibilizados no youtube.com, veja que, quando você acessa um vídeo e o mesmo começa, dentro de alguns segundos o mesmo para, carrega e volta a tocar novamente, até ser totalmente carregado em sua máquina. Vale destacar que, quando a mídia está totalmente carregado em seu computador é sinal que você já assistiu toda ela, a não ser que você tenha dado uma pausa para esperar a mesma ser totalmente carregada. Outro detalhe importante é destacar que este processo de download progressivo ocorre via &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt;, e o tamanho do arquivo está diretamente ligado ao tempo de download, por isto no Youtube você consegue assistir alguns vídeos mais rápidos que outros.&lt;/p&gt;


	&lt;p&gt;Este processo é o mais barato pois não exige a presença de um servidor de streaming, basta ter qualquer servidor &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; e um player acessando diretamente o arquivo.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Streaming versus download progressivo&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;As pessoas me perguntam muito qual é a melhor opção para compartilhar arquivos de áudio, vídeo  ou até mesmo criar ambientes de colaboração pela internet, e confesso que a resposta para isto é bem simples. Depende de projeto para projeto, de aplicação para aplicação.&lt;/p&gt;


	&lt;p&gt;Através do download progressivo você só consegue compartilhar arquivos que estão fisicamente no servidor &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt;, e os clientes só conseguirão avançar o vídeo se já foi feito o download do mesmo até o ponto que se quer avançar.&lt;/p&gt;


	&lt;p&gt;Já através do streaming você tem a flexibilidade de detectar o tamanho da conexão do usuário e tomar decisões, direcionando o streaming para o arquivo que tenha uma qualidade em que o usuário possa assistir mesmo se a sua conexão for lenta, tudo isso de forma automatizada e com total controle de buffer. O cliente poderá também avançar a mídia ou voltar a qualquer momento, sem precisar que a mesma esteja carregada totalmente em sua máquina, se isto for um item importante na aplicação e se os usuários precisam interagir de forma síncrona, sem dúvida o streaming é a melhor opção.&lt;/p&gt;


	&lt;p&gt;Outro ponto importante é o valor gasto em estrutura para montar um servidor de mídia, ex: Em um servidor de vídeos via download progressivo os itens principais é servidor &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt;, uma boa banda de saída(upload) e um bom espaço em disco para colocar os seus vídeos.&lt;/p&gt;


	&lt;p&gt;Já no servidor de mídias síncronas você irá precisar de um servidor de streaming, banda de saída(upload) e um bom espaço em disco. São os mesmos itens citados no servidor de vídeos via download progressivo, só trocamos o servidor &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; por um servidor de streaming onde conseguimos ter um total controle sobre a mídia fornecida e realizar uma comunicação bi-directional (&#8220;full duplex&#8221;) em tempo real.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Você sabia?&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Que a primeira transmissão mundial ao vivo ocorreu em 25 de junho de 1967, quando o canal inglês &lt;span class=&quot;caps&quot;&gt;BBC&lt;/span&gt; se uniu a um pool de emissoras de 26 países para transmitir ao grupo The Beatles cantando a música All You Need Is Love.&lt;/p&gt;


	&lt;p&gt;Assista o vídeo aqui: 
http://youtube.com/watch?v=rLxTpsIVzzo&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Distribuição de conteúdo multimídia&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Uma das plataformas e plugins mais usados para distribuição de conteúdos multimídia através da internet usando download progressivo ou streaming é sem dúvida o flash player da Adobe, que já toma conta de 98% de todos os computadores ligados a rede mundial de computadores. Hoje a mesma versão que existe para Windows é a mesma do Linux, Mac OS e Solaris, o que não acontecia algum tempo atrás.&lt;/p&gt;


	&lt;p&gt;A Adobe vem investindo grandemente nesta runtime, no momento que estou escrevendo este post a versão corrente é 9.0.124, o que me faz crer que logo logo já exista uma versão mais recente, o que fortalece o comprometimento da Adobe com seus clientes.&lt;/p&gt;


	&lt;p&gt;O Flash Player alguns anos atrás era visto como um plugin para rodar animações feitas em Flash, e até hoje é visto desta forma por algumas pessoas do “mundo web” desatualizadas. Muitos desenvolvedores ainda não entenderam o que a Adobe está fazendo para o mundo tecnológico.&lt;/p&gt;


	&lt;p&gt;O Flash Player é o plugin mais usado também na distribuição de vídeos e áudio pela internet, estes recursos estão presentes no Flash Player desde suas primeiras versões ainda quando fazia parte da antiga Macromedia(Comprada pela Adobe Systems). A Adobe tem melhorado muito estes recursos com o tempo, com alguns posts criados aqui você poderá comprovar isto, como é simples e fácil criar ambientes e distribuir conteúdo multimídia usando esta runtime.&lt;/p&gt;


	&lt;p&gt;Vale destacar que o este player não para por aí, vide a versão 10 chamado de “Astro” que traz grandes melhorias em sua estrutura, como: Maior suporte para sabores *Unix, recursos 3D como eixo Z, detecção automática de banda com streaming dinâmico, novo codec de áudio, conteúdo indexado por ferramentas de buscas dentre outras features que você poderá acompanhar de perto acessando:&lt;/p&gt;


	&lt;p&gt;http://labs.adobe.com/technologies/flashplayer10/&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-05-15:745</id>
    <published>2008-05-15T11:48:00Z</published>
    <updated>2008-05-15T16:56:27Z</updated>
    <category term="adobe"/>
    <category term="flash media server"/>
    <category term="flash player"/>
    <link href="http://www.fmsguru.com.br/2008/5/15/flash-player-10-e-novos-recursos-de-streaming" rel="alternate" type="text/html"/>
    <title>Flash Player 10 e novos recursos de streaming</title>
<content type="html">
            &lt;p&gt;Hoje a &lt;a href=&quot;http://labs.adobe.com/technologies/flashplayer10/&quot;&gt;Adobe anunciou o beta do Flash Player 10&lt;/a&gt;, chamado carinhosamente de Astro, que vai trazer em sua estrutura novos recursos que de alguma maneira vão aumentar a qualidade das aplicações geradas.&lt;/p&gt;


	&lt;p&gt;Um dos destaques principais que fazem parte desta versão é o de streaming, que ganhou comunicação &lt;span class=&quot;caps&quot;&gt;UDP&lt;/span&gt; sobre o novo protocolo da próxima release do &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; chamado de &lt;span class=&quot;caps&quot;&gt;RTMFP&lt;/span&gt; (Real Time Media Flow Protocol), um novo codec chamado de Speex Audio e o tão esperado Dynamic Streaming.&lt;/p&gt;


	&lt;p&gt;Estes recursos vão fazer grande diferença para nós desenvolvedores de aplicações multimídia. &lt;span class=&quot;caps&quot;&gt;O RTMFP&lt;/span&gt; provê em sua estrutura sobre o protocolo &lt;acronym title=&quot;User Datagram Protocol&quot;&gt;UDP&lt;/acronym&gt; mais segurança, melhor desempenho e baixa latência para comunicações em tempo real. O bacana deste protocolo é que ele é sempre criptografado, o que ajuda a proteger suas mídias e dados. Esta tecnologia é resultado da aquisição da Amicima, Inc., em 2006 pela Adobe.&lt;/p&gt;


	&lt;p&gt;Já o novo codec Speex conhecido pela comunidade Asterix, vai trazer maior fidelidade ao áudio transmitido e baixa latência, ele vai ser uma alternativa ao Nellymoser, mas levando muito mais experiências até os usuários.&lt;/p&gt;


	&lt;p&gt;E para finalizar com chave de ouro, o Dynamic Streaming vai acabar com aqueles inúmeros arquivos de vídeo separados para suportar cada tipo de qualidade/conexão. Agora, através deste recurso o mesmo vídeo criado sobre uma qualidade X poderá se auto-ajustar conforme a conexão do usuário, melhorando suas experiências, além de dar suporte total e controle para o desenvolvedor sobre a reprodução de vídeos por streaming, pois estes controles vão poder ser alterados em tempo real.&lt;/p&gt;


	&lt;p&gt;Outro detalhe importante é que, vamos ter que esperar por algum tempo até o lançamento da versão final do &lt;span class=&quot;caps&quot;&gt;FP 10&lt;/span&gt;, e creio eu que o flash media server com suporte a estes recursos vai ser lançado junto.&lt;/p&gt;


	&lt;p&gt;Agora é esperar, grande abraço!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-03-29:642</id>
    <published>2008-03-29T13:21:00Z</published>
    <updated>2008-03-29T14:17:42Z</updated>
    <category term="fms"/>
    <category term="open source"/>
    <category term="servidores"/>
    <link href="http://www.fmsguru.com.br/2008/3/29/servidores-de-streaming-open-source" rel="alternate" type="text/html"/>
    <title>Servidores de streaming open source</title>
<content type="html">
            &lt;p&gt;
A cada dia que passa vemos novas implementações de servidores de streaming com os mais variados recursos, alguns até implementam uma comunicação persistente via &lt;a href=&quot;http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol&quot;&gt;&lt;span class=&quot;caps&quot;&gt;RTMP&lt;/span&gt;&lt;/a&gt; usando &lt;a href=&quot;http://osflash.org/documentation/amf&quot;&gt;&lt;span class=&quot;caps&quot;&gt;AMF&lt;/span&gt;&lt;/a&gt;, o que faz com que vários de seus recursos, mesmo que use a especificação mais antiga do &lt;acronym title=&quot;AMF0&quot;&gt;AMF&lt;/acronym&gt;, funcione bem similar ao Flash Media Server.
&lt;/p&gt;
&lt;p&gt;
Alguns projetos como &lt;a href=&quot;http://osflash.org/red5&quot;&gt;&lt;span class=&quot;caps&quot;&gt;RED5&lt;/span&gt;&lt;/a&gt; que é totalmente escrito em java funciona desta maneira, pois além de fazer streaming de arquivos flvs ele possui em sua estrutura todo o conjunto de implementações que o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; possui, e até mesmo shared object e streaming in-live. Já existe vários cases e alguns até de médios portes que já usam o &lt;span class=&quot;caps&quot;&gt;RED5&lt;/span&gt; em sua estrutura.
&lt;/p&gt;
&lt;p&gt;
O projeto esta em constante crescimento e promete chegar logo na versão 1.0. Um ponto importante que vale destacar e &lt;span class=&quot;caps&quot;&gt;MUITO&lt;/span&gt; no &lt;span class=&quot;caps&quot;&gt;RED5&lt;/span&gt; é a linguagem e o formato da implementação das classes server-side, por ser baseada em java, a curva de aprendizado é um pouco maior, fazendo com que qualquer aplicação de pequeno e médio porte demore mais tempo para ser implementada. Há vale destacar que a comunicação é feita somente por &lt;span class=&quot;caps&quot;&gt;AMF0&lt;/span&gt; para a serialização e deserealização dos dados.
&lt;/p&gt;
&lt;p&gt;
Outro projeto interessante também escrito em java é o &lt;a href=&quot;http://milgra.com/milgra.html&quot;&gt;Milgra&lt;/a&gt;, escrito por um cara que realmente não tinha o que fazer, no bom sentido, pois ele implementou um media server que só tem 64k, é isso mesmo 64 Kbyte! 
&lt;/p&gt;
&lt;p&gt;
O projeto ainda esta em fase beta, porém totalmente funcional para streaming de arquivos flvs, ao vivo, gravações e callbacks  sobre &lt;span class=&quot;caps&quot;&gt;AMF0&lt;/span&gt;. É tão audacioso este projeto que o seu criador fala em seu site, que em um teste sobre uma máquina Mac &lt;span class=&quot;caps&quot;&gt;OS X 10&lt;/span&gt;.4 Desktop, Intel Core Duo, 1.8 Ghz, 1 Gb &lt;span class=&quot;caps&quot;&gt;RAM&lt;/span&gt; com o servidor levantado e conectado 803 usuários, o cpu load ficou somente em 3.42 e consumiu apenas 180 megabytes de ram.
&lt;/p&gt;
&lt;p&gt;
Em comparação com o &lt;span class=&quot;caps&quot;&gt;RED5&lt;/span&gt; o Milgra é muito mais fácil de se trabalhar, mesmo que seja usado java como linguagem server-side, ele conseguiu abstrair o máximo das dificuldades que são encontradas com o &lt;span class=&quot;caps&quot;&gt;RED5&lt;/span&gt;. E com isso temos aplicações mais simples, porém totalmente funcional. O projeto vem com todos os códigos fontes, aplicações demos, tanto a aplicação server-side como a aplicação client-side em actionscript, e isso inclui também uma administração muito completa para as aplicações, por uma interface simples em flash que permite também realizar testes de stress sobre qualquer aplicação.
&lt;/p&gt;
&lt;p&gt;
Um outro projeto que promete é o &lt;a href=&quot;http://code.google.com/p/rubyizumi/&quot;&gt;Rubyizumi&lt;/a&gt;, recém lançado no Google Code. Hoje ele permite fazer streaming de arquivos &lt;span class=&quot;caps&quot;&gt;MP4&lt;/span&gt;, usando a versão mais recentente do flash player 9.0.115 ou superior.
&lt;/p&gt;
&lt;p&gt;
O Rubyizumi é totalmente escrito em Ruby, e com uma simplicidade fora do normal para este tipo de aplicação. De tão simples que o projeto é, para fazer streaming dos vídeos basta ter o ruby instalado na máquina windows, linux, mac ou unix*, e dizer:
&lt;br&gt;
&lt;br&gt;
ruby server.rb /diretorio_de_meus_videos
&lt;br&gt;
&lt;br&gt;
Pronto! Seu servidor de vídeos em &lt;span class=&quot;caps&quot;&gt;MP4&lt;/span&gt; esta no ar!
&lt;/p&gt;
&lt;p&gt;
Como o projeto é muito novo, não dá para exigir performance, pois em nosso teste com 10 vídeos simultâneos o servidor consumiu 12%  da &lt;span class=&quot;caps&quot;&gt;CPU&lt;/span&gt; e 10 megas de &lt;span class=&quot;caps&quot;&gt;RAM&lt;/span&gt; em um computador Mac osx 1.5.2, core 2 duo 2.4, 3GB de ram e 4 mega de cache. Mas vale ficar de olho neste projeto pela sua simplicidade e a curva de aprendizado que a linguagem ruby vai te proporcionar.
&lt;/p&gt;
&lt;p&gt;
Bom por enquanto é isso! Grande abraço
&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-03-26:636</id>
    <published>2008-03-26T22:31:00Z</published>
    <updated>2008-03-26T22:46:43Z</updated>
    <category term="3d"/>
    <category term="v&#237;deos"/>
    <link href="http://www.fmsguru.com.br/2008/3/26/v-deos-e-streaming-em-3d" rel="alternate" type="text/html"/>
    <title>V&#237;deos e streaming em 3D?</title>
<content type="html">
            &lt;p&gt;
Imagine que você tenha uma camêra que filme em 360 graus, agora imagine poder fazer streaming deste vídeo ou da transmissão em tempo real?
&lt;/p&gt;
&lt;p&gt;
Esta é uma das propostas da empresa &lt;a href=&quot;http://www.immersivemedia.com/&quot;&gt;Immersive Media&lt;/a&gt;.  Ainda não tinhamos visto nada igual, é algo de deixar qualquer um louco de curiosidade, ainda mas após saber que o player do vídeo abaixo funciona em 3D graças ao poder do actionscript, e claro sobre o Flash Player.
&lt;/p&gt;
&lt;p&gt;

Para testar, basta dar um clique em Play, e em seguida basta dar um clique no vídeo e mover o mouse, e veja o poder e as idéias para novos projetos que isto pode proporcionar.
&amp;lt;center&gt;
&amp;lt;object height=&quot;288&quot; width=&quot;416&quot;&gt;&amp;lt;param /&gt;&amp;lt;/object&gt;
&amp;lt;/center&gt;
&lt;br&gt;
&lt;br&gt;
Grande abraço ;-)

	&lt;p&gt;&lt;br&gt;
&lt;/p&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>leonardo</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-02-10:16</id>
    <published>2008-02-10T02:16:00Z</published>
    <updated>2008-02-10T02:36:12Z</updated>
    <category term="Tutoriais"/>
    <category term="actionscript"/>
    <category term="flash media server"/>
    <category term="fms"/>
    <link href="http://www.fmsguru.com.br/2008/2/10/flex-e-flash-media-server-actionscript-server-side" rel="alternate" type="text/html"/>
    <title>Flex e Flash Media Server: Server Side  ActionScript parte 1</title>
<content type="html">
            &lt;p&gt;Server Side ActionScript(SSAS) é a liguagem de programação utilizada pelo Flash Media Server, muito poderosa e com muitos recursos para trabalhar com dados síncronos ou até mesmo a manipulação de arquivos.&lt;/p&gt;


	&lt;p&gt;Sendo uma linguagem server-side, não é preciso que esta seja compilado junto com o &lt;span class=&quot;caps&quot;&gt;SWF&lt;/span&gt;, ou seja, você usa como se estivesse usando outra linguagem de servidor como &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;, Ruby on Rails ou ColdFusion.&lt;/p&gt;


	&lt;p&gt;Quando criamos uma aplicação com o Flash Media Server, estas são criadas no seguinte diretório.&lt;/p&gt;


	&lt;p&gt;C:\Program Files\Adobe\Flash Media Server 3\applications&lt;/p&gt;


	&lt;p&gt;Ou seja, se criarmos uma aplicação no Flash Media Server com o nome de &#8220;teste&#8221;, ficará da seguinte forma:
caso queira mudar esse diretorio padrão, basta encontrar o seguinte arquivo&lt;/p&gt;


	&lt;p&gt;C:\Program Files\Adobe\Flash Media Server 3\conf\fms.ini&lt;/p&gt;


	&lt;p&gt;e mudar na seguinte linha para o diretorio de sua preferência&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
# &lt;span class=&quot;LibraryObject&quot;&gt;Application&lt;/span&gt; directory &lt;span class=&quot;Keyword&quot;&gt;for&lt;/span&gt; the virtual host
# For example&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;
#    VHOST.APPSDIR &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; C&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;\myapps
#
VHOST.APPSDIR &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; C&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;\minhasApps
&lt;/pre&gt;

	&lt;p&gt;Partindo do princípio que estamos usando a configuração padrão do Flash Media Server, salveremos os arquivo .asc no seguinte diretório:
&lt;b&gt;C:\Program Files\Adobe\Flash Media Server 3\applications\teste&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Então logo teremos o seguinte endereço rtmp &#8220;rtmp://localhost/teste&#8221; ou &#8220;rtmp://seu_servidor_fms/teste&#8221; para ser acessado pela aplicação cliente.&lt;/p&gt;


	&lt;p&gt;Quando criamos aplicações que vão realizar comunicações bilaterais ou seja,  server &amp;lt;-&amp;gt; cliente, por padrão deve-se criar sempre um arquivo chamado &#8220;main.asc&#8221; que será chamado automaticamente quando a aplicação for carregada.&lt;/p&gt;


	&lt;p&gt;Uma dica é acompanhar o andamento do server, aplicações, streams etc. pelo console do Flash Media Server, localizado seguinte endereço.&lt;/p&gt;


	&lt;p&gt;C:\Program Files\Adobe\Flash Media Server 3\fms_adminConsole.swf&lt;/p&gt;


	&lt;p&gt;É no console que você vai acompanhar seu debug no Flash Media Server, como por exemplo:&lt;/p&gt;


	&lt;p&gt;Arquivo main.asc&lt;/p&gt;


	&lt;p&gt;// ActionScript Communications Document
trace(&#8220;init app&#8230;&#8221;);&lt;/p&gt;


	&lt;p&gt;E no console teremos o seguinte resultado:
&lt;img src=&quot;/assets/2008/2/10/console.jpg&quot; width=&quot;450&quot;&gt;&lt;br&gt;&lt;/p&gt;


Agora a integraçao com o Flex é bem simples, vejamos o seguinte exemplo:
&lt;pre class=&quot;eiffel&quot;&gt;
&amp;lt;&lt;span class=&quot;Keyword&quot;&gt;?&lt;/span&gt;xml &lt;span class=&quot;LibraryFunction&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;1.0&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; encoding&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;utf-8&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;?&lt;/span&gt;&amp;gt;
&amp;lt;mx&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;Application&lt;/span&gt; xmlns&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;mx&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;http://www.adobe.com/2006/mxml&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; 
                         layout&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;absolute&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; 
                         creationComplete&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;init();&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;
  &amp;lt;mx&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;Script&amp;gt;
    &amp;lt;&lt;span class=&quot;Keyword&quot;&gt;!&lt;/span&gt;[CDATA[
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; flash.net.&lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;;
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; flash.net.ObjectEncoding;

    [Bindable]
    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; nc&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;();
    [Bindable]
    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; rtmp&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;String &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;rtmp://localhost/flexfms&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;

    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;init&lt;/span&gt;()&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;{
     &lt;span class=&quot;LibraryFunction&quot;&gt;trace&lt;/span&gt;(&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;init app...&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
     nc &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;();
     &lt;span class=&quot;Comment&quot;&gt;&lt;span class=&quot;Comment&quot;&gt;//&lt;/span&gt;Opa!!! Com o Flash Media Server 3, &lt;/span&gt;
     &lt;span class=&quot;Comment&quot;&gt;&lt;span class=&quot;Comment&quot;&gt;//&lt;/span&gt;nao é mais necessario setar qual AVM usar.&lt;/span&gt;
     &lt;span class=&quot;Comment&quot;&gt;&lt;span class=&quot;Comment&quot;&gt;//&lt;/span&gt;nc.objectEncoding = ObjectEncoding.AMF0;&lt;/span&gt;
     nc.&lt;span class=&quot;LibraryFunction&quot;&gt;connect&lt;/span&gt;(rtmp);
     nc.&lt;span class=&quot;LibraryFunction&quot;&gt;addEventListener&lt;/span&gt;(NetStatusEvent.NET_STATUS,handler);
     nc.&lt;span class=&quot;LibraryFunction&quot;&gt;addEventListener&lt;/span&gt;(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHandler);
    }

    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;handler&lt;/span&gt;(&lt;span class=&quot;FunctionParameter&quot;&gt;e:NetStatusEvent&lt;/span&gt;)&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;{
      &lt;span class=&quot;LibraryFunction&quot;&gt;trace&lt;/span&gt;(e.info.code);
    }

    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;asyncErrorHandler&lt;/span&gt;(&lt;span class=&quot;FunctionParameter&quot;&gt;e:AsyncErrorEvent&lt;/span&gt;)&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;{
     &lt;span class=&quot;LibraryFunction&quot;&gt;trace&lt;/span&gt;(e);
    }

    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;onBWDone&lt;/span&gt;()&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;{
     &lt;span class=&quot;Comment&quot;&gt;&lt;span class=&quot;Comment&quot;&gt;//&lt;/span&gt;&lt;/span&gt;
    }
    ]]&amp;gt;
  &amp;lt;&lt;span class=&quot;Keyword&quot;&gt;/&lt;/span&gt;mx&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;Script&amp;gt;
&amp;lt;&lt;span class=&quot;Keyword&quot;&gt;/&lt;/span&gt;mx&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;Application&lt;/span&gt;&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;Compilando o mxml, deveremos ter o seguinte resultado:&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;/assets/2008/2/10/exemplo1.jpg&quot; width=&quot;450&quot;&gt;&lt;/p&gt;


	&lt;p&gt;Essa foi a primeira parte de uma série de artigos, no próximo nos aprofundaremos mais na linguagem de servidor do Flash Media Server&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-25:15</id>
    <published>2008-01-25T13:08:00Z</published>
    <updated>2008-02-07T12:20:00Z</updated>
    <category term="flash media server 3"/>
    <category term="fms"/>
    <link href="http://www.fmsguru.com.br/2008/1/25/flash-media-server-3-pronto-para-download" rel="alternate" type="text/html"/>
    <title>Flash Media Server 3, pronto para download!</title>
<content type="html">
            &lt;p&gt;&lt;img src=&quot;/assets/2008/1/18/fms3.jpg&quot; /&gt;&lt;/p&gt;


&lt;p&gt;
Conforme tínhamos compartilhado nesta semana a Adobe fez o lançamento oficial hoje do Flash Media Server 3.  

	&lt;p&gt;Você poderá fazer o download gratuito da versão developer para até 10 conexões simultâneas, porém totalmente funcional com todos os recursos do &lt;span class=&quot;caps&quot;&gt;FMIS&lt;/span&gt; que permite a gravação de vídeos e objetos compartilhado do lado do servidor e claro comunicação bilateral, além de streaming sob demanda.&lt;/p&gt;


	&lt;p&gt;O Flash Media Interactive Server 3 (FMIS) sofreu uma pequena mudança no valor ficando em $ 4,500 e o Flash Media Streaming Server (FMSS) ficou mesmo na casa de $ 995.&lt;/p&gt;


	&lt;p&gt;Vale lembrar que agora não existe mais limite de banda e nem de conexões simultâneas.&lt;/p&gt;


	&lt;p&gt;Há rumores por aí de algumas pessoas que fizeram alguns testes com 400 usuários simultâneos que entraram em sessão consumindo 13Mbit de banda e a carga da &lt;span class=&quot;caps&quot;&gt;CPU&lt;/span&gt; ficou em torno de 5%, interessante, eu já baixei o meu e você?&lt;/p&gt;


Grande abraço e bons estudos!
&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-21:12</id>
    <published>2008-01-21T14:31:00Z</published>
    <updated>2008-02-07T12:20:32Z</updated>
    <category term="Tutoriais"/>
    <category term="air"/>
    <category term="alta defini&#231;&#227;o"/>
    <category term="flex"/>
    <category term="hd"/>
    <link href="http://www.fmsguru.com.br/2008/1/21/adobe-air-flex-e-v-deos-de-alta-defini-o" rel="alternate" type="text/html"/>
    <title>AIR, Flex e v&#237;deos de alta defini&#231;&#227;o</title>
<summary type="html">&lt;p&gt;Alguns meses atrás a Adobe liberou uma versão do Flash Player 9 com suporte a vídeos padrões &lt;span class=&quot;caps&quot;&gt;MPEG&lt;/span&gt;-4, incluindo formatos como &lt;span class=&quot;caps&quot;&gt;F4V&lt;/span&gt;, MP4, &lt;span class=&quot;caps&quot;&gt;M4V&lt;/span&gt;, MOV, &lt;span class=&quot;caps&quot;&gt;MP4V&lt;/span&gt;, 3GP, 3G2 que são compressos com o codec H.264 e áudio com &lt;span class=&quot;caps&quot;&gt;HEAAC V2&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;O codec H.264 oferece maior qualidade de vídeo em bitrates mais baixos comparados com o mesmo perfil de codificação Sorenson ou On2. HE-ACC v2 é uma extensão do &lt;span class=&quot;caps&quot;&gt;ACC&lt;/span&gt; que por vez é um padrão definido para o formato de áudio &lt;span class=&quot;caps&quot;&gt;MPEG&lt;/span&gt;-4 vídeo standard que contém técnicas para aumentar com eficiência a codificação de vídeos com baixa qualidade.&lt;/p&gt;


	&lt;p&gt;O Adobe &lt;span class=&quot;caps&quot;&gt;AIR&lt;/span&gt; agora também tem suporte a H.264 e para criar aplicações usando destes recursos é muito simples.&lt;/p&gt;


	&lt;p&gt;Vamos agora criar um componente flex/air para ler estes formados.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Alguns meses atrás a Adobe liberou uma versão do Flash Player 9 com suporte a vídeos padrões &lt;span class=&quot;caps&quot;&gt;MPEG&lt;/span&gt;-4, incluindo formatos como &lt;span class=&quot;caps&quot;&gt;F4V&lt;/span&gt;, MP4, &lt;span class=&quot;caps&quot;&gt;M4V&lt;/span&gt;, MOV, &lt;span class=&quot;caps&quot;&gt;MP4V&lt;/span&gt;, 3GP, 3G2 que são compressos com o codec H.264 e áudio com &lt;span class=&quot;caps&quot;&gt;HEAAC V2&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;O codec H.264 oferece maior qualidade de vídeo em bitrates mais baixos comparados com o mesmo perfil de codificação Sorenson ou On2. HE-ACC v2 é uma extensão do &lt;span class=&quot;caps&quot;&gt;ACC&lt;/span&gt; que por vez é um padrão definido para o formato de áudio &lt;span class=&quot;caps&quot;&gt;MPEG&lt;/span&gt;-4 vídeo standard que contém técnicas para aumentar com eficiência a codificação de vídeos com baixa qualidade.&lt;/p&gt;


	&lt;p&gt;O Adobe &lt;span class=&quot;caps&quot;&gt;AIR&lt;/span&gt; agora também tem suporte a H.264 e para criar aplicações usando destes recursos é muito simples.&lt;/p&gt;


	&lt;p&gt;Vamos agora criar um componente flex/air para ler estes formados.&lt;/p&gt;
&lt;p&gt;Antes de continuar gostaria de dizer que este componente é baseado na idéia de &lt;a href=&quot;http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player.html&quot;&gt;David Hassoun da RealEyes Media.&lt;a /&gt;&lt;/p&gt;


	&lt;p&gt;Este componente estende UIComponent e  adiciona um objeto vídeo em sua estrutura, o código segue abaixo.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
package br.com.fmsguru
{
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; flash.events.NetStatusEvent;
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; flash.media.&lt;span class=&quot;LibraryObject&quot;&gt;Video&lt;/span&gt;;
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; flash.net.&lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;;
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; flash.net.&lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt;;
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; mx.controls.&lt;span class=&quot;LibraryObject&quot;&gt;Alert&lt;/span&gt;;
    &lt;span class=&quot;Keyword&quot;&gt;import&lt;/span&gt; mx.core.UIComponent;

    &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; class &lt;span class=&quot;TypeName&quot;&gt;FmsGuruVideo&lt;/span&gt; extends &lt;span class=&quot;InheritedClassName&quot;&gt;UIComponent&lt;/span&gt;
    {
        &lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; vid&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;Video&lt;/span&gt;;      
        &lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; nc&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;;      
        &lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; ns&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt;;      
        &lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; cli&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;Object&lt;/span&gt;;      
        &lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; _caminho&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;String; 

        &lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;FmsGuruVideo&lt;/span&gt;()
        {
             &lt;span class=&quot;Keyword&quot;&gt;super&lt;/span&gt;();
             &lt;span class=&quot;LibraryFunction&quot;&gt;init&lt;/span&gt;();
        }
        }
}
&lt;/pre&gt;

	&lt;p&gt;A  idéia básica aqui é bem parecida com uma conexão com o servidor &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt;, porém, em vez de conectar ao servidor, vamos abrir uma conexão nula que não irá fazer streaming e sim criar um download progressivo do vídeo.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;init&lt;/span&gt;()&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;      
{      
     vid &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;Video&lt;/span&gt;();          

     nc &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;();      
     nc.&lt;span class=&quot;LibraryFunction&quot;&gt;connect&lt;/span&gt;(&lt;span class=&quot;BuiltInConstant&quot;&gt;null&lt;/span&gt;);           

     ns &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt;(nc);
     ns.&lt;span class=&quot;LibraryFunction&quot;&gt;bufferTime&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;Number&quot;&gt;0.2&lt;/span&gt;;      

     cli &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;Object&lt;/span&gt;();      
     ns.client &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; cli;      
     ns.&lt;span class=&quot;LibraryFunction&quot;&gt;addEventListener&lt;/span&gt;(NetStatusEvent.NET_STATUS, &lt;span class=&quot;LibraryFunction&quot;&gt;onStatus&lt;/span&gt;);

     vid.attachNetStream(ns);

     &lt;span class=&quot;LibraryFunction&quot;&gt;this&lt;/span&gt;.addChild(vid);

     &lt;span class=&quot;Keyword&quot;&gt;if&lt;/span&gt;(_caminho)      
     {      
        ns.&lt;span class=&quot;LibraryFunction&quot;&gt;play&lt;/span&gt;(_caminho);      
     }                 
}
&lt;/pre&gt;

	&lt;p&gt;Criamos uma instância de NetConnection e uma instância para o NetStream ns, que faz um buffer para melhorar a leitura do vídeo, em seguida adicionamos um listener para respoder o status da conexão  para com o arquivo e anexamos a um objeto de video.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;onStatus&lt;/span&gt;(&lt;span class=&quot;FunctionParameter&quot;&gt;obj:NetStatusEvent&lt;/span&gt;)&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;
{ 
}
&lt;/pre&gt;

	&lt;p&gt;Na função onStatus simplesmente comparamos as mensagens para serem mostradas ao usuário.&lt;/p&gt;


	&lt;p&gt;E para finalizar nosso componente criamos dois métodos get e set para mostrar o caminho do arquivo que queremos dar um play.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
[Bindable]
&lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;LibraryFunction&quot;&gt;get&lt;/span&gt; filePath()&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;String      
{      
    &lt;span class=&quot;Keyword&quot;&gt;return&lt;/span&gt; _caminho;      
}      

&lt;span class=&quot;Keyword&quot;&gt;public&lt;/span&gt; function &lt;span class=&quot;LibraryFunction&quot;&gt;set&lt;/span&gt; filePath(p_path&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;String)&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;
{      
    _caminho &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; p_path;      
    ns.&lt;span class=&quot;LibraryFunction&quot;&gt;play&lt;/span&gt;(_caminho);      
} 
&lt;/pre&gt;

	&lt;p&gt;Prontinho o componente esta pronto para uso. Para testar  basta adiciona-lo assim:&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;&lt;span class=&quot;MarkupTag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;mx&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;WindowedApplication&lt;/span&gt; &lt;span class=&quot;MarkupTagAttribute&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;MarkupTagAttribute&quot;&gt;&lt;span class=&quot;MarkupTagAttribute&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupTagAttribute&quot;&gt;mx&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;http://www.adobe.com/2006/mxml&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;                        &lt;span class=&quot;MarkupTagAttribute&quot;&gt;layout&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;absolute&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;                        &lt;span class=&quot;MarkupTagAttribute&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;MarkupTagAttribute&quot;&gt;&lt;span class=&quot;MarkupTagAttribute&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupTagAttribute&quot;&gt;video&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;br.com.fmsguru.*&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupTag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;

    &lt;span class=&quot;MarkupTag&quot;&gt;&lt;span class=&quot;MarkupTag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;video&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;FmsGuruVideo&lt;/span&gt; &lt;span class=&quot;MarkupTagAttribute&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;_videoGuru&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;                        &lt;span class=&quot;MarkupTagAttribute&quot;&gt;filePath&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;curtacircuito007.m4v&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupTag&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;MarkupTag&quot;&gt;&lt;span class=&quot;MarkupTag&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;mx&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;WindowedApplication&lt;/span&gt;&lt;span class=&quot;MarkupTag&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;

	&lt;p&gt;Neste exemplo estamos fazendo a leitura do arquivo .M4V direto pelo file system, vale lembrar que o sandbox do &lt;span class=&quot;caps&quot;&gt;AIR&lt;/span&gt; deixa acessar a máquina local, mas se este componente for usado em uma aplicação Flex, o arquivo só poderá ser lido diretamente de alguma url.&lt;/p&gt;


	&lt;p&gt;Para fazer o download da aplicação e do componente &lt;a href=&quot;/assets/2008/1/21/AirOnH264.rar&quot;&gt;basta clicar aqui&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Grande abraço!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-21:11</id>
    <published>2008-01-21T12:33:00Z</published>
    <updated>2008-02-07T12:20:33Z</updated>
    <category term="developer"/>
    <category term="flash media server"/>
    <category term="fms"/>
    <link href="http://www.fmsguru.com.br/2008/1/21/flash-media-development-server" rel="alternate" type="text/html"/>
    <title>Flash Media Development Server</title>
<content type="html">
            &lt;p&gt;Para quem não sabe, existe uma versão free do &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; para download disponível no site da Adobe. Esta versão é chamada de Flash Media Server Developer Edition.&lt;/p&gt;


	&lt;p&gt;Ela é totalmente completa provendo de todos os recursos disponíveis em outras versões como o &lt;span class=&quot;caps&quot;&gt;FMIS&lt;/span&gt; e o &lt;span class=&quot;caps&quot;&gt;FMSS&lt;/span&gt;, porém a única restrição é a quantidade de conexões simultanêas que é limitada a 10, e vale resaltar que ela nunca expira. Com esta versão seu ambiente de desenvolvimento ficará completo podendo usar em testes sobre sua internet e intranet.&lt;/p&gt;


	&lt;p&gt;E se você gostar, basta fazer a aquisição da licença e inserir em sua versão de desenvolvimento e voilá! Automaticamente ele será atualizado para a versão adquirida.&lt;/p&gt;


	&lt;p&gt;Para fazer o download basta clicar no link abaixo:&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/cfusion/tdrc/index.cfm?product=flashmediaserver&quot;&gt;Download do &lt;span class=&quot;caps&quot;&gt;FMDS&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-21:6</id>
    <published>2008-01-21T12:30:00Z</published>
    <updated>2008-02-07T12:20:34Z</updated>
    <category term="V&#237;deo tutoriais"/>
    <category term="chat"/>
    <category term="tutorial"/>
    <category term="video"/>
    <link href="http://www.fmsguru.com.br/2008/1/21/simples-chat-flex-fms" rel="alternate" type="text/html"/>
    <title>Flex + FMS, um simples chat </title>
<content type="html">
            &lt;p&gt;Esta semana vamos lançar nosso primeiro vídeo tutorial, onde vamos criar um simples chat que você poderá usar em seu webblog, site ou até mesmo em sua empresa.&lt;/p&gt;


	&lt;p&gt;Este chat será criado com Flex 3 beta public 3 e &lt;span class=&quot;caps&quot;&gt;FMS 2&lt;/span&gt; &#8211; Developer Edition.&lt;/p&gt;


	&lt;p&gt;O vídeo estará disponível por streaming via fms.&lt;/p&gt;


	&lt;p&gt;Aguarde as novidades!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-18:4</id>
    <published>2008-01-18T17:22:00Z</published>
    <updated>2008-02-07T12:21:01Z</updated>
    <category term="Tutoriais"/>
    <category term="flash media server"/>
    <category term="flex"/>
    <category term="fms"/>
    <category term="tutoriais"/>
    <link href="http://www.fmsguru.com.br/2008/1/18/1-flex-flash-media-server" rel="alternate" type="text/html"/>
    <title>Flex + FMS, compartilhando a webcam</title>
<summary type="html">&lt;p&gt;Neste primeiro tutorial vamos fazer uma introdução ao desenvolvimento de aplicações multimedias usando Flex + Flash Media Server.&lt;/p&gt;

&lt;p&gt;Através de uma abordagem simples e com vários exemplos de código você irá aprender a transmitir ao vivo sua webcam ou dispositivo de vídeo através de uma aplicação Flex, compartilhando assim com seus amigos da web.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Neste primeiro tutorial vamos fazer uma introdução ao desenvolvimento de aplicações multimedias usando Flex + Flash Media Server.&lt;/p&gt;

&lt;p&gt;Através de uma abordagem simples e com vários exemplos de código você irá aprender a transmitir ao vivo sua webcam ou dispositivo de vídeo através de uma aplicação Flex, compartilhando assim com seus amigos da web.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Flex + &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt;, compartilhando a webcam&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Um dia passamos pela web estática, hoje temos uma internet totalmente interativa e motivada por grandes multidões que estão conectadas as redes sociais dos mais variados tipos. E depois do &lt;span class=&quot;caps&quot;&gt;BOOM&lt;/span&gt; vem a era multimídia sobre a internet, vídeos de alta definição(HD), redes sociais baseados em vídeos, fóruns baseados em comentários por áudios, podcasts, screencasts até filme inteiros é possível assistir hoje pela internet, isso tudo graças a doção, barateamento e o aumento da conexão de cada empresa, escola ou residência.&lt;/p&gt;


	&lt;p&gt;Ta mais o que isso tem haver com Flex + &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt;? TUDO! Claro que tem a ver com tudo, com Flex temos todo o poder para criar aplicações ricas de interatividade e até mesmo as aplicações citadas acima. E com o Flash Media Server podemos estender este poder para algo mais além, algo mais interativo com áudio, vídeo e iteração multimídia em tempo real.&lt;/p&gt;


	&lt;p&gt;Quando começamos a desenvolver o Treina &lt;span class=&quot;caps&quot;&gt;TOM&lt;/span&gt; não sabíamos que o Flex encaixaria com uma luva nesta implementação, a Adobe fez jus ao framework deixando ele totalmente flexível para o desenvolvimento também de aplicações multimídias, e com o Actionscript 3 foi fácil entender, pois a curva de aprendizado é bem baixa tornando o desenvolvimento mais produtivo.&lt;/p&gt;


	&lt;p&gt;Para você que não conhece o Actionscript 3 ou vem do  Actionscript 2, não se preocupe, pois na mudança do Actionscript 2 para o Actionscript 3 a Adobe levou boa parte de sua estrutura e classes para um paradigma de análise, projeto e programação baseado na composição e interação entre diversas unidades que podemos chamar de objetos. Por isso vamos encontrar nomes de objetos idênticos a que era usado no &lt;span class=&quot;caps&quot;&gt;AS2&lt;/span&gt;, porém agora eles são implementados de forma um pouco mais organizada e muito mais orientados a objetos.&lt;/p&gt;


	&lt;p&gt;A curva de aprendizado do Actionscript 3 é realmente baixa comparada a muitas linguagens de programação que existe hoje. &lt;span class=&quot;caps&quot;&gt;AS3&lt;/span&gt; é baseado no ECMAScript, assim como o Javascript. No Flex usamos o Actionscript para definir a lógica de nossa aplicação e o &lt;span class=&quot;caps&quot;&gt;MXML&lt;/span&gt; para definir a interface da aplicação.&lt;/p&gt;


	&lt;p&gt;Desenvolver aplicações com Flex é muito bom, ou melhor, bom * 1000 De tão interativo que é, logo a paixão chega, e não é a toa que o Flex é um dos frameworks que mais cresce o número de empresas e desenvolvedores adotando-o.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;E por onde começamos a aprender a fazer tudo isso?&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Simples&#8230; Creio que você já sabe o que é Flex, e sabe claro o que é Flash Media Server, e têm eles instalados em sua máquina, então é hora de colocar a mão na massa!&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Vamos recapitular, o que vamos fazer?&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Bom este é simplesmente o primeiro tutorial de uma série de tutoriais que vamos criar aqui, para compartilhar com todos vocês a nossa expertisse que é Flex + Flash Media Server. E quem sabe em um futuro próximo Ruby on Rails?
Neste tutorial vamos criar nossa primeira integração de Flex + &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; e de cara compartilhar pela internet a sua webcam ou qualquer outro dispositivo de vídeo ligado à máquina, então mãos a obra!&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;É hora de codar!&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;O primeiro passo é, crie um projeto dentro de seu Flex Builder chamado:&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;CompartilhandoAWebcam&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Este projeto será composto pelo arquivo principal:&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;CompartilhandoAWebcam.mxml&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Para esta aplicação iremos precisar somente de três funções, uma que cria a conexão com o servidor chamada de init(), uma que aguarda receber o status desta conexão chamada netStatus() e outra que vai dar um play na publicação enviada ao servidor que é chamada de cameraShow().&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; nc&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;;
&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; nsCli&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt;;
&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; nsPub&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt;;

&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;init&lt;/span&gt;()&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;
{
 &lt;span class=&quot;Keyword&quot;&gt;if&lt;/span&gt;(nc){
  nc.&lt;span class=&quot;LibraryFunction&quot;&gt;close&lt;/span&gt;()
 }
 nc &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;();
 &lt;span class=&quot;LibraryObject&quot;&gt;NetConnection&lt;/span&gt;.defaultObjectEncoding &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; flash.net.ObjectEncoding.AMF0;
 nc.objectEncoding &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; ObjectEncoding.AMF0;
 nc.&lt;span class=&quot;LibraryFunction&quot;&gt;addEventListener&lt;/span&gt;( NetStatusEvent.NET_STATUS, netStatus );
 nc.&lt;span class=&quot;LibraryFunction&quot;&gt;connect&lt;/span&gt;(&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;rtmp://localhost/fmsguru/&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
}
&lt;/pre&gt;

	&lt;p&gt;A função init() é chamada assim que a aplicação é carregada através do evento creationComplete, dentro de seu corpo é criado uma instância do  netConnection através da variavel nc.&lt;/p&gt;


	&lt;p&gt;Por default no Flex é usado a versão 3 do &lt;span class=&quot;caps&quot;&gt;AMF&lt;/span&gt;, então é preciso setar o netConnection com o tipo de encoding correto ao do servidor &lt;span class=&quot;caps&quot;&gt;FMS 2&lt;/span&gt; que é a versão do &lt;span class=&quot;caps&quot;&gt;AMF 0&lt;/span&gt;. Mas isso já foi resolvido com o &lt;span class=&quot;caps&quot;&gt;FMS 3&lt;/span&gt;, pois irá suportar nativamente o &lt;span class=&quot;caps&quot;&gt;AMF 3&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;O próximo passo é adicionar um listener que identificará o status da conexão, passando assim um objeto para a função netStatus.&lt;/p&gt;


	&lt;p&gt;E para chamar a conexão através do método connect do netConnection passamos o endereço e o nome da aplicação criada no servidor fms. Por default usaremos o &lt;span class=&quot;caps&quot;&gt;RTMP&lt;/span&gt; e o nome da aplicação fmsguru.&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;/assets/2008/1/21/FMSEstrutura1.png&quot; /&gt;
&lt;p&gt;
Para criar uma aplicação fms simples que só responderá as conexões e não precisa responder procedimentos remotos basta criar uma pasta dentro do diretório application da instalação de seu fms, conforme figura .
&lt;/p&gt;&lt;/p&gt;


	&lt;p&gt;Com a função init pronta agora precisamos receber o status da conexão, para isso precisamos fazer algumas comparações com o resultado enviado através do evento &lt;span class=&quot;caps&quot;&gt;NET&lt;/span&gt;_Status do netConnection.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;netStatus&lt;/span&gt;(&lt;span class=&quot;FunctionParameter&quot;&gt; event:NetStatusEvent &lt;/span&gt;)&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;
{
 &lt;span class=&quot;Keyword&quot;&gt;switch&lt;/span&gt;( &lt;span class=&quot;LibraryFunction&quot;&gt;event&lt;/span&gt;.info.code ) {

 &lt;span class=&quot;Keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;NetConnection.Connect.Success&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;
  _label_status.&lt;span class=&quot;LibraryFunction&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;Status: Conexão realizada com sucesso!&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
  nsPub &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt; ( nc );
  nsPub.attachCamera(&lt;span class=&quot;LibraryObject&quot;&gt;Camera&lt;/span&gt;.getCamera());
  nsPub.&lt;span class=&quot;LibraryFunction&quot;&gt;publish&lt;/span&gt;(&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;myVideo&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
 &lt;span class=&quot;Keyword&quot;&gt;break&lt;/span&gt;;

 &lt;span class=&quot;Keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;NetConnection.Connect.Closed&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;
  _label_status.&lt;span class=&quot;LibraryFunction&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;Status: Conexão fechada!&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;                  
 &lt;span class=&quot;Keyword&quot;&gt;break&lt;/span&gt;;

 &lt;span class=&quot;Keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;NetConnection.Connect.Rejected&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;
  _label_status.&lt;span class=&quot;LibraryFunction&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;Status: Conexão rejeitada!&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;   
 &lt;span class=&quot;Keyword&quot;&gt;break&lt;/span&gt;;                    
 }
}
&lt;/pre&gt;

	&lt;p&gt;A função netStatus então recebe o status da conexão que através de um switch faz a comparação com o código enviado pelo servidor &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;NetConnection.Connect.Success =&amp;gt; Retorno de conexão realizada com sucesso.&lt;/p&gt;


	&lt;p&gt;NetConnection.Connect.Closed  =&amp;gt;  Retorno identificando que a conexão foi fechada.&lt;/p&gt;


	&lt;p&gt;NetConnection.Connect.Rejected =&amp;gt; Retorno identificando que a conexão foi rejeitada.&lt;/p&gt;


	&lt;p&gt;Dentro da condição de conexão realizada com sucesso criamos uma instância do NetStream. Esta classe abre uma comunicação para streaming entre a aplicação que esta rodando sobre o Flash Player e o Flash Media Server ou com o sistema de arquivos local, este objeto é um canal que roda dentro do NetConnection que pode publicar e receber dados, utilizando NetSream.publish ou NetStream.play, publicando assim áudio e vídeo em tempo real. Você também pode usar um objeto NetStream para enviar mensagens de texto ou objetos inteiros para todos os clientes que estão conectados a mesma instância da aplicação corrente usando um NetStream.send.&lt;/p&gt;


	&lt;p&gt;Assim que recebemos o resultado do servidor que a conexão foi realizada com sucesso anexamos a câmera default detectada pelo Flash Player.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
  nsPub &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt; ( nc );
  nsPub.attachCamera(&lt;span class=&quot;LibraryObject&quot;&gt;Camera&lt;/span&gt;.getCamera());
  nsPub.&lt;span class=&quot;LibraryFunction&quot;&gt;publish&lt;/span&gt;(&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;myVideo&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
&lt;/pre&gt;

	&lt;p&gt;Quando criamos uma instância do NeStream é preciso passar para ele quem é o NetConnection, para assim anexar o dispositivo de vídeo ou microfone.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
nsPub.attachCamera(&lt;span class=&quot;LibraryObject&quot;&gt;Camera&lt;/span&gt;.getCamera());
&lt;/pre&gt;

	&lt;p&gt;Com Câmera.getCamera capturamos o dispositivo de vídeo 0 encontrado pelo Flash Player. Para listar todos os dispositivos basta buscar por Camera.names que irá retornar um array contendo os nomes dos dispositivos de vídeos.&lt;/p&gt;


	&lt;p&gt;Assim que anexamos com attachCamera é preciso publicar este dispositivo, para isso usamos nsPub.publish(“e o nome do vídeo”). O nome do vídeo pode ser qualquer string que o client irá encontrar no servidor para dar um play, é desta mesma maneira que podemos publicar vídeos em &lt;span class=&quot;caps&quot;&gt;FLV&lt;/span&gt;, mas isso é um assunto para outro tutorial.&lt;/p&gt;


	&lt;p&gt;Bom, já temos uma conexão com o servidor e a webcam sendo publicada, agora é preciso dar um play nesta publicação para ver o vídeo que esta sendo transmitido.&lt;/p&gt;


	&lt;p&gt;A função cameraShow() é a responsável por isso, quando clicarmos no botão _btnCamShow a função irá fazer uma comparação identificando o label e em seguida abrir uma nova instância do NetStream que irá rodar sobre a variável nsCli.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;Keyword&quot;&gt;private&lt;/span&gt; function &lt;span class=&quot;FunctionName&quot;&gt;cameraShow&lt;/span&gt;()&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryFunction&quot;&gt;void&lt;/span&gt;
{
   &lt;span class=&quot;Keyword&quot;&gt;if&lt;/span&gt;(_btnCamShow.&lt;span class=&quot;LibraryFunction&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;Camera Show!&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;){
      _btnCamShow.&lt;span class=&quot;LibraryFunction&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;Publicando!&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;; 

      nsCli &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;NetStream&lt;/span&gt; ( nc )

      &lt;span class=&quot;Keyword&quot;&gt;var&lt;/span&gt; vid&lt;span class=&quot;Keyword&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;LibraryObject&quot;&gt;Video&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;LibraryObject&quot;&gt;Video&lt;/span&gt;();
      vid.&lt;span class=&quot;LibraryFunction&quot;&gt;height&lt;/span&gt; &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; _myVideoComponent.&lt;span class=&quot;LibraryFunction&quot;&gt;height&lt;/span&gt;;
    vid.&lt;span class=&quot;LibraryFunction&quot;&gt;width&lt;/span&gt;  &lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt; _myVideoComponent.&lt;span class=&quot;LibraryFunction&quot;&gt;width&lt;/span&gt;;
    vid.attachNetStream( nsCli );

    _myVideoComponent.addChild( vid );

    nsCli.&lt;span class=&quot;LibraryFunction&quot;&gt;play&lt;/span&gt;(&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;myVideo&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

   }&lt;span class=&quot;Keyword&quot;&gt;else&lt;/span&gt;{
    nsCli.&lt;span class=&quot;LibraryFunction&quot;&gt;close&lt;/span&gt;();
    _btnCamShow.&lt;span class=&quot;LibraryFunction&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;Keyword&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;Camera Show!&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
   } 
}
&lt;/pre&gt;

	&lt;p&gt;Parte do corpo deste código é parecido com a publicação do NetStream nsPub, a diferença é que lá publicamos o dispositivo anexado, e aqui damos um play na publicação myVideo.&lt;/p&gt;


	&lt;p&gt;Criamos também um novo objeto Vídeo que anexamos com attachNetStream ao NetStream nsCli, e assim que anexado adicionamos a um componente UIComponent.&lt;/p&gt;


&lt;pre class=&quot;eiffel&quot;&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;&lt;span class=&quot;MarkupTag&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;mx&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupNameOfTag&quot;&gt;UIComponent&lt;/span&gt; &lt;span class=&quot;MarkupTagAttribute&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;_myVideoComponent&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;    &lt;span class=&quot;MarkupTagAttribute&quot;&gt;width&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;163&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;    &lt;span class=&quot;MarkupTagAttribute&quot;&gt;height&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;130&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;    &lt;span class=&quot;MarkupTagAttribute&quot;&gt;verticalCenter&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;-10&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;  &lt;/span&gt;
&lt;span class=&quot;MarkupTag&quot;&gt;    &lt;span class=&quot;MarkupTagAttribute&quot;&gt;horizontalCenter&lt;/span&gt;=&lt;span class=&quot;String&quot;&gt;&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;0&lt;span class=&quot;String&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;MarkupTag&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;

	&lt;p&gt;Pronto, a lógica da aplicação esta pronta!&lt;/p&gt;


	&lt;p&gt;Agora você já poderá adicionar o botão btn_Show e o label _labelStatus que irá mostrar o status da conexão , em seguida compilar e rodar.&lt;/p&gt;


	&lt;p&gt;Para acompanhar o resultado do streaming você pode abrir o Management Console do &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; e ver o resultado da trasmissão que esta ocorrendo sobre a aplicação fmsguru.&lt;/p&gt;


	&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;O C&lt;/span&gt;ódigo fonte desta aplicação esta disponível &lt;a href=&quot;/assets/2008/1/21/CompartilhandoAWebcam.rar&quot;&gt;aqui para download&lt;/a&gt;, caso tenha alguma dúvida é só deixar um comentário aqui pra gente e não esqueça de compartilhar com a gente o que você achou deste tutorial.&lt;/p&gt;


	&lt;p&gt;Grande abraço e boa diversão!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-18:2</id>
    <published>2008-01-18T14:57:00Z</published>
    <updated>2008-02-07T12:21:16Z</updated>
    <category term="Tutoriais"/>
    <category term="fms"/>
    <link href="http://www.fmsguru.com.br/2008/1/18/flash-media-server-3-esta-pr-ximo" rel="alternate" type="text/html"/>
    <title>Flash Media Server 3</title>
<summary type="html">&lt;p&gt;&lt;img src=&quot;/assets/2008/1/18/fms3.jpg&quot; /&gt;
&lt;p&gt;Nas próximas semanas a Adobe deve fazer o lançamento oficial da nova versão do Flash Media Server  que contará com novas features que vão realmente fazer a diferença comparada a versão atual.&lt;/p&gt;
&lt;p&gt;Mas antes de continuar deixa-me compartilhar com você o que é realmente o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt;.&lt;/p&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;&lt;img src=&quot;/assets/2008/1/18/fms3.jpg&quot; /&gt;
&lt;p&gt;Nas próximas semanas a Adobe deve fazer o lançamento oficial da nova versão do Flash Media Server  que contará com novas features que vão realmente fazer a diferença comparada a versão atual.&lt;/p&gt;
&lt;p&gt;Mas antes de continuar deixa-me compartilhar com você o que é realmente o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt;.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;O que é Flash Media Server?&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;/assets/2008/1/18/fms3.jpg&quot; /&gt;
&lt;p&gt;Flash Media Server ou &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; é um robusto servidor de streaming de áudio e vídeo da Adobe. Criado em 2002 pela Macromedia ainda com o nome de Flash Communication Server &lt;span class=&quot;caps&quot;&gt;MX 1&lt;/span&gt;.0 e logo em 2005 mudado para Macromedia Flash Media Server 2, o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; é uma das* melhores soluções para a distribuição síncrona de conteúdo rico para a internet.&lt;/p&gt;


	&lt;p&gt;Após a Adobe fazer a aquisição da Macromedia, o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; ganhou algumas correções e entrou também para o time de soluções corporativas da Adobe.&lt;/p&gt;


	&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;O FMS 2&lt;/span&gt; oferece soluções para demanda de streaming de vídeos em &lt;span class=&quot;caps&quot;&gt;FLV&lt;/span&gt; e áudios em &lt;span class=&quot;caps&quot;&gt;MP3&lt;/span&gt;, possuindo também recursos síncrono para comunicações de vídeo conferências, dados, gravação de áudio e vídeo, suporte a &lt;span class=&quot;caps&quot;&gt;SSL&lt;/span&gt; e montagem de cluster.&lt;/p&gt;


	&lt;p&gt;Sua linguagem server-side é Actionscript e o protocolo de comunicação é o Real time Messaging Protocol. &lt;span class=&quot;caps&quot;&gt;O RTMP&lt;/span&gt; é um protocolo proprietário criando pela Macromedia (Agora Adobe) para streaming de áudio, vídeo e dados pela internet usando uma comunicação persistente entre uma aplicação que roda sobre o Flash Player e o servidor.&lt;/p&gt;


	&lt;p&gt;Este protocolo trabalha em cima do &lt;span class=&quot;caps&quot;&gt;TCP&lt;/span&gt; e usa como porta padrão a 1935, mas caso, a rede da empresa tenha algumas regras de segurança, é possível usar o &lt;span class=&quot;caps&quot;&gt;RTMPT&lt;/span&gt; que é encapsulada dentro de requisições &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; passando assim pelos firewalls da vida, este processo é chamado também de &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; tunneling.&lt;/p&gt;


	&lt;p&gt;Há não posso de deixar de citar o &lt;span class=&quot;caps&quot;&gt;RTMPS&lt;/span&gt; que funciona sobre o &lt;span class=&quot;caps&quot;&gt;RTMPT&lt;/span&gt;, que cria uma conexão segura &lt;span class=&quot;caps&quot;&gt;HTTPS&lt;/span&gt; para as comunicações de dados síncronos ou não.&lt;/p&gt;


	&lt;p&gt;Estes são alguns recursos que o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; usa em sua estrutura, mas não para por ai, com o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; e um pouco de criatividade é possível ir além de vídeos e áudios, é possível criar jogos ou redes sociais, com o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; um mundo novo se abre e o que manda aqui é realmente a sua criatividade.&lt;/p&gt;


	&lt;p&gt;Hoje existe muitas empresas e grandes corporações usando o Flash Media Server e algumas delas é o Youtube, Odeo Studio, Uol, StimTV, thePlatform e outras como a Brightcove.&lt;/p&gt;


	&lt;p&gt;Recentemente, em novembro de 2007 a Adobe fez o anúncio da nova versão, o &lt;span class=&quot;caps&quot;&gt;FMS 3&lt;/span&gt;. Com o Flash Player 9 suportando vídeos HD usando também o codec H.264, o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; também não ficou para traz, agora contando com duas versões a &lt;span class=&quot;caps&quot;&gt;FMIS&lt;/span&gt; e o &lt;span class=&quot;caps&quot;&gt;FMSS&lt;/span&gt;, o servidor teve grandes mudanças em sua estrutura e uma nova forma de comercialização.&lt;/p&gt;


	&lt;p&gt;A forma de comercialização do &lt;span class=&quot;caps&quot;&gt;FMS 2&lt;/span&gt; é baseada na Origin/Edge um servidor full para também montagem de cluster e o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; Professional que possui em sua estrutura profiles e estes profiles é que definem a quantidade de banda x quantidade de usuários que seu servidor vai suportar, forçando assim a compra de mais licenças.&lt;/p&gt;


	&lt;p&gt;Agora com o &lt;span class=&quot;caps&quot;&gt;FMS 3&lt;/span&gt; isso acabou, teremos banda ilimitada e quantidade de conexões simultâneas também ilimitadas, e claro um preço mais justo.&lt;/p&gt;


	&lt;p&gt;O Adobe Flash Media Interactive Server 3(FMIS) é a versão do servidor mais completa onde além de streaming você poderá criar aplicações síncronas para eventos, vídeos conferencias com áudio e  áudio e vídeo, dados, redes sociais, chat dentre outros, nesta versão é possível a comunicação bilateral, client x server, e server x client.&lt;/p&gt;


	&lt;p&gt;Já o Adobe Flash Media Streaming Server 3(FMSS) é a versão mais simples que permite fazer somente streaming de vídeos e áudio, nesta versão não é possível a comunicação bilateral.&lt;/p&gt;


	&lt;p&gt;Vale lembrar que existe desde o &lt;span class=&quot;caps&quot;&gt;FMS 2&lt;/span&gt; a Developer Edition com todas funcionalidades, porém com limite de 10 conexões simultanêas o que é essencial para um treinamento ou um verdadeiro ambiente de desenvolvimento.&lt;/p&gt;


	&lt;p&gt;Vou citar agora algumas das features que estão disponíveis nestas versões.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Maior desempenho&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;O desempenho de streaming de vídeos foram dobradas nesta nova versão do &lt;span class=&quot;caps&quot;&gt;FMS3&lt;/span&gt;, permitindo assim uma maior quantidade de usuários por servidor, que eram características somente encontradas nas versões anteriores do &lt;span class=&quot;caps&quot;&gt;FMS 2&lt;/span&gt; Edge e Origin.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Conteúdo seguro&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;O Flash Media Server 3 possui um novo protocolo chamado de &lt;span class=&quot;caps&quot;&gt;RTMPE&lt;/span&gt;, uma versão melhorada do protocolo Real Time Messaging Protocol (RTMP), com um maior desempenho e pronto para ajudar a garantir a integridade dos dados que agora são encriptados com 128 bits. Com este recurso é possível também proteger o arquivo swf que evita que o swf seja usado em locais não autorizados.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Suporte a codecs como H.264 e áudio com HE-ACC&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Agora é possível usar vídeos de alta qualidade(HD) de até 1080p sobre o Flash Player, Adobe &lt;span class=&quot;caps&quot;&gt;AIR&lt;/span&gt;, Adobe Media Player e que agora também através do Flash Media Enconder + Flash Media Server 3 será possível fazer streaming e criar conteúdos de alta qualidade reduzindo também o custo de compartilhamento com o uso de banda.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Maior performace e qualidade em eventos ao vivo&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Alta performance em eventos ao vivo usando H.264 e On2 &lt;span class=&quot;caps&quot;&gt;VP6&lt;/span&gt; é suportado agora com o Flash Media Enconder 2, provendo assim qualidades em vídeos de noticias, eventos e sites sociais que produzem conteúdos dinâmicos em tempo real.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Suporte ao Flash Lite 3&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Vídeos e áudios sob demanda agora é suportado por dispositivos móveis com suporte a plataforma Flash Lite 3. O mesmo vídeo que funciona em seu navegador agora você poderá ser visto diretamente pela tela de seu celular.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Nova arquitetura de plugins&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;Integração com outros servidores, serviços e workflow é suportado pela arquitetura de plugins do Flash Media Server 3. Com três classes de plugins que permite controlar acessos ao servidor, conectividade e segurança.&lt;/p&gt;


	&lt;p&gt;Bom, estas são algumas das novidades que o &lt;span class=&quot;caps&quot;&gt;FMS 3&lt;/span&gt; irá suportar em sua arquitetura, foi uma breve introdução na verdade e nós aqui do FMSGuru Brasil vamos continuar a compartilhar sobre as novidades do desenvolvimento de aplicações ricas com o &lt;span class=&quot;caps&quot;&gt;FMS 3&lt;/span&gt; e todas as suas novidades.&lt;/p&gt;


	&lt;p&gt;Espero que tenha gostado.&lt;/p&gt;


Grande abraço!
&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.fmsguru.com.br/">
    <author>
      <name>egenial</name>
    </author>
    <id>tag:www.fmsguru.com.br,2008-01-18:1</id>
    <published>2008-01-18T13:55:00Z</published>
    <updated>2008-02-20T12:18:41Z</updated>
    <link href="http://www.fmsguru.com.br/2008/1/18/bem-vindo-ao-fms-guru" rel="alternate" type="text/html"/>
    <title>FMS Guru Brasil, o que &#233; realmente?</title>
<content type="html">
            &lt;p&gt;Este é o primeiro post de abertura deste mais novo webblog.&lt;/p&gt;


	&lt;p&gt;Aqui vamos falar de muitas coisas ligadas ao desenvolvimento rico de aplicações web bem como soluções em streaming, áudio e vídeo usando tecnologias Adobe ou não.&lt;/p&gt;


	&lt;p&gt;Este webblog foi criado com um objetivo fundamental que é o compartilhamento de idéias, técnicas e dicas do dia a dia que vão te ajudar a entrar neste mercado que mais cresce hoje na internet, o mercado de soluções e streaming sobre demanda.&lt;/p&gt;


	&lt;p&gt;Baseado em um estudo que fizemos hoje existe pouca documentação brasileira que trata de assuntos ligados a servidores de streaming de áudio e vídeo, e por isto que o &lt;span class=&quot;caps&quot;&gt;FMS&lt;/span&gt; Guru Brasil nasceu, para suprir esta necessidade.&lt;/p&gt;


	&lt;p&gt;Então desde já queremos te dar boas vindas ao primeiro repositório do brasil de artigos, tutoriais e vídeos tutoriais sobre Flash Media Server e sua integração com Flex e Adobe &lt;span class=&quot;caps&quot;&gt;AIR&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Se você quer aprender mais sobre estas tecnologias ou dar dicas para criarmos novos artigos, entre em contato conosco pois seu feedback será sempre bem vindo.&lt;/p&gt;


	&lt;p&gt;Grande abraço!&lt;/p&gt;
          </content>  </entry>
</feed>
