<?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>LearningAPI</title>
	<atom:link href="http://www.learningapi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.learningapi.com</link>
	<description>Digital Media, Streaming Video &#38; Educational Technology</description>
	<lastBuildDate>Thu, 27 May 2010 14:03:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>More on live mobile streaming</title>
		<link>http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/</link>
		<comments>http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/#comments</comments>
		<pubDate>Thu, 27 May 2010 12:07:03 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Streaming Media]]></category>
		<category><![CDATA[Video and Multimedia Technology]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=622</guid>
		<description><![CDATA[Our adventures in live mobile streaming continue. If anyone should happen to read this post on Thursday May 27, you can see the results of this effort at http://harvard.edu/commencement2010/
So what are the lessons learned so far? Here&#8217;s a preliminary list in no particular order:

Setting up the server side of things is the easiest part. Configuring [...]]]></description>
			<content:encoded><![CDATA[<p>Our adventures in live mobile streaming continue. If anyone should happen to read this post on Thursday May 27, you can see the results of this effort at <a href="http://harvard.edu/commencement2010/">http://harvard.edu/commencement2010/</a></p>
<p>So what are the lessons learned so far? Here&#8217;s a preliminary list in no particular order:</p>
<ul>
<li><strong>Setting up the server side of things is the easiest part.</strong> Configuring for <a href="http://www.limelightnetworks.com/streaming-video-audio/">FMS delivery from Limelight</a>, and for <a href="http://www.wowzamedia.com/ec2.html">Wowza on Amazon EC2</a> was a breeze. Multiple bitrates, the RSS playlist for JW Player, the SMIL playlist for Wowza&#8230;.once you figure out the moving parts, it works <em>almost</em> just like it&#8217;s supposed to.</li>
<li><strong>Adaptive streaming</strong> from Limelight and other CDNs that use the &#8216;fcsubscribe&#8217; method for <strong>load-balancing can cause a problem</strong> when switching to a streams that comes from a new edge node. More on this later&#8230;</li>
<li><strong>Mobile devices:</strong> Make sure you&#8217;re encoding <strong>H.264 with Baseline profile level as low as you can go</strong>.  iPhones and iPads turned out to be the easiest to support fully.  Blackberries and Droids work&#8230;or they don&#8217;t. It seems to depend on the model phone, and on the network you&#8217;re on.  My personal Blackberry gets the RTSP stream just fine.  Others around the office with different Blackberries can&#8217;t play the stream. Same with Droids &#8211; some people are able to play it, some not. I haven&#8217;t discovered why just yet.  Codec issues are a likely possibility, but it&#8217;ll take some digging to find out. I have not found any useful documentation on the differences between Blackberry models, in terms of live video streaming support.</li>
<li><strong>Encoders</strong> &#8211; this has been the headache of all headaches and took many many man-hours to get right.
<ul>
<li>Encoding three bitrates (100k, 500k, 1000k) to two different CDNs (Limelight, Wowza/EC2) takes a lot of horsepower.</li>
<li>One brand new<strong> 8-core Cisco machine </strong>with a brand new Osprey 240 proved <strong>unsuitable for capturing video</strong> at all.</li>
<li><a href="http://www.adobe.com/products/flashmediaserver/flashmediaencoder/">Adobe Flash Media Live Encoder</a> (FMLE) and <a href="http://www.telestream.net/wire-cast/overview.htm">Telestream Wirecast</a> on Windows both <strong>depend on your display hardware and drivers. </strong>If you&#8217;re planning a headless encoding system, plan extra time to get it all working.</li>
<li>A 2-core IBM/Windows/<a href="http://www.viewcast.com/products/osprey-cards/osprey-240e">Osprey </a>system running FMLE gave us <strong>better encoding performance</strong> than an 8-core Mac Pro/<a href="http://www.aja.com/products/io/">AJA</a> system running Wirecast.</li>
<li>All of the above systems had<strong> issues with audio/video sync</strong>, either being off from the start, or drifting as the webcast went on. Only on the Mac/AJA system were we able to resolve these in time for a successful webcast.</li>
<li><strong>Ordinary desktop PC</strong> running consumer USB video capture devices are easiest to set up and are the machines most likely to work right off the bat.  No audio/video sync issues occurred with these, even though we were capturing video on one of a couple <a href="http://www.amazon.com/gp/product/B001U3ZVQ4?ie=UTF8&#038;tag=emediaweblog-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B001U3ZVQ4">$50 USB</a><img src="http://www.assoc-amazon.com/e/ir?t=emediaweblog-20&#038;l=as2&#038;o=1&#038;a=B001U3ZVQ4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
 <a href="http://www.amazon.com/gp/product/B0039Y2YDK?ie=UTF8&#038;tag=emediaweblog-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B0039Y2YDK">devices</a><img src="http://www.assoc-amazon.com/e/ir?t=emediaweblog-20&#038;l=as2&#038;o=1&#038;a=B0039Y2YDK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> and audio using the built-in audio support on the PC.  The more expensive and industrial-grade the hardware, the more trouble it gave us.</li>
<li><strong>Our final encoding configuration</strong> included an 8-core MacPro/Wirecast for the 1Mbps and 500kbps streams, a single-core desktop PC running FMLE for the 100k streams, and a dual-core desktop PC with FMLE for capturing a 1.2Mbps H.264 archive file.</li>
<li>Some of our partner schools are using our infrastructure for mobile streaming. They&#8217;ve got <strong><a href="http://www.digital-rapids.com/Products/IndividualProducts/TouchStream.aspx">Digital Rapids TouchStream appliances</a></strong>, and have had <strong>no encoding issues </strong>doing multiple bitrates from HD down to 3G/mobile. I&#8217;m quickly becoming a big fan of purpose-built appliances for encoding.</li>
</ul>
</li>
</ul>
<p>That&#8217;s about it for now&#8230;I&#8217;ll follow up on some of these as we do some analysis and learn more.</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/" title="Add 'More on live mobile streaming' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'More on live mobile streaming' to Twitter" alt="Add 'More on live mobile streaming' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/&amp;title=More+on+live+mobile+streaming" title="Add 'More on live mobile streaming' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'More on live mobile streaming' to Del.icio.us" alt="Add 'More on live mobile streaming' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/&amp;title=More+on+live+mobile+streaming" title="Add 'More on live mobile streaming' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'More on live mobile streaming' to digg" alt="Add 'More on live mobile streaming' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/&amp;t=More+on+live+mobile+streaming" title="Add 'More on live mobile streaming' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'More on live mobile streaming' to FaceBook" alt="Add 'More on live mobile streaming' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/" title="Add 'More on live mobile streaming' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'More on live mobile streaming' to Technorati" alt="Add 'More on live mobile streaming' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/&amp;title=More+on+live+mobile+streaming" title="Add 'More on live mobile streaming' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'More on live mobile streaming' to Stumble Upon" alt="Add 'More on live mobile streaming' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/&amp;title=More+on+live+mobile+streaming" title="Add 'More on live mobile streaming' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'More on live mobile streaming' to Google Bookmarks" alt="Add 'More on live mobile streaming' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=More+on+live+mobile+streaming&amp;url=http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/" title="Add 'More on live mobile streaming' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'More on live mobile streaming' to SlashDot" alt="Add 'More on live mobile streaming' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/05/more-on-live-mobile-streaming/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dipping into Live Mobile Streaming</title>
		<link>http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/</link>
		<comments>http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/#comments</comments>
		<pubDate>Tue, 18 May 2010 23:49:17 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Streaming Media Technology Tips]]></category>
		<category><![CDATA[Video and Multimedia Technology]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=612</guid>
		<description><![CDATA[For an upcoming university commencement, I&#8217;ve been looking into doing live streaming in H.264/Flash, as well as http streaming to Apple iPhone/iPad/iPod devices (herein referred to as iP* devices) and rtsp streaming to Droids and Blackberrys. It&#8217;s been an experience piecing it all together, and I&#8217;ll be writing about some of the surprises and pitfalls [...]]]></description>
			<content:encoded><![CDATA[<p>For an upcoming university commencement, I&#8217;ve been looking into doing live streaming in H.264/Flash, as well as http streaming to Apple iPhone/iPad/iPod devices (herein referred to as iP* devices) and rtsp streaming to Droids and Blackberrys. It&#8217;s been an experience piecing it all together, and I&#8217;ll be writing about some of the surprises and pitfalls as we figure out how to best do it.</p>
<p>In a nutshell, we&#8217;re using <a href="http://www.limelightnetworks.com">Limelight Networks&#8217; Flash Media Server 3.5</a> for delivery to browsers on PCs and Macs. For mobile streaming, I provisioned and started up an instance of <a href="http://www.wowzamedia.com/ec2/">Wowza on Amazon EC2</a>. One stream in (or several, for multiple bitrate support) via RTMP, and Wowza delivers in all the right formats &#8211; whether it&#8217;s chunked HTTP (Apple devices), RTSP (Droids and Blackberrys), or RTMP (Flash).   Setting that up involved <a href="http://www.wowzamedia.com/resources/WowzaMediaServerForEC2_UsersGuide.pdf">an awful lot of moving parts</a>, but half a day later, it was up and running and has been flawless in testing.  We&#8217;ve been streaming multiple bitrates (100kbps, 500kbps, 900kbps) from <a href="http://www.adobe.com/products/flashmediaserver/flashmediaencoder/">Adobe Flash Media Live Encoder</a> on a PC, as well as from <a href="http://www.telestream.net/wire-cast/overview.htm">Telestream Wirecast</a> on a Mac.</p>
<p>We&#8217;ve developed a page that uses the <a href="http://www.longtailvideo.com/players/jw-flv-player/">JW Player (Flash)</a> as the default, and falls back to HTML5 if it&#8217;s an iP* device, or provides an rtsp:// link if it&#8217;s a Droid or a Blackberry.  Yes&#8230;Flash is the default for all browsers that will allow it, as it provides a uniform experience for all users, and a single thing to worry about from a user-support perspective.</p>
<p>What&#8217;s been interesting to me is how quickly it all went together.  In a couple of days, starting with no deep mobile experience, we&#8217;ve provisioned infrastructure in the cloud, configured it, and are up and running with live Flash and mobile streaming for short money.  More details to follow in the coming days&#8230;</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/" title="Add 'Dipping into Live Mobile Streaming' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'Dipping into Live Mobile Streaming' to Twitter" alt="Add 'Dipping into Live Mobile Streaming' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/&amp;title=Dipping+into+Live+Mobile+Streaming" title="Add 'Dipping into Live Mobile Streaming' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'Dipping into Live Mobile Streaming' to Del.icio.us" alt="Add 'Dipping into Live Mobile Streaming' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/&amp;title=Dipping+into+Live+Mobile+Streaming" title="Add 'Dipping into Live Mobile Streaming' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'Dipping into Live Mobile Streaming' to digg" alt="Add 'Dipping into Live Mobile Streaming' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/&amp;t=Dipping+into+Live+Mobile+Streaming" title="Add 'Dipping into Live Mobile Streaming' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'Dipping into Live Mobile Streaming' to FaceBook" alt="Add 'Dipping into Live Mobile Streaming' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/" title="Add 'Dipping into Live Mobile Streaming' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'Dipping into Live Mobile Streaming' to Technorati" alt="Add 'Dipping into Live Mobile Streaming' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/&amp;title=Dipping+into+Live+Mobile+Streaming" title="Add 'Dipping into Live Mobile Streaming' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'Dipping into Live Mobile Streaming' to Stumble Upon" alt="Add 'Dipping into Live Mobile Streaming' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/&amp;title=Dipping+into+Live+Mobile+Streaming" title="Add 'Dipping into Live Mobile Streaming' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'Dipping into Live Mobile Streaming' to Google Bookmarks" alt="Add 'Dipping into Live Mobile Streaming' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Dipping+into+Live+Mobile+Streaming&amp;url=http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/" title="Add 'Dipping into Live Mobile Streaming' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'Dipping into Live Mobile Streaming' to SlashDot" alt="Add 'Dipping into Live Mobile Streaming' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/05/dipping-into-live-mobile-streaming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Hosting Provider &#8211; So Far, Excellence</title>
		<link>http://www.learningapi.com/2010/05/606/</link>
		<comments>http://www.learningapi.com/2010/05/606/#comments</comments>
		<pubDate>Tue, 18 May 2010 21:50:54 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Web and Software Development]]></category>
		<category><![CDATA[Weblogs]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=606</guid>
		<description><![CDATA[There&#8217;s few things as delightful as being surprised by outstanding customer service and perfect execution of something difficult.  Specifically, I&#8217;ve been wanting to move my website to a new hosting provider for a while now. My old host was becoming increasingly unreliable, particularly with respect to email. But the pain of switching hosts creates [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s few things as delightful as being surprised by outstanding customer service and perfect execution of something difficult.  Specifically, I&#8217;ve been wanting to move my website to a new hosting provider for a while now. My old host was becoming increasingly unreliable, particularly with respect to email. But the pain of switching hosts creates a powerful inertia &#8211; it&#8217;s easier, for a while, to deal with the problems than it is to move everything.  I have a WordPress installation, MovableType, several busy email accounts using IMAP, a few databases, etc.  I just didn&#8217;t have the time to deal with it.</p>
<p><a href="http://www.greengeeks.com/cgi-bin/affiliates/clickthru.cgi?id=lbouthillier"><img class="alignright" style="margin: 4px;" title="GreenGeeks Logo" src="http://www.greengeeks.com/images/affiliatetags/160x60-001.gif" alt="GreenGeeks logo" width="159" height="60" /></a>Which leads to my experience with <a href="http://www.greengeeks.com/cgi-bin/affiliates/clickthru.cgi?id=lbouthillier">GreenGeeks</a> hosting.  I found them doing the usual Googling around and reading reviews. I liked the price. I liked the green idea of buying wind credits to offset power use (although how much of that represents a real net effect on the environment, I have no idea. It, at least, feels like doing something good.)  I <span style="text-decoration: underline;">loved</span> the idea that <strong>they will do your site migration for you</strong>.</p>
<p>I had absolutely no expectation that they would be able to migrate everything. I expected to spend some hours/days tweaking this and that to get it all up and running as on my original host.  But just moving the files across and setting up users, etc&#8230;.that&#8217;s helpful, anyway, right?</p>
<p>Well, it was perfect. There were a few emails as they asked questions and came to understand my environment, and then two days later I get an email that says &#8220;It&#8217;s ready.&#8221;  And darned if it wasn&#8217;t. WordPress, MovableType, all my symlinks and apache config, all the email accounts with all the content intact. My migration effort consisted of updating my domain registrar&#8217;s DNS record.  Period.</p>
<p>I can&#8217;t say much yet about reliability of the service (although it&#8217;s been 100% so far!), but I can say that the migration service and the general customer service I&#8217;ve received in my three days on <a href="http://www.greengeeks.com/cgi-bin/affiliates/clickthru.cgi?id=lbouthillier">GreenGeeks hosting</a> has been outstanding. AFter starting to write this post I realized that they have an affiliate program, so yes, I signed up and these are affiliate links. But that was an afterthought.  My enthusiasm for the service, and my delight at how easy it was to switch, is genuine.</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/05/606/" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Twitter" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/05/606/&amp;title=New+Hosting+Provider+%26%238211%3B+So+Far%2C+Excellence" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Del.icio.us" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/05/606/&amp;title=New+Hosting+Provider+%26%238211%3B+So+Far%2C+Excellence" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to digg" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/05/606/&amp;t=New+Hosting+Provider+%26%238211%3B+So+Far%2C+Excellence" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to FaceBook" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/05/606/" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Technorati" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/05/606/&amp;title=New+Hosting+Provider+%26%238211%3B+So+Far%2C+Excellence" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Stumble Upon" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/05/606/&amp;title=New+Hosting+Provider+%26%238211%3B+So+Far%2C+Excellence" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to Google Bookmarks" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=New+Hosting+Provider+%26%238211%3B+So+Far%2C+Excellence&amp;url=http://www.learningapi.com/2010/05/606/" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'New Hosting Provider &#8211; So Far, Excellence' to SlashDot" alt="Add 'New Hosting Provider &#8211; So Far, Excellence' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/05/606/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash crossdomain security</title>
		<link>http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/</link>
		<comments>http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/#comments</comments>
		<pubDate>Sun, 02 May 2010 19:33:23 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Streaming Media Technology Tips]]></category>
		<category><![CDATA[Video and Multimedia Technology]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=589</guid>
		<description><![CDATA[Flash security constraints can prevent a SWF hosted on one domain from reading data hosted on another domain.   Users trying out the SlideSync and SlideScroller plugins might encounter this issue if the XML data file that contains the slide URLs and timing is on a different website from the one that hosts the [...]]]></description>
			<content:encoded><![CDATA[<p>Flash security constraints can prevent a SWF hosted on one domain from reading data hosted on another domain.   Users trying out the <a href="http://www.learningapi.com/jw-player-plugins/">SlideSync and SlideScroller plugins</a> might encounter this issue if the XML data file that contains the slide URLs and timing is on a different website from the one that hosts the JW FLV Player itself.</p>
<p>The solution is to add a crossdomain.xml file to the root directory of the web server that hosts the XML file.  There&#8217;s official <a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html">Adobe docs on crossdomain policy files</a>, and here&#8217;s a <a href="http://curtismorley.com/2007/09/01/flash-flex-tutorial-how-to-create-a-crossdomainxml-file/">pretty good tutorial on crossdomain.xml files</a>.</p>
<p>In short, you create this simple file using any text editor, and set up a rule describing which other sites may access data hosted on the site where the crossdomain.xml file lives.</p>
<p><strong><code>&lt;?xml version="1.0"?&gt;<br />
&lt;!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"&gt;<br />
&lt;cross-domain-policy&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;allow-access-from domain="*.learningapi.com" /&gt;<br />
&lt;/cross-domain-policy&gt;</code></strong></p>
<p>sbs!</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/" title="Add 'Flash crossdomain security' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'Flash crossdomain security' to Twitter" alt="Add 'Flash crossdomain security' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/&amp;title=Flash+crossdomain+security" title="Add 'Flash crossdomain security' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'Flash crossdomain security' to Del.icio.us" alt="Add 'Flash crossdomain security' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/&amp;title=Flash+crossdomain+security" title="Add 'Flash crossdomain security' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'Flash crossdomain security' to digg" alt="Add 'Flash crossdomain security' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/&amp;t=Flash+crossdomain+security" title="Add 'Flash crossdomain security' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'Flash crossdomain security' to FaceBook" alt="Add 'Flash crossdomain security' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/" title="Add 'Flash crossdomain security' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'Flash crossdomain security' to Technorati" alt="Add 'Flash crossdomain security' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/&amp;title=Flash+crossdomain+security" title="Add 'Flash crossdomain security' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'Flash crossdomain security' to Stumble Upon" alt="Add 'Flash crossdomain security' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/&amp;title=Flash+crossdomain+security" title="Add 'Flash crossdomain security' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'Flash crossdomain security' to Google Bookmarks" alt="Add 'Flash crossdomain security' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Flash+crossdomain+security&amp;url=http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/" title="Add 'Flash crossdomain security' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'Flash crossdomain security' to SlashDot" alt="Add 'Flash crossdomain security' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/05/flash-crossdomain-security-issues/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dynamic Streaming Follow-Up (&amp; Improvements)</title>
		<link>http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/</link>
		<comments>http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 13:13:28 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=578</guid>
		<description><![CDATA[My Dynamic Streaming article on streamingmedia.com generated some follow-up over at Longtail
Video, home of the JW FLV Player.  In an email exchange, JW himself, Jeroen Wijering, explained how the JW was handling stream switching, and that in response to my test results, they'd made some changes for the next release (5.2).  You will find excerpts [...]]]></description>
			<content:encoded><![CDATA[My <a href="http://www.streamingmedia.com/article.asp?id=11774">Dynamic Streaming article on streamingmedia.com</a> generated some follow-up over at <a href="http://www.longtailvideo.com/players/jw-flv-player/">Longtail
Video, home of the JW FLV Player</a>.  In an email exchange, JW himself, Jeroen Wijering, explained how the JW was handling stream switching, and that in response to my test results, they'd made some changes for the next release (5.2).  You will find excerpts of the ensuing email discussion in the comment section of the article page, appearing shortly.  In that discussion, Jereon offers a terrific explanation of how it works, and confirms two of the rules of thumb I deduced in my testing:
<ol>
	<li>Encode with a fixed keyframe interval, ideally every 2 seconds or so</li>
	<li>Use a bufferlength about 2x the keyframe interval</li>
</ol>
To quote Jeroen:
<blockquote>Herein lies the tradeoff to be made for dynamic streaming. Higher bufferlengths decrease the likelihood of playback stuttering, but slow down any responses to screensize / bandwidth increases. Hence the rules of thumb for short keyframe intervals and "2x keyframe" bufferlengths.
</blockquote>
I've updated the <a href="http://www.learningapi.com/streamingmedia-articles/dynamic-streaming-in-flash-bitrate-switching/">Dynamic Streaming example page</a> to load a build of the player that contains the fix. My testing shows that it performs beautifully - on par with the 1080p player at switching both up and down, with seamless playback during the switch.  This will be part of the next release of JW Player, 5.2, now scheduled for around the end of May.
<br/><br>
I haven't had any communication from anyone involved with <a href="http://flowplayer.org/index.html">Flowplayer</a>. Their dynamic streaming implementation as tested for this article (<a href="http://flowplayer.org/plugins/streaming/bwcheck.html">bandwidth-check plugin 3.1.3</a>) remains not really useful for during-playback streaming, although it was fine a selecting the correct stream at startup.<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Twitter" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/&amp;title=Dynamic+Streaming+Follow-Up+%28%26%23038%3B+Improvements%29" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Del.icio.us" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/&amp;title=Dynamic+Streaming+Follow-Up+%28%26%23038%3B+Improvements%29" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to digg" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/&amp;t=Dynamic+Streaming+Follow-Up+%28%26%23038%3B+Improvements%29" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to FaceBook" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Technorati" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/&amp;title=Dynamic+Streaming+Follow-Up+%28%26%23038%3B+Improvements%29" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Stumble Upon" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/&amp;title=Dynamic+Streaming+Follow-Up+%28%26%23038%3B+Improvements%29" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Google Bookmarks" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Dynamic+Streaming+Follow-Up+%28%26%23038%3B+Improvements%29&amp;url=http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to SlashDot" alt="Add 'Dynamic Streaming Follow-Up (&#038; Improvements)' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/04/dynamic-streaming-follow-up-improvements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Synchronized Slides for the JW FLV Player &#8211; Two New Plugins</title>
		<link>http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/</link>
		<comments>http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 16:13:50 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Video and Multimedia Technology]]></category>
		<category><![CDATA[Web and Software Development]]></category>
		<category><![CDATA[jwplayer plugins slidesync slidescroller]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=541</guid>
		<description><![CDATA[For years I&#8217;ve been hearing and reading about demand for a simple synchronized slides plugin for the JW Flash Video player. Sure, you can do it with some Javascript: add event listeners to track the play-head position and use that to trigger image loads in a separate DIV.  But that requires page scripting and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.learningapi.com/jw-player-plugins/slidesyncslidescroller-example-page/"><img class="size-full wp-image-315 alignright" title="SlideSync screenshot" src="http://learningapi.com/weblog/wp-content/uploads/2010/02/slidesync320x192.png" alt="SlideSync screenshot" width="320" height="192" /></a>For years I&#8217;ve been hearing and reading about demand for a simple synchronized slides plugin for the<a href="http://www.longtailvideo.com/players/jw-flv-player/"> JW Flash Video</a> player. Sure, you can do it with some Javascript: add event listeners to track the play-head position and use that to trigger image loads in a separate DIV.  But that requires page scripting and introduces dependencies that might not always be do-able.</p>
<p>But I always thought there oughtta be a simpler way.  So I made one.  Honestly, I didn&#8217;t know if it was possible using the JW Plugin API, and while I&#8217;m a pretty good Java/Web programmer, I&#8217;m definitely not a Flash/ActionScript ace.  So I decided to give it a try as a learning experience.  The result is two plugins for the JW FLV Player: SlideSync and SlideScroller.  These are free for commercial and non-commercial use.</p>
<p>You can see an <a href="http://www.learningapi.com/jw-player-plugins/slidesyncslidescroller-example-page/">example of the SlideSync and SlideScroller plugins in action</a>, or look at <a href="http://www.learningapi.com/jw-player-plugins/">documentation of the options and parameters</a>, or go to Longtail Video&#8217;s plugin pages for the <a href="http://www.longtailvideo.com/addons/plugins/137/get-plugin.php?addon=137&amp;vid=139">SlideSync</a> and <a href="http://www.longtailvideo.com/addons/plugins/138/get-plugin.php?addon=138&amp;vid=140">SlideScroller</a> plugins.</p>
<p>There&#8217;s a lot of room for improvement and growth in this.  It&#8217;s really a first-effort, but should be useful anyway in some cases.  There are still reasons to use the Javascript event-listener model as well, which offers lots of flexibility and control you won&#8217;t get from the this plugin.  But for simplicity, this is a good start.  Feedback is welcome.  Improvements welcome, too!  The source is linked on the documentation page.</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Twitter" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/&amp;title=Synchronized+Slides+for+the+JW+FLV+Player+%26%238211%3B+Two+New+Plugins" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Del.icio.us" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/&amp;title=Synchronized+Slides+for+the+JW+FLV+Player+%26%238211%3B+Two+New+Plugins" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to digg" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/&amp;t=Synchronized+Slides+for+the+JW+FLV+Player+%26%238211%3B+Two+New+Plugins" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to FaceBook" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Technorati" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/&amp;title=Synchronized+Slides+for+the+JW+FLV+Player+%26%238211%3B+Two+New+Plugins" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Stumble Upon" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/&amp;title=Synchronized+Slides+for+the+JW+FLV+Player+%26%238211%3B+Two+New+Plugins" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Google Bookmarks" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Synchronized+Slides+for+the+JW+FLV+Player+%26%238211%3B+Two+New+Plugins&amp;url=http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to SlashDot" alt="Add 'Synchronized Slides for the JW FLV Player &#8211; Two New Plugins' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/04/synchronized-slides-for-the-jw-flv-player-two-new-plugins/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Dynamic Streaming &amp; Stream Switching with Flash Video</title>
		<link>http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/</link>
		<comments>http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 14:17:44 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=521</guid>
		<description><![CDATA[My latest article, How to do Dynamic Streaming with Flash Media Server, has been published at streamingmedia.com.  There&#8217;s a page with code examples and demos of dynamic streaming on this site, as well.
I&#8217;d expected that writing this article was going to be an easy, quick process of explaining how to encode multiple files and [...]]]></description>
			<content:encoded><![CDATA[<p>My latest article, <a href="http://www.streamingmedia.com/article.asp?id=11774">How to do Dynamic Streaming with Flash Media Server</a>, has been published at streamingmedia.com.  There&#8217;s a page with <a href="http://www.learningapi.com/streamingmedia-articles/dynamic-streaming-in-flash-bitrate-switching/">code examples and demos of dynamic streaming</a> on this site, as well.</p>
<p>I&#8217;d expected that writing this article was going to be an easy, quick process of explaining how to encode multiple files and set up a playlist in a couple of popular Flash video players (<a href="http://www.longtailvideo.com/players/jw-flv-player/">JW FLV Player 5.1</a> and <a href="http://flowplayer.org/index.html">Flowplayer 3.1.5</a>).  My problems started when I decided to actually test out the process as documented by Adobe and the player vendors by <a href="http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/">creating actual bandwidth fluctuations</a> and watching the behavior of the player. </p>
<p>Imagine my surprise when things didn&#8217;t always work very well.  I started to wonder if the dynamic streaming technology wasn&#8217;t really ready for prime-time. Some research led to finding and testing the <a href="http://www.flashstreamworks.com/archive.php?post_id=1244959370">1080p player (from flashstreamworks.com)</a>, which had simply outstanding switching performance &#8211; on the same videos from the same server.  So the technology definitely works. [whew!]</p>
<p>After much research, talking to the vendors, and more testing, I came up with <a href="http://www.streamingmedia.com/article.asp?id=11774">some guidelines that make things work pretty well</a> in all the players. Still, there remains some room for improvement in the implementations of dynamic streaming in the popular players I tested, particularly when it comes to detecting bandwidth changes and then smoothly switching streams during playback.</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Twitter" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/&amp;title=Dynamic+Streaming+%26%23038%3B+Stream+Switching+with+Flash+Video" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Del.icio.us" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/&amp;title=Dynamic+Streaming+%26%23038%3B+Stream+Switching+with+Flash+Video" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to digg" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/&amp;t=Dynamic+Streaming+%26%23038%3B+Stream+Switching+with+Flash+Video" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to FaceBook" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Technorati" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/&amp;title=Dynamic+Streaming+%26%23038%3B+Stream+Switching+with+Flash+Video" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Stumble Upon" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/&amp;title=Dynamic+Streaming+%26%23038%3B+Stream+Switching+with+Flash+Video" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Google Bookmarks" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Dynamic+Streaming+%26%23038%3B+Stream+Switching+with+Flash+Video&amp;url=http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to SlashDot" alt="Add 'Dynamic Streaming &#038; Stream Switching with Flash Video' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Testing Adaptive Streaming by Controlling Bandwidth</title>
		<link>http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/</link>
		<comments>http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 02:14:34 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Streaming Media Technology Tips]]></category>
		<category><![CDATA[Video and Multimedia Technology]]></category>
		<category><![CDATA[Web and Software Development]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[dynamic streaming]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=498</guid>
		<description><![CDATA[In the course of researching my article on Dynamic Streaming in Flash, I ended up doing way more testing than I&#8217;d initially intended. But things didn&#8217;t work the way I expected right away, and being the way I am (foolish? glutton for punishment?), I had to find out why.  
There&#8217;ll be more on that [...]]]></description>
			<content:encoded><![CDATA[<p>In the course of researching <a href="http://www.learningapi.com/2010/03/dynamic-streaming-stream-switching-with-flash-video/">my article on Dynamic Streaming in Flash</a>, I ended up doing way more testing than I&#8217;d initially intended. But things didn&#8217;t work the way I expected right away, and being the way I am (foolish? glutton for punishment?), I <strong>had</strong> to find out why.  </p>
<p>There&#8217;ll be more on that in the article when it comes out on <a href="http://www.streamingmedia.com">streamingmedia.com</a>, but for now, I wanted to make a note about how to simulate fluctuating bandwidth conditions. </p>
<p>On Windows, <a href="http://www.netlimiter.com/">Netlimiter 3 Lite</a> works OK, especially if you&#8217;re just doing bandwidth detection to select the appropriate stream at startup. <a href="http://www.shunra.com/ve-desktop-standard.php">Shunra VE Desktop</a> seemed to create more realistic test conditions for fluctuating bandwidth and stream-switching during playback, an impression that was validated by colleagues I spoke with.  At $850 a pop, it certainly ought to be better than the $20 NetLimiter.</p>
<p>But on the Mac, it all worked for free. It&#8217;s already built in to the OS&#8217;s Unix roots.  &nbsp;It&#8217;s in the<span style="font-family: monospace;"> ipfw </span>command. &nbsp;You set it up by creating filters with bandwidth limits, then associating those filters with the ports you want limited.&nbsp; Here&#8217;s how to set up a bandwidth limiter for testing streaming over all ports. Note that if you&#8217;re not logged in&nbsp;as root, you will need to use sudo to run these:</p>
<div style="margin-left: 40px; font-family: monospace;">
sudo ipfw pipe 1 config bw 400kbps<br />
sudo ipfw add 10 pipe 1 tcp from any to me<br />
sudo ipfw add 11 pipe 1 tcp from any to me
</div>
<p>Change it at will by issuing the pipe command again&#8230;</p>
<div style="margin-left: 40px; font-family: monospace;">
sudo ipfw pipe 1 config bw 1400kbps<br />
</div>
<p>Or remove the filters like this&#8230;</p>
<div style="margin-left: 40px; font-family: monospace;">
sudo ipfw delete 10<br />
sudo ipfw delete 11
</div>
<p>You can also introduce simulated network latency, control outbound bandwidth separately from inbound, and control bandwidth to or from a single IP address or subnet. &nbsp;There&#8217;s great documentation at <a href="http://info.iet.unipi.it/%7Eluigi/ip_dummynet/">Luigi Rizzo&#8217;s Dummynet site</a>. &nbsp;Thanks also to <a href="http://www.askbjoernhansen.com/2004/09/22/mini_tutorial_f.html">Ask Bjorn Hansen for his mini-tutorial</a> on this.<br /></p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Twitter" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/&amp;title=Testing+Adaptive+Streaming+by+Controlling+Bandwidth" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Del.icio.us" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/&amp;title=Testing+Adaptive+Streaming+by+Controlling+Bandwidth" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to digg" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/&amp;t=Testing+Adaptive+Streaming+by+Controlling+Bandwidth" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to FaceBook" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Technorati" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/&amp;title=Testing+Adaptive+Streaming+by+Controlling+Bandwidth" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Stumble Upon" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/&amp;title=Testing+Adaptive+Streaming+by+Controlling+Bandwidth" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Google Bookmarks" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=Testing+Adaptive+Streaming+by+Controlling+Bandwidth&amp;url=http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to SlashDot" alt="Add 'Testing Adaptive Streaming by Controlling Bandwidth' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/03/testing-adaptive-streaming-by-controlling-bandwidth/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Second Test of YouTube&#8217;s Captioning</title>
		<link>http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/</link>
		<comments>http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 22:01:42 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Innovative Technology]]></category>
		<category><![CDATA[Video and Multimedia Technology]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=474</guid>
		<description><![CDATA[Audio quality being very important to the success of speech-recognition, I&#8217;ve re-recorded the video from my YouTube speech-recognition auto-captioning test. This time I used a high quality condenser mic plugged into a good mixer, and recorded in an acoustically good space.  
With good quality audio, YouTube made a much better caption file. To be [...]]]></description>
			<content:encoded><![CDATA[<p>Audio quality being very important to the success of speech-recognition, I&#8217;ve re-recorded <a href="http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/">the video from my YouTube speech-recognition auto-captioning test.</a> This time I used a high quality condenser mic plugged into a good mixer, and recorded in an acoustically good space.  </p>
<p>With good quality audio, YouTube made a much better caption file. To be fair, in the beginning I throw around a few company names which aren&#8217;t real words, and I didn&#8217;t expect those to be right in the caption. But YouTube seems to be unable to recognize &#8220;YouTube&#8221;, which is kind of funny in its own way.</p>
<p>The other issue is the awful audio/video sync problem I&#8217;ve had recording direct from Webcam into YouTube. Oddly, I downloaded the video and corrected the problem using <a href="http://www.videohelp.com/tools/QT_Sync">QT Sync</a>. When I re-uploaded the corrected file to YouTube, the sync was off again.  </p>
<p>Anyway, the captions are the interesting part. Here&#8217;s the clip:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ekPT4ZXXGSM&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ekPT4ZXXGSM&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object> </p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Twitter" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/&amp;title=A+Second+Test+of+YouTube%26%238217%3Bs+Captioning" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Del.icio.us" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/&amp;title=A+Second+Test+of+YouTube%26%238217%3Bs+Captioning" title="Add 'A Second Test of YouTube&#8217;s Captioning' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to digg" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/&amp;t=A+Second+Test+of+YouTube%26%238217%3Bs+Captioning" title="Add 'A Second Test of YouTube&#8217;s Captioning' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to FaceBook" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Technorati" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/&amp;title=A+Second+Test+of+YouTube%26%238217%3Bs+Captioning" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Stumble Upon" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/&amp;title=A+Second+Test+of+YouTube%26%238217%3Bs+Captioning" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to Google Bookmarks" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=A+Second+Test+of+YouTube%26%238217%3Bs+Captioning&amp;url=http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/" title="Add 'A Second Test of YouTube&#8217;s Captioning' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'A Second Test of YouTube&#8217;s Captioning' to SlashDot" alt="Add 'A Second Test of YouTube&#8217;s Captioning' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/03/a-second-test-of-youtubes-captioning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube Offers Speech-Recognition Captioning</title>
		<link>http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/</link>
		<comments>http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 19:17:41 +0000</pubDate>
		<dc:creator>Larry B</dc:creator>
				<category><![CDATA[Innovative Technology]]></category>
		<category><![CDATA[Video and Multimedia Technology]]></category>

		<guid isPermaLink="false">http://www.learningapi.com/?p=457</guid>
		<description><![CDATA[It was only a matter of time.  YouTube is bringing the speech recognition technology from Google Voice to bear on all the video in its vast library.
The industry has seen a variety of solutions for using speech-recognition to create a transcript of a video or podcast. Virage, Pictron, Streamsage, Podzinger all have done this. [...]]]></description>
			<content:encoded><![CDATA[<p>It was only a matter of time.  <a href="http://youtube-global.blogspot.com/2010/03/future-will-be-captioned-improving.html#comments">YouTube is bringing the speech recognition technology from Google Voice to bear on all the video</a> in its vast library.</p>
<p>The industry has seen a variety of solutions for using speech-recognition to create a transcript of a video or podcast. <a href="http://www.virage.com/rich-media/index.htm">Virage</a>, <a href="http://www.pictron.com/index_home.html">Pictron</a>, <a href="http://www.streamsage.com/">Streamsage</a>, Podzinger all have done this. Only Pictron is more or less the same company it was at the start.  Virage was acquired by Autonomy and has languished there as a Web product, Streamsage was acquired by Comcast and turned into an internal division, Podzinger has become <a href="http://www.ramp.com/">Ramp</a>&#8230;I&#8217;m not sure what they do, at this point, but it&#8217;s not the podcast transcription service they used to be.   Virage and Streamsage go back almost ten years in this space, but their systems are still running in various enterprise and educational settings. </p>
<p>But back to YouTube&#8230; I use Google Voice, and the speech recognition is pretty good.  I rarely have to actually listen to a voice mail, since it shows up in my email as a text message that&#8217;s almost always easily decipherable, if not perfect.   So just for fun, I tried YouTube&#8217;s captioning.  Here&#8217;s the result.</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/mOOggTkJuzo&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/mOOggTkJuzo&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>Usually, speech-recognition provides a good set of words for searching, if nothing else. I&#8217;ve used speech-to-text to create searchable text from a video with very good results. It makes the video file, which is essentially opaque to a search engine, into something transparent. OK&#8230;in this case, maybe translucent. </p>
<p>I&#8217;m sure this would do better with better audio, and I will test that.  In the meantime, YouTube does provide the means to download and edit the caption file, which is probably what this is best suited for, anyway. It&#8217;s a head start on a caption file, complete with time markers already in place. For those of us who are not professional transcriptionists, that has to beat making one from scratch.</p>
<!-- RO Social Bookmarks BEGIN --><div class="social_bookmark"><em>Bookmark to:</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home?status=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/" title="Add 'YouTube Offers Speech-Recognition Captioning' to Twitter"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/twitter.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to Twitter" alt="Add 'YouTube Offers Speech-Recognition Captioning' to Twitter" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/&amp;title=YouTube+Offers+Speech-Recognition+Captioning" title="Add 'YouTube Offers Speech-Recognition Captioning' to Del.icio.us"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/delicious.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to Del.icio.us" alt="Add 'YouTube Offers Speech-Recognition Captioning' to Del.icio.us" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/&amp;title=YouTube+Offers+Speech-Recognition+Captioning" title="Add 'YouTube Offers Speech-Recognition Captioning' to digg"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/digg.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to digg" alt="Add 'YouTube Offers Speech-Recognition Captioning' to digg" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/share.php?u=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/&amp;t=YouTube+Offers+Speech-Recognition+Captioning" title="Add 'YouTube Offers Speech-Recognition Captioning' to FaceBook"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/facebook.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to FaceBook" alt="Add 'YouTube Offers Speech-Recognition Captioning' to FaceBook" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/" title="Add 'YouTube Offers Speech-Recognition Captioning' to Technorati"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/technorati.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to Technorati" alt="Add 'YouTube Offers Speech-Recognition Captioning' to Technorati" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/&amp;title=YouTube+Offers+Speech-Recognition+Captioning" title="Add 'YouTube Offers Speech-Recognition Captioning' to Stumble Upon"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/stumbleupon.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to Stumble Upon" alt="Add 'YouTube Offers Speech-Recognition Captioning' to Stumble Upon" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/&amp;title=YouTube+Offers+Speech-Recognition+Captioning" title="Add 'YouTube Offers Speech-Recognition Captioning' to Google Bookmarks"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/google.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to Google Bookmarks" alt="Add 'YouTube Offers Speech-Recognition Captioning' to Google Bookmarks" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,border=0,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://slashdot.org/bookmark.pl?title=YouTube+Offers+Speech-Recognition+Captioning&amp;url=http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/" title="Add 'YouTube Offers Speech-Recognition Captioning' to SlashDot"><img src="http://www.learningapi.com/weblog/wp-content/plugins/ro-social-bookmarks/slashdot.png" title="Add 'YouTube Offers Speech-Recognition Captioning' to SlashDot" alt="Add 'YouTube Offers Speech-Recognition Captioning' to SlashDot" /></a></div>
<!-- RO Social Bookmarks END -->]]></content:encoded>
			<wfw:commentRss>http://www.learningapi.com/2010/03/youtube-offers-speech-recognition-captioning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
