Na het aansluiten van de TV in Second Life met een ingeblikte quicktime stream, vandaag weer een stapje verder gekomen en ook een live stream vanaf mijn webcam naar de TV gestuurd. Eigenlijk ging het heel simpel, maar je moet natuurlijk wel even weten wat en hoe. Ik kon nog niet testen of de stream ook buiten mijn firewall te zien is (ik zal zo uitleggen waarom niet), dus als je hem nog wilt testen, lees dan even verder.
Benodigdheden
Voor het kunnen opzetten van een live stream naar Second Life heb je een aantal dingen nodig:
* een camera (kan een webcam zijn zoals ik nu gebruik voor de test)
* een programma dat voor de encoding van de video zorgt
* een streamingserver
* iets om de stream in Second Life te laten zien
Zoals eerder uitgelegd is dat laatste, een plek om de stream in Second Life te laten zien, het moeilijkst zelf te regelen. Als je geen land hebt, of iemand met land om je te helpen, krijg je het niet voor elkaar. Het Fontys eiland is nog alleen toegankelijk voor studenten en medewerkers (kijk hier hoe je dan toegang kunt krijgen) tot de officiële opening over een tijdje.
Stream testen in Quicktime player
Maar je kunt streams ook gewoon in Quicktime testen. Dus als ik je vertel dat de URL voor de stream die je in de screenshot zit is: rtsp://stream.gosoftonline.com/second_life_stream.sdp dan kun je die stream “gewoon” in Quicktime openen:
De applicatie voor de encoding van de video
Zoals ik op Windows XP gratis software heb voor het maken van WMV-streams, zo is voor Apple de Broadcaster applicatie beschikbaar. Ik heb voor Windows geen gratis software kunnen vinden, voor de test gebruik ik Wirecast (319.99 euro voor een academische licentie). Niet goedkoop, maar gelukkig wel met testversie die je in staat stelt te kijken hoe e.e.a. werkt. Handig is ook dat je met de applicatie tegelijkertijd (als je computer het aan kan) naar WMV én Quicktime kunt streamen.
De streaming Quicktime server
Als streaming Quicktime server gebruik ik de Open Source Darwin server. Die is gratis en zowel voor Mac, Windows als Linux beschikbaar. Installeren is gemakkelijk, zolang je er maar voor zorgt dat je in Windows 2000/2003 een C-drive hebt waar de server op geïnstalleerd kan worden. De eerste server waar ik het op wilde installeren had dat niet (Windows stond daar op de D-drive en er was geen C-drive) en dan lukt installatie niet.
Windows gebruikers zullen er ook aan moeten denken dat ze Active Perl moeten installeren (ook gratis overigens).
Eenmaal geïnstalleerd (geen opties om uit te kiezen) hoef je alleen wat wachtwoorden en zo te verzinnen om te voorkomen dat iedereen zomaar aan het streamen slaat, maar werkt het voor de rest out of the box.
Poorten open in firewall / portforwarding
Als het je lukt om de stream te openen in Quicktime, laat het me dan even weten, want dat betekent in ieder geval dat ik de poorten in de firewall van mijn router ook goed open gezet heb.
Daar heb ik nu open heb staan en geforward naar de server met Darwin:
* Any – 7070 en 554
* TCP – 8000
* UDP – 10000 – 12000
Vooral die laatste was even onhandig omdat die in de documentatie als 10000 – 65535 stond, maar dan overlapt dat met de poorten die Second Life nodig heeft en bij portforwarding in een router (zoals je meestal thuis zult moeten gebruiken) betekent dat dat Second Life niet meer werkt. Daarom heb ik een lager bereik gebruikt. Zou ook moeten werken, maar zoals gezegd kan ik dat niet testen.
Bij het bekijken in Second Life wordt namelijk een directe verbinding tussen de Streaming Server en de Second Life client tot stand gebracht. En in mijn geval zitten die beiden binnen de firewall. Verbindingsproblemen komen zo dan niet aan het licht.
Bij een setup waarbij je geen NAT gebruikt (dus niet op een testserver thuis) heb je dat conflict met de poorten voor Second Life niet, maar moet je wél deze poorten in de firewall open hebben staan om de stream naar buiten te lagen gaan en kijkers verbinding te kunnen laten maken met de streaming server.
Alles aan elkaar koppelen
Als je alles bij elkaar hebt is het daarna simpel:
* Start Wirecast op en geef aan de je MP4 wilt streamen naar een streaming server (zie de screenshot hierboven voor een voorbeeld van de settings). Verzin een naam voor een SDP bestand (wordt automatisch op de server aangemaakt) dat herkenbaar is, het geheel vormt straks de URL die je nodig hebt om als kijker verbinding te maken met de streaming server. Klik op start uitzenden en klaar.
Natuurlijk kun je meerdere bronnen/camera’s aansluiten, er is ook een optie om je desktop beeld mee te sturen, heb ik allemaal nog niet getest.
* Wirecast zorgt voor de encoding en stuurt de stream naar de server. Clients maken verbinding met de server.
* In Second Life voer je bij de TV de URL voor de stream in, vergelijkbaar als dat je in Quicktime doet. En als alles klopt krijg je beeld en geluid. In de demo-stream hoor je daar doorheen een stem die verteld dat dit een demonstration van Wirecast is.
De setup zoals hierboven werkte niet. De stream was niet van buiten af zichtbaar. Daarom heb ik de backup-optie van de Darwin server gebruikt en laat hem nu via poort 80 naar buiten streamen. Dat werkt wel. Met dank aan Willem Karssenberg voor het testen.