<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Barcinski &#38; Jeanjean &#187; Video</title>
	<atom:link href="http://barcinskijeanjean.wordpress.com/category/video/feed/" rel="self" type="application/rss+xml" />
	<link>http://barcinskijeanjean.wordpress.com</link>
	<description>Flash 'n stuff</description>
	<lastBuildDate>Wed, 07 Mar 2012 15:04:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='barcinskijeanjean.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Barcinski &#38; Jeanjean &#187; Video</title>
		<link>http://barcinskijeanjean.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://barcinskijeanjean.wordpress.com/osd.xml" title="Barcinski &#38; Jeanjean" />
	<atom:link rel='hub' href='http://barcinskijeanjean.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Interactive Music Video with Steye</title>
		<link>http://barcinskijeanjean.wordpress.com/2009/12/21/interactive-music-video-with-steye/</link>
		<comments>http://barcinskijeanjean.wordpress.com/2009/12/21/interactive-music-video-with-steye/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 22:17:53 +0000</pubDate>
		<dc:creator>Adrien Jeanjean</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Player 10]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.barcinski-jeanjean.com/?p=399</guid>
		<description><![CDATA[As soon as I saw an early version of the music video shot in Ottowa for the single off his new &#8220;In a Cabin With&#8221; album, I thought; this should be interactive. So now three months later; here it is. Read on for some behind-the-scenes technical details. I started by making a prototype to see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barcinskijeanjean.wordpress.com&#038;blog=2094129&#038;post=399&#038;subd=barcinskijeanjean&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.inacabinwith.com/wonderful" target="_blank"><img src="http://barcinskijeanjean.files.wordpress.com/2009/12/steye.jpg?w=450&h=300" alt="" title="Interactive Music Video with Steye" width="450" height="300" class="alignnone size-full wp-image-400" /></a></p>
<p>As soon as I saw an early version of the <a href="http://www.youtube.com/watch?v=RvPcelv-k-k">music video</a> shot in Ottowa for the single off his new &#8220;<a href="http://www.inacabinwith.com/site" target="_blank">In a Cabin With</a>&#8221; album, I thought; this should be interactive. So now three months later; <a href="http://www.inacabinwith.com/wonderful" target="_blank">here it is</a>.</p>
<p>Read on for some behind-the-scenes technical details. <span id="more-399"></span></p>
<p>I started by making a prototype to see if it was possible to combine high-res h264 video video with 3D rendering. And thanks to Flash Player 10 it was! The most efficient way to render 360 panorama&#8217;s is to use cubic projection, as this method requires way less geometry (4 triangles at most at any one time) then cylindrical or spherical projection. In this case saving a lot of performance needed for the high-res h264 decoding. For the 3D rendering I used an early version of Papervision3D 3.0 for Flash Player 10. </p>
<p>Once I had the panorama video working, I thought that re-creating the YouTube player seemed like the best interface for this piece. Once the interface was done came the time to create the final video edit. I re-edited the two cylindrical panorama&#8217;s created by Steye, one of ouside and one of inside, into one cylindrical panorama which transitions between ouside and inside. The frames of that final cylindrical render were converted to cubic faces using the batch processor of <a href="http://www.clickheredesign.com.au/cubicconverter/" target="_blank">CubicConverter</a>. The resulting cubic faces were then comped back into one video render with the audio track added.</p>
<p>Encoding the final video files was the final hurdle to overcome as there were two aspects that seemed to be hard to unite into an acceptable end result, both quality-wise and performance-wise. The first was to stay within the bitrates currently concidered standard. And what better standard to take for online video delivery then YouTube. Normal YouTube video&#8217;s are streamed at around 700kbps, and their HD video at around 2000kbps. So those were my targets for the h264 encodings. However YouTube delivers acceptable quality within these bitrates with material of much lower resolution, then this video required (1024&#215;728 for the low quality version and 1440&#215;1024 for the HQ version). That&#8217;s because this video contains the video for all four faces (front, back, left and right).</p>
<p>So it was clear that I had to use the best h264 encoder out there to encode these files. So, off I went testing different h264 encoders from Apple, Sorenson, MainConcept, mencoder and x264, and different applications, each allowing access to different encoder settings. I tried Adobe Media Encoder, Quicktime, Sorenson Squeeze, Episode, Handbrake and ffmpeg. And I&#8217;m very glad, and also not surprised, to say that I achieved the best results by far with the open-source alternatives; ffmpeg using the Doom9&#8242;s x264 encoder. Ffmpeg allows you to use b-frames and CABAC which are the two features of h264 that really give a significant quality improvement. My findings were that the x264 encoder also preserved the color and contrast information best from all encoders (especially MainConcept in Squeeze resluted in a very high contrast and unacceptably dark video in my case), while surpisingly also requiring the least CPU upon decoding in the Flash Player. So, like I said; x264 rules them all at the moment. And if you need more tweaking of the encoder, x264&#8242;s command-line interface gives you access to all the parameters that really make h264 shine.</p>
<p>I hope you enjoy the end result. Happy Holidays!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barcinskijeanjean.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barcinskijeanjean.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barcinskijeanjean.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barcinskijeanjean.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barcinskijeanjean.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barcinskijeanjean.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barcinskijeanjean.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barcinskijeanjean.wordpress.com/399/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barcinskijeanjean.wordpress.com&#038;blog=2094129&#038;post=399&#038;subd=barcinskijeanjean&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barcinskijeanjean.wordpress.com/2009/12/21/interactive-music-video-with-steye/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c5f659a75a84a19005f22c0ccc2133e6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Adrien Jeanjean</media:title>
		</media:content>

		<media:content url="http://barcinskijeanjean.files.wordpress.com/2009/12/steye.jpg" medium="image">
			<media:title type="html">Interactive Music Video with Steye</media:title>
		</media:content>
	</item>
		<item>
		<title>Making of Part IV &#8211; Video</title>
		<link>http://barcinskijeanjean.wordpress.com/2008/10/31/making-of-part-iv-video/</link>
		<comments>http://barcinskijeanjean.wordpress.com/2008/10/31/making-of-part-iv-video/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 10:03:31 +0000</pubDate>
		<dc:creator>Adrien Jeanjean</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://barcinskijeanjean.wordpress.com/?p=155</guid>
		<description><![CDATA[Picking up where we left off in our stereo photography article, we now have a total of 576 photographs we need to get into our website. In this article we will talk about the different approaches we tried and the solutions we eventually opted for. Below a diagram describing the footage from the two photo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barcinskijeanjean.wordpress.com&#038;blog=2094129&#038;post=155&#038;subd=barcinskijeanjean&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Picking up where we left off in our <a href="http://blog.barcinski-jeanjean.com/2008/10/14/making-of-part-ii-stereo-photography/">stereo photography article</a>, we now have a total of 576 photographs we need to get into our website. In this article we will talk about the different approaches we tried and the solutions we eventually opted for.</p>
<p><span id="more-155"></span>Below a diagram describing the footage from the two photo shoots.</p>
<p><img class="alignnone size-full wp-image-157" title="Photo Footage" src="http://barcinskijeanjean.files.wordpress.com/2008/10/footage1.jpg?w=450&h=180" alt="" width="450" height="180" /></p>
<p>You have a number of options displaying those images in a website; Loading JPEGs individually, forget about it! You could embed the images on the timeline in an SWF. This really isn’t a very good option as your memory usage quickly grows beyond acceptable norms and really doesn’t perform very well due to the JPEG decompression it needs to do.</p>
<p>No, video is your best option. FLV embedded in an SWF with every frame encoded as a keyframe, that is. It handles memory usage beautifully and allows you to smoothly jump to any frame backwards or forwards.</p>
<p>Ok, so back to our diagram. Add to it the portfolio cases that need to be suspended around us and be masked when falling behind us and the obvious setup would be to have one video with the background and one video with an alpha channel of us and use the latter to mask the cases behind us.</p>
<p>But the problem with that is that video, especially at this resolution, is quite cpu intensive. So in the case of viewing it in anaglyph it would mean you end up with a total of four videos on stage and two of those with alpha channels, which makes them even heavier. The solution we opted for is to combine us and the background into a single video, leaving only two videos on stage when viewing in anaglyph and no alpha channels.</p>
<p>But then how do you achieve the masking of the cases? Well, we also exported PCT image sequences of the alpha channel from us keyed out. Those 144 PCT files per side were imported onto the timeline in the Flash IDE and converted into vector shapes using the Trace Bitmap function. To avoid RSI we automated this process by creating an JSFL script that loops through the timeline and traces every Bitmap it comes across. The result is two SWFs, one for left and one for right, with vector shapes defining the masking area for each single frame in the video. Click on the image below to see the left mask SWF used in the website. This method is way more <a href="http://boulter.com/blog/2004/08/19/performant-is-not-a-word/" target="_blank">performant</a> and smaller in file size than encoding the images into JPEGs.</p>
<p><a href="http://www.barcinski-jeanjean.com/panoramas/amstelveld/left/masks.swf" target="_blank"><img class="alignnone size-full wp-image-163" title="Masks" src="http://barcinskijeanjean.files.wordpress.com/2008/10/masks1.gif?w=450&h=174" alt="" width="450" height="174" /></a></p>
<p>Each of the cases have a separate RenderLayer in Papervision3D. The mask SWF is also placed on its own RenderLayer with BlendMode set to Erase. Set the correct z of your mask layer and voila, you’ve got your masking.</p>
<p>In an attempt to reduce file size for the video we came up with the following idea; FLV is able to contain 4 channels; Red, Green, Blue and Alpha. When you view the website in normal mode, so not in anaglyph, the Red, Green and Blue channels of the right video are used. So that’s 3 channels, right? When viewing the website in anaglyph you use the same Green and Blue channels of the right video and only the Red channel of the left video. So while the left video contains all 3 channels, we only need one; the Red channel. In other words we only need a total of 4 channels; RGB of right and R of left. Meaning we could store those channels in a single FLV by encoding the RGB channels of right into their appropriate channels and encode the R channel of left into the unused Alpha channel.</p>
<p>This can easily be done in After Effects. Just make sure you encode the video using Straight Alpha and not Pre-multiplied Alpha. In After Effects this can only be set when using the Render Queue instead of simply using the Export Movie option.</p>
<p>Ok, so now we have just one FLV with all the data we need to render both normal view and anaglyph view. Great, right? Well, not exactly. The On2 codec really isn’t made with this use in mind. It uses most of the available bytes to encode the areas on the color channels that are going to be visible according to the alpha channel. Which really is a good thing when using the alpha channel for what it is supposed to be used for. Why spend precious bytes to nicely encode parts of the video that aren’t going to be visible anyway? But that kinda ruined our little plan.</p>
<p>Besides the poor encoding quality, this method would require to copy the necessary channels from the video onto a canvas. Verdict; much lower quality and less performant. So we went back to the two FLV setup. Shame for the redundant data being loaded but at least it performs well and looks good.</p>
<p>To keep video file size low, minimizing loading time, we started with a low bit rate video to be used when animating the panorama. As soon as you would stop scrolling a high quality JPEG was loaded and placed on top of the video. However, this caused a short freeze in the physics when you stopped scrolling. This was caused by Flash using all the cpu resources to decompress the JPEG into a bitmap once loaded. Also the transition between the low quality video and high quality JPEG was annoyingly obvious.</p>
<p>Since we couldn’t find a work around for the freeze and couldn’t live with it we decided to get rid of the JPEG stills. But that meant that we had to use way higher bit rates to encode the video to get acceptable quality at that resolution (1376&#215;576). Once we found the appropriate bit rate and encoding settings we ended up with a video of roughly 16Mb per side! So we had to find a way to reduce the preloading time required to enter the panorama view.</p>
<p>The solution we came up with is illustrated in the following diagram:</p>
<p><img class="alignnone size-full wp-image-158" title="Video sets" src="http://barcinskijeanjean.files.wordpress.com/2008/10/sets.gif?w=450&h=450" alt="" width="450" height="450" /></p>
<p>We split the 144 frames circle into three separate SWFs. Requiring only the first set of 36 frames to be loaded before being able to grant access to the panorama view. While you can start exploring the panorama the second and third set continue loading in the background improving the smoothness of the turn as they load.</p>
<p>This solution reduced the required preloading time back to acceptable norms. To further reduce the annoyance of the wait we decided to add a little game to the preloader. Maybe more on that in a later post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/barcinskijeanjean.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/barcinskijeanjean.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/barcinskijeanjean.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/barcinskijeanjean.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/barcinskijeanjean.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/barcinskijeanjean.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/barcinskijeanjean.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/barcinskijeanjean.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=barcinskijeanjean.wordpress.com&#038;blog=2094129&#038;post=155&#038;subd=barcinskijeanjean&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://barcinskijeanjean.wordpress.com/2008/10/31/making-of-part-iv-video/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c5f659a75a84a19005f22c0ccc2133e6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Adrien Jeanjean</media:title>
		</media:content>

		<media:content url="http://barcinskijeanjean.files.wordpress.com/2008/10/footage1.jpg" medium="image">
			<media:title type="html">Photo Footage</media:title>
		</media:content>

		<media:content url="http://barcinskijeanjean.files.wordpress.com/2008/10/masks1.gif" medium="image">
			<media:title type="html">Masks</media:title>
		</media:content>

		<media:content url="http://barcinskijeanjean.files.wordpress.com/2008/10/sets.gif" medium="image">
			<media:title type="html">Video sets</media:title>
		</media:content>
	</item>
	</channel>
</rss>
