Tom Krcha's FlashRealtime

Hey amigo! These are my notes. I'm Platform Evangelist with Adobe.


Deploying Flash P2P app on Facebook

October 14th, 2009

The magic of P2P apps is definitely their distribution and deployment. In this article we are going to deploy our Stratus P2P Flash video-chat to Facebook using Facebook ActionScript API and fingerprint exchange service in PHP and MySQL.

This article is a follow-up of my Adobe MAX 2009 session: Social Media Experiences with Flash Media and RTMFP.


Read the rest of this entry »

List of RTMP clients
control FMS remotely

August 24th, 2009

When building realtime applications, you would probably like to control Flash Media Server or LiveCycle DS remotely to push messages from 3rd party software.

RTMP client

The use-case is obvious, connecting two realtime/messaging services together. Imagine a pipe of messages on one side utilizing e.g. JMS (Java Message Service - http://java.sun.com/products/jms/) and on the other side FMS, which is pushing this into Flash Player clients.

In most cases, connecting RTMP servers with 3rd party services might be very useful, so this is why I have created this list of RTMP clients…
Read the rest of this entry »

Basics of P2P in Flash

May 31st, 2009

This videotutorial explains the basics of working with P2P (peer to peer) in Flash Player 10.

I made this tutorial with focus on simplicity of this fantastic feature of Flash. There are bunch of articles and examples in the world showing how to create your own P2P app, but most of them are very complex or hard to catch.

In this tutorial you’ll get idea how to connect two different peers and exchange data between them with ActionScript 3.0 and Flex only.

Prerequsites:
- familiarity with ActionScript 3 and Flex Framework
- Flash Player 10 Debug version installed download
- Flex Framework 3.3+ download

P2P in Flash

Videotutorial: http://flashrealtime.com/tuts/p2p-in-flash.html (20 min.) 
Try: P2P demo (run in two browsers, explained in video)
Source: download P2P.mxml.zip

Note: Programatically the main P2P logic is not to connect peers together just via NetConnection, but by defining peerIDs to NetStream.
PS: don’t forget to change your Flex Compiler settings to use Flash Player 10
Btw: nice P2P Mill Game done by my friend Pavel Šimek http://nestor.cz/mill/ 

Good Luck!

Multi-Bitrate Dynamic Streaming with Flex and FMS 3.5 (Videotutorial)

March 27th, 2009

This video tutorial will guide you through the process of creating Flex Video Player utilizing latest Flash Player 10 feature - Multi-Bitrate Dynamic Streaming - in connection with Flash Media Server 3.5.

 

Download DynamicStream and DynamicStreamItem classes at FMS Tools Page

Flex Project source files download

Requirements:

 
Note: If you want to test DynamicStream properly, you would probably need to shape your network traffic bandwidth. For this purpose, I propose you to download NoobProof utility, which uses IPFW on Mac or NetLimiter for Windows.

PS: FMS 3.5 Development server is free for commercial use with 10 connected simultaneous clients … so why not to start experimenting today? :)

P2P ve Flash Playeru 10 už nyní a CoCoMo

December 1st, 2008

Spousta z vás jistě zaregistrovala podporu P2P ve Flash Playeru 10. Jedná se o zajímavou funkci, ale nikde není zdokumentovaná, informace k ní pouze mlhavé a jak to tedy vůbec je?

Rád bych tak navázal na květnový sneak peek článek Patrika Zandla: Adobe Flash ve verzi 10 přináší podporu P2P a doplnil některé části.

Flash Player 10 podporuje nový protokol RTMFP - Real Time Media Flow Protocol, který je postavený na bedrech UDP. Jedná se o ztrátový protokol, což výrazně snižuje latenci oproti předchozímu RTMP postaveném na TCP. RTMFP byl vyvinutý hlavně pro potřeby IP-telefonie - audio/video chatů, ale je vhodný i pro multiplayer hry. Výsledná aplikace zpravidla kombinuje výhody RTMFP a RTMP.

V současné době rozlišujeme 3 druhy P2P:

1) end-to-end user - přímé propojení peerů

2) swarming (rojení) - typickým případem je bitTorrent

3) multicast - propagace zpravidla streamu do sítě a následný odběr peery, výrazně snižuje datové nároky na přenos, protože se stream šíří pouze jednou. Využití: IPTV, broadcasting

Flash Player 10 podporuje z bezpečnostních důvodů pouze end-to-end P2P a nebude možné vytvářet aplikace pro masivní sdílení souborů či televize (Bittorrent či Joost nepostavíte na Flashi). 

Co je výhodou UDP:

