<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>grimmwerks &#187; video</title>
	<atom:link href="http://www.grimmwerks.com/category/blog/video/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grimmwerks.com</link>
	<description>interactive  +  musical  +  geekery</description>
	<lastBuildDate>Wed, 23 Nov 2011 04:46:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	

<!-- Debugging help, do not remove -->
<meta name="Framework" content="Kpress" />
<meta name="Theme Version" content="1.1" />
<meta name="Framework Version" content="1.1" />


		<item>
		<title>Flex, Limelight and Edge Servers</title>
		<link>http://www.grimmwerks.com/blog/flex/flex-limelight-and-edge-servers/</link>
		<comments>http://www.grimmwerks.com/blog/flex/flex-limelight-and-edge-servers/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 23:04:36 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[limelight]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=43</guid>
		<description><![CDATA[Former Limelight employee John C Bland helps me out with getting Flex to see the live Limelight stream...]]></description>
			<content:encoded><![CDATA[<p id="top" />Diving into programming ScribeLive, the 2.0 version â?? which is being done entirely in Flex â?? Iâ??ve run into the problem of not being able to pull in the Limelight video stream properly.  I was banging my head against the wall â?? since I was capable of pulling in a live stream into Flex from our own FMS server, but any attempt to pull in a stream from Limelight would result in frustration. <span id="more-43"></span></p>
<p>Looking at older code I could see that the FCSubscribe was being polled &#8211; but I couldnâ??t understand why the new code in Flex not using this FCSubscribe would work with our own FMS servers, but not with Limelight.</p>
<p>I tried looking up what the problem could be via google but found nothing. I asked the flexcoders list but was pretty much ignored. Through searching Flex blogs, I found <a href="http://johncblandii.com/">John C Bland II</a>, who recently left Limelight as an AS3 coder.</p>
<p>John was kind enough to explain to me that the real problem was how FCSubscribe works with Edge Servers:</p>
<blockquote><p>A normal FMS install is just a straight up 1 server install. A CDN install uses edge servers which means there is an origin server with many other servers on the â??edgeâ? that communicate back to the origin. In order to connect to the proper stream, an FCSubscribe has to be called. That call basically calls the edge server which does a â??searchâ? to find the stream. Thatâ??s why you have to do the â??timerâ? trick to continuously ping to see if the server found the stream yet. My method isnâ??t a timer. It is with â??connected callsâ?. So, try to connect (subscribe), if it fails, wait 1 second (setInterval) and subscribe, if it fails, wait 1 second again and subscribe. Do that over and over until the maximum amount of connects is reached. Of course before each setInterval I clearInterval so I donâ??t have multiple running at once. You get a pretty much immediate response from the server so you can get away with firing off multiple setIntervals/subscribes but it could get hairy. I prefer to try and only try again if it fails (with a 1 second pause between the retries).</p></blockquote>
<p>Kind enough to show me some example code, I changed it just a tad to fit in the way I was calling it (and I believe Iâ??ll make it into a subcomponent as part of the cleanup:</p>
<blockquote><p>private var connection:NetConnection;</p>
<p>private var stream:NetStream;</p>
<p>private var video:Video = new Video();</p>
<p>private var vidTimer:Timer;</p>
<p>private var _fcSubscribeCount:int = 0;</p>
<p>private var _fcSubscribeMaxRetries:int = 3;</p>
<p>private var _fcSubscribeInterval:Number;</p>
<p>public function videoInit():void {</p>
<p>connection = new NetConnection();</p>
<p>connection.client = this;</p>
<p>connection.addEventListener(NetStatusEvent.NET_STATUS, videoStatusHandler);</p>
<p>connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, vidSecurityErrorHandler);</p>
<p>connection.connect(streamURL);</p>
<p>}</p>
<p>private function subscribe():void{</p>
<p>connection.call(â?FCSubscribeâ?, null, streamName);</p>
<p>var nsClient:Object = {};</p>
<p>nsClient.onMetaData = ns_onMetaData;</p>
<p>}</p>
<p>public function onFCSubscribe(info:Object):void{</p>
<p>switch(info.code){</p>
<p>case â??NetStream.Play.StreamNotFoundâ?:</p>
<p>clearInterval(_fcSubscribeInterval);</p>
<p>if(_fcSubscribeCount &gt;= _fcSubscribeMaxRetries){</p>
<p>_fcSubscribeCount = 0;</p>
<p>}else{</p>
<p>_fcSubscribeCount++;</p>
<p>//subscribe failed; wait 1 second then try again</p>
<p>_fcSubscribeInterval = setInterval(subscribe, 1000);</p>
<p>}</p>
<p>break;</p>
<p>case â??NetStream.Play.Startâ?:</p>
<p>_fcSubscribeCount = 0;</p>
<p>clearInterval(_fcSubscribeInterval);</p>
<p>connectStream();</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>private function videoStatusHandler(event:NetStatusEvent):void {</p>
<p>//Alert.show(event.info.code);</p>
<p>switch (event.info.code) {</p>
<p>case â??NetConnection.Connect.Successâ?:</p>
<p>subscribe();</p>
<p>break;</p>
<p>case â??NetStream.Play.Startâ?:</p>
<p>//Alert.show(â?netstream play startâ?);</p>
<p>break;</p>
<p>case â??NetStream.Play.StreamNotFoundâ?:</p>
<p>//Alert.show(â?Stream not found: â? + streamName);</p>
<p>break;</p>
<p>}</p>
<p>}</p>
<p>private function vidSecurityErrorHandler(event:SecurityErrorEvent):void {</p>
<p>Alert.show(â?securityErrorHandler: â? + event);</p>
<p>}</p>
<p>private function connectStream():void {</p>
<p>var nsClient:Object = {};</p>
<p>nsClient.onMetaData = ns_onMetaData;</p>
<p>stream = new NetStream(connection);</p>
<p>stream.addEventListener(NetStatusEvent.NET_STATUS, videoStatusHandler);</p>
<p>video.attachNetStream(stream);</p>
<p>stream.play(streamName);</p>
<p>stream.client = nsClient;</p>
<p>uic.addChild(video);</p>
<p>uic.addEventListener(ResizeEvent.RESIZE, resizeVideo);</p>
<p>video.width= uic.width;</p>
<p>video.height = uic.height;</p>
<p>}</p>
<p>private function resizeVideo(ev:ResizeEvent):void{</p>
<p>video.width = uic.width;</p>
<p>video.height = uic.height;</p>
<p>}</p></blockquote>
<p>** originally posted at <a href="http://www.scribemedia.org/2008/10/20/flex-limelight-and-edge-servers/">scribemedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/flex/flex-limelight-and-edge-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac Desktop Music Video</title>
		<link>http://www.grimmwerks.com/blog/mac-desktop-music-video/</link>
		<comments>http://www.grimmwerks.com/blog/mac-desktop-music-video/#comments</comments>
		<pubDate>Fri, 16 May 2008 03:41:58 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[music video]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=36</guid>
		<description><![CDATA[Saw this over at TUAW. Some guy named Dennis Liu made this music video for a band called The Bird and the Bee using his mac desktop. Pretty cool; and shows how a little ingenuity can go a long way. ** originally posted on scribemedia]]></description>
			<content:encoded><![CDATA[<p id="top" /><object width="425" height="355" data="http://www.youtube.com/v/6kxDxLAjkO8&amp;hl=en" type="application/x-shockwave-flash"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/6kxDxLAjkO8&amp;hl=en" /></object></p>
<p>Saw this over at <a href="http://www.tuaw.com">TUAW</a>.  Some guy named <a href="http://www.dennisaliu.com/">Dennis Liu</a> made this music video for a band called <a href="http://www.thebirdandthebee.com">The Bird and the Bee</a> using his mac desktop.  Pretty cool; and shows how a little ingenuity can go a long way.</p>
<p>** originally posted on <a href="http://www.scribemedia.org/2008/05/10/mac-desktop-as-music-video/">scribemedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/mac-desktop-music-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Truth and Beauty</title>
		<link>http://www.grimmwerks.com/blog/truth-and-beauty/</link>
		<comments>http://www.grimmwerks.com/blog/truth-and-beauty/#comments</comments>
		<pubDate>Thu, 15 May 2008 22:33:10 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=26</guid>
		<description><![CDATA[I just finished watching this presentation by medical illustrator and animator David Bolinsky â?? posted first on the TED site back in July, and lately refreshed on motionographer â?? and thought it was worthwhile pushing it here. ** originally posted on scribemedia]]></description>
			<content:encoded><![CDATA[<p id="top" />I just finished watching this presentation by medical illustrator and animator David Bolinsky â?? posted first on the <a href="http://www.ted.com/talks/view/id/147">TED site</a> back in July, and lately refreshed on <a href="http://www.motionographer.com">motionographer</a> â?? and thought it was worthwhile pushing it here.</p>
<p><!--cut and paste--><object width="432" height="285" data="http://static.videoegg.com/ted/flash/loader.swf" type="application/x-shockwave-flash"><param name="id" value="VE_Player" /><param name="align" value="middle" /><param name="FlashVars" value="bgColor=FFFFFF&amp;file=http://static.videoegg.com/ted/movies/DAVIDBOLINSKY-2007_high.flv&amp;autoPlay=false&amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;forcePlay=false&amp;logo=&amp;allowFullscreen=true" /><param name="quality" value="high" /><param name="allowScriptAccess" value="always" /><param name="bgcolor" value="#FFFFFF" /><param name="scale" value="noscale" /><param name="wmode" value="window" /><param name="src" value="http://static.videoegg.com/ted/flash/loader.swf" /><param name="name" value="VE_Player" /><param name="flashvars" value="bgColor=FFFFFF&amp;file=http://static.videoegg.com/ted/movies/DAVIDBOLINSKY-2007_high.flv&amp;autoPlay=false&amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;forcePlay=false&amp;logo=&amp;allowFullscreen=true" /></object></p>
<p>** originally posted on <a href="http://www.scribemedia.org/2008/01/10/truth-and-beauty/">scribemedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/truth-and-beauty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Perfect Girl</title>
		<link>http://www.grimmwerks.com/blog/the-perfect-girl/</link>
		<comments>http://www.grimmwerks.com/blog/the-perfect-girl/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 09:50:37 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[motionographer]]></category>
		<category><![CDATA[scribemedia]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=19</guid>
		<description><![CDATA[It seems thereâ??s something new happening in motion graphics classes &#8211; the idea of â??intonation exercisesâ??; thatâ??s where, using only text/typography and a spoken audio track, the video artist will try to visually express the emotion/thought/intonation behind the dialog. This is a great example created by Brian Cane to Vince Vaughnâ??s monologue of â??The Perfect [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />It seems thereâ??s something new happening in motion graphics classes &#8211; the idea of â??intonation exercisesâ??; thatâ??s where, using only text/typography and a spoken audio track, the video artist will try to visually express the emotion/thought/intonation behind the dialog.</p>
<p>This is a great example created by <a href="http://theablecain.com/">Brian Cane</a> to Vince Vaughnâ??s monologue of â??The Perfect Girlâ?? in Wedding Crashers:</p>
<p><object width="468" height="380" data="http://us.i1.yimg.com/cosmos.bcst.yahoo.com/player/media/swf/FLVVideoSolo.swf" type="application/x-shockwave-flash"><param name="flashvars" value="id=4612817&amp;emailUrl=http%3A%2F%2Fvideo.yahoo.com%2Futil%2Fmail%3Fei%3DUTF-8%26vid%3D1334800&amp;imUrl=http%253A%252F%252Fvideo.yahoo.com%252Fvideo%252Fplay%253Fei%253DUTF-8%2526vid%253D1334800&amp;imTitle=Wedding%2BCrashers%253A%2BThe%2BPerfect%2BGirl&amp;searchUrl=http://video.yahoo.com/search/video?p=&amp;profileUrl=http://video.yahoo.com/video/profile?yid=&amp;creatorValue=ZGFmdGNhaW4%3D&amp;vid=1334800" /><param name="src" value="http://us.i1.yimg.com/cosmos.bcst.yahoo.com/player/media/swf/FLVVideoSolo.swf" /></object></p>
<p>Thereâ??s other examples at <a href="http://motionographer.com/">Motionographer</a>.</p>
<p>** originally posted at <a href="http://www.scribemedia.org/2008/01/04/the-perfect-girl/">scribemedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/the-perfect-girl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tech Expo 2004</title>
		<link>http://www.grimmwerks.com/blog/video/tech-expo-2004/</link>
		<comments>http://www.grimmwerks.com/blog/video/tech-expo-2004/#comments</comments>
		<pubDate>Fri, 13 Feb 2004 20:21:32 +0000</pubDate>
		<dc:creator>grimmwerks</dc:creator>
				<category><![CDATA[video]]></category>
		<category><![CDATA[videosonic]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[Motion 3]]></category>
		<category><![CDATA[Tech Expo]]></category>
		<category><![CDATA[VideoSonic]]></category>
		<category><![CDATA[work-video]]></category>

		<guid isPermaLink="false">http://grimmwerks.com/blog/?p=468</guid>
		<description><![CDATA[A few attract videos I created in Motion 3 for Tech Expo 2004.]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Created for two large 42&#8243; plasmas that also showcased a directional audio setup. I created the videos from a number of images we had of our installations &#8212; think I made about 7 of them &#8212; and really just randomized through them as attracts to our booth.</p>
<!-- ProPlayer by Isa Goksu --><div name="mediaspace" id="mediaspace"><div class="pro-player-container" width="610px" height="375px"><div id="pro-player-468pp-single-4f2e3a2c98683"></div></div></div><script type="text/javascript" charset="utf-8">var flashvars = {width: "610",height: "375",autostart: "false",repeat: "false",backcolor: "111111",frontcolor: "cccccc",lightcolor: "66cc00",stretching: "fill",enablejs: "true",mute: "false",skin: "/wp-content/plugins/proplayer/players/skins/default.swf",plugins: "",javascriptid: "468pp-single-4f2e3a2c98683",image: "",file: 'http://www.grimmwerks.com/wp-content/plugins/proplayer/playlist-controller.php?pp_playlist_id=468pp-single-4f2e3a2c98683&sid=1328429612'};var params = {wmode: "transparent",allowfullscreen: "true",allowscriptaccess: "always",allownetworking: "all"};var attributes = {id: "obj-pro-player-468pp-single-4f2e3a2c98683",name: "obj-pro-player-468pp-single-4f2e3a2c98683"};swfobject.embedSWF("http://www.grimmwerks.com/wp-content/plugins/proplayer/players/player.swf", "pro-player-468pp-single-4f2e3a2c98683", "610", "375", "9.0.0", false, flashvars, params, attributes);</script>
<!-- ProPlayer by Isa Goksu --><div name="mediaspace" id="mediaspace"><div class="pro-player-container" width="610px" height="375px"><div id="pro-player-468pp-single-4f2e3a2ce2a6a"></div></div></div><script type="text/javascript" charset="utf-8">var flashvars = {width: "610",height: "375",autostart: "false",repeat: "false",backcolor: "111111",frontcolor: "cccccc",lightcolor: "66cc00",stretching: "fill",enablejs: "true",mute: "false",skin: "/wp-content/plugins/proplayer/players/skins/default.swf",plugins: "",javascriptid: "468pp-single-4f2e3a2ce2a6a",image: "",file: 'http://www.grimmwerks.com/wp-content/plugins/proplayer/playlist-controller.php?pp_playlist_id=468pp-single-4f2e3a2ce2a6a&sid=1328429612'};var params = {wmode: "transparent",allowfullscreen: "true",allowscriptaccess: "always",allownetworking: "all"};var attributes = {id: "obj-pro-player-468pp-single-4f2e3a2ce2a6a",name: "obj-pro-player-468pp-single-4f2e3a2ce2a6a"};swfobject.embedSWF("http://www.grimmwerks.com/wp-content/plugins/proplayer/players/player.swf", "pro-player-468pp-single-4f2e3a2ce2a6a", "610", "375", "9.0.0", false, flashvars, params, attributes);</script>
]]></content:encoded>
			<wfw:commentRss>http://www.grimmwerks.com/blog/video/tech-expo-2004/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://grimmwerks.com/wp-content/added/vss-bumble-xpo.flv" length="6961537" type="video/x-flv" />
<enclosure url="http://grimmwerks.com/wp-content/added/vss-broadwing-xpo.flv" length="11269094" type="video/x-flv" />
		</item>
	</channel>
</rss>

