<?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>Keith Bentrup&#8217;s Portforlio &#187; Google Data API</title>
	<atom:link href="http://portfolio.keithbentrup.com/archives/tag/google-data-api/feed" rel="self" type="application/rss+xml" />
	<link>http://portfolio.keithbentrup.com</link>
	<description>A brief sampling of my work</description>
	<lastBuildDate>Wed, 28 Jul 2010 18:09:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Automatic Creation, Upload, and Annotation Of Online Videos</title>
		<link>http://portfolio.keithbentrup.com/archives/31</link>
		<comments>http://portfolio.keithbentrup.com/archives/31#comments</comments>
		<pubDate>Wed, 24 Jun 2009 03:57:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[FFmpeg]]></category>
		<category><![CDATA[GD Graphics Library]]></category>
		<category><![CDATA[Google Data API]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SoX]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://portfolio.keithbentrup.com/?p=31</guid>
		<description><![CDATA[
Above: Embedded sample videos. You can find the complete video collection at the Century 21 Alliance channel and my channel.
Overview: To increase exposure for agents&#8217; listings and create compelling marketing materials for their clients, I created the following system.
Workflow: A real estate professional uploads multiple photos at once through a Flash interface to the company internal [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="610" height="373" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/cp/vjVQa1PpcFMzKveKc4t62YVY_NCg8oiFsiGp1b-XckM=" /><embed type="application/x-shockwave-flash" width="610" height="373" src="http://www.youtube.com/cp/vjVQa1PpcFMzKveKc4t62YVY_NCg8oiFsiGp1b-XckM=" wmode="transparent"></embed></object></p>
<p style="margin-top: -20px;">Above: Embedded sample videos. You can find the complete video collection at the <a href="http://www.youtube.com/user/century21alliance">Century 21 Alliance</a> channel and <a href="http://www.youtube.com/user/keithbentrup">my channel</a>.</p>
<p><strong>Overview:</strong> To increase exposure for agents&#8217; listings and create compelling marketing materials for their clients, I created the following system.</p>
<p><strong>Workflow:</strong> A real estate professional uploads multiple photos at once through a <a href="http://www.adobe.com/products/flashplayer/">Flash</a> interface to the company internal content management system running on Joomla. Nightly, a <a href="http://en.wikipedia.org/wiki/Cron">cron</a> job runs a application written in PHP. The PHP application takes the photos calculates their dimensions, scales them to the appropiate size, and optionally adds padding if necessary to fit the required dimensions. This is accomplished with the <a href="http://us2.php.net/manual/en/ref.image.php">GD and image functions</a>.</p>
<p>Then depending on the requested duration per photo and the selected frame rate creates all of the <a href="http://en.wikipedia.org/wiki/Tweening">inbetweens</a> for the final video. The  application automatically creates the visually appealling affects of panning out to wider angles and adjusting the opacity to fade between photos.  It also &#8220;paints&#8221; the appropiate credits on to the end of the videos to comply with copyright requirements.</p>
<p>After several thousand frames have been created, the application passes the frames to <a href="http://ffmpeg.org/">FFmpeg</a>.  Before final processing by <a href="http://ffmpeg.org/">FFmpeg</a>, the soundtrack must be created to combine with the movie timeline. First, the total length of the video is calculated from the frame rate, number of photos, and requested time between transitions. The application the passes an <a href="http://www.vorbis.com/">ogg</a> file to <a href="http://sox.sourceforge.net/">SoX</a> for processing most notably looping music for longer videos and fading out the sound track as the end approaches, thus avoiding a sudden, harsh stop.</p>
<p>With the photos and soundtrack now ready, <a href="http://ffmpeg.org/">FFmpeg</a> can combine the visual and audio inputs to produce the final output an <a href="en.wikipedia.org/wiki/MPEG-4">MPEG-4</a> encoded video. This video is then automatically uploaded to <a href="http://www.youtube.com">YouTube</a>&#8217;s servers using the <a href="http://code.google.com/apis/youtube/2.0/developers_guide_php.html">Google Data API</a> provided in the <a href="http://framework.zend.com/">Zend Framework</a>. The videos are then programmatically given a 5-star rating and completed with relevant information about the listing.</p>
]]></content:encoded>
			<wfw:commentRss>http://portfolio.keithbentrup.com/archives/31/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