1) Rychlá obnova spojení

 - Spojení je po výpadku hned obnoveno

 - I přesto, že má síť packetloss, latence zůstává co nejmenší

2) IP Mobilita

 - v případě, že změníte IP adresu - náhlé přepnutí Wifi síťě apod. - spojení se plynule naváže na novou IP adresu - není nutný žádný reconnect.

FAQ: Kdy a jak budeme moci vytvářet P2P aplikace ve Flashi?

Právě byla uvedena nová verze Flash Media Serveru 3.5, která přináší dynamický streaming, což ve své podstatě znamená, že máte video na serveru uložené ve více kvalitách a server vám naservíruje to, které nejvíce vyhovuje šířce pásma vašeho připojení. K tomu, aby to poznal slouží obslužný inteligence serveru. Kvalit jednoho videa můžete mít uloženo kolik chcete a týká se to i live streamu. V případě nedostatku pásma přepne server na stream s menším bandwidth a naopak. Přechod je takřka plynulý a automatický.

Nicméně podporu P2P přinese až budoucí verze Flash Media Serveru, kterého se snad dočkáme v roce 2009. Jako nejvetší výhodu považuji, že díky P2P výrazně odlehčíte serveru a zůstane tak volné pásmo a výkon serveru na důležitější věci.

Princip je jednoduchý:

Př.:
Když jste dříve programovali VideoChat, tak veškerá komunikace mezi klienty probíhala přes server, čili i posílání streamů.

FMS 3.5 a menší - RTMP

FMS 3.5 a menší - RTMP

V případě RTMFP se pouze zaregistruje fingerprint na serveru a každý nový klient, který se připojí dostane jednak svůj fingerprint, ale i fingerprinty ostatních účastníků. To mu umožní získat pointery na ostatní peery a pak už pouze inicializuje přímou konexi.

FMS 3.6 - P2P using RTMFP

Budoucí verze FMS - P2P using RTMFP

Vytvářejte P2P aplikace již nyní

Zprvu se může zdát, že v tuto chvíli neexistuje žádná možnost jak tyto aplikace vytvářet. K dispozici není žadný server podporující RTMFP a tím pádem není ani kde začít.
Protože připravovaná verze FMS ještě není k dispozici, uvolnilo Adobe před nedávnem vývojářům službu zvanou Adobe Stratus. Díky Stratusu tak může už každý v tuto chvíli začít vyvíjet P2P aplikace. Stratus je bezplatná hostovaná služba Adobe a slouží k propojení peerů.
Sám jsem si se Stratusem v poslední době hrál a pokusím se v budoucnu přinést tutorial.

Veřejné demo Stratus služby (otevřete si na více PC a videotelefonujte). Sám sem zvědavý kdo první vytvoří Flash/AIR ala Skype aplikaci. Vyzkoušejte zde: http://labs.adobe.com/technologies/stratus/samples/

P2P Stratus demo

P2P Stratus demo

Pokud chcete začít již teď, potřebujete získat Developer Key od Adobe.

Více o službe zde: http://labs.adobe.com/wiki/index.php/Stratus

CoCoMo - Vytvářejte Real-time Social aplikace bez použití Flash Media Serveru

Common Collaboration Model (CoCoMo) je nová bezplatná služba hostovaná Adobe určená pro vývojáře realtime social aplikací jako je Videochat, VoIP, realtime sdílení souborů apod. Základ hostingu tvoří robusní CDN veřejné služby Acrobat.com, která nabízí ConnectNow (free online videochat pro spolupráci a sdílení plochy), Share (pro sdílení souborů), Buzzword (Word processor v prohlížeči nebo jako AIR aplikace), Create PDF (pro jednoduché vytvoření PDF z dokumentu Word Doc, Excel, PowerPoint) a My Files (úschovna vašich souborů).

V tuto chvíli se služba nachazí ve stádiu Public-beta. Pro začátek je potřeba získat účet a SDK na webu https://cocomo.acrobat.com/. Následně si knihovnu naimportujete do Flex Builderu a můžete začít. V podstatě se jedná o sadu komponent a tříd, které ve svém softwaru použijete libovolným způsobem a s vaší grafikou.

Více zde: http://labs.adobe.com/technologies/cocomo/

Pokud by někomu z vás vrtala hlavou strategie Adobe - proč CoCoMo, když FMS apod. - doporučuju článek:http://blogs.adobe.com/collabmethods/2008/11/of_referees_and_wrenches_cocom.html

V budoucnu určitě přinesu i tutoriály týkající se CoCoMo - to byl taky jeden z důvodů proč jsem přesunul svůj blog na doménu FlashRealtime.com, což je téma, kterému se dlouhodobě věnuji.