<?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>ArKaos Blog &#187; quicktime</title>
	<atom:link href="http://www.arkaos.net/blog/tag/quicktime/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arkaos.net/blog</link>
	<description>The corporate blog of ArKaos, a leader in technology for live visual performances.</description>
	<lastBuildDate>Tue, 15 Nov 2011 09:06:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Using the right decoder for your video content</title>
		<link>http://www.arkaos.net/blog/2009/12/tips/using-the-right-decoder-for-your-video-content/</link>
		<comments>http://www.arkaos.net/blog/2009/12/tips/using-the-right-decoder-for-your-video-content/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 16:35:29 +0000</pubDate>
		<dc:creator>FraKtus</dc:creator>
				<category><![CDATA[Hints & Tips]]></category>
		<category><![CDATA[codec]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[grandvj]]></category>
		<category><![CDATA[mediamaster]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.arkaos.net/blog/?p=933</guid>
		<description><![CDATA[To get the most out of GrandVJ or MediaMaster, benefit from the advantages of multi threading and perform frame blending you should make sure that your content is always played through the best decoder.]]></description>
			<content:encoded><![CDATA[<div style="text-align: left;"><img class="alignright size-full wp-image-948" title="ffmpeg" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/ffmpeg.png" alt="ffmpeg" width="235" height="75" /></div>
<p>One thing that appears obvious to us after more than 10 years of working with the various solutions that can be used on Mac and Windows to decompress video is that not all solutions are equal.</p>
<p>We believe that our users should be able to play almost any kind of media with the ArKaos software and at the same time we do everything a team of developer can to get the best performance on the platforms supported.</p>
<p>Practically the ArKaos software can play media files through the following decoders: QuickTime, FFmpeg, the Flash plugin, Quartz Composer and Windows Media Player. Currently (December 2009) we don&#8217;t allow the user to decide through which solution a media will be decoded, instead we try to make the best decision based on our many years of experience and tests. In the case where several video codecs (such as Mpeg4) can be played through different decoders like QuickTime, FFmpeg and Windows Media Player, we always prefer, no matter the platform, to first try to handle those codecs with FFmpeg as we have always had the best results with FFmpeg during our tests, and here&#8217;s why..<span id="more-933"></span></p>
<h5>The other solutions..</h5>
<p>Of course, on the Mac we could stick to QuickTime.. But sadly it appears that QuickTime has become almost obsolete today and is just used to decompress the codecs needed by the iPods. Most codecs are not properly multi threaded in QuickTime and this is a big problem for us. With GrandVJ or MediaMaster taking advantage of multi core machines by using each core separately to decompress the video layers you are mixing, it&#8217;s too bad to miss that great improvement by playing videos that absolutely need the QuickTime support.</p>
<p>On the PC we could be using Windows Media Player, it is a wonderful technology but it&#8217;s architecture is completely incompatible with the sophisticated engine we use to allow frame blending and frame prediction in the latest version of <a title="GrandVJ - Eight channels VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> and <a title="MediaMaster - DMX video software for lighting designers" href="../../show-lihting/mediamaster/" target="_blank">MediaMaster</a>.</p>
<p>Flash animations and Quartz Compositions, of course, are unique in the sense that they can only be read by their own dedicated player.</p>
<p>As you now understand, once you open a media file in ArKaos your content can go through various roads and it&#8217;s important to consider that. To get the most out of <a title="GrandVJ - Eight channels VJ software for real time HD video mixing" href="../../vj-dj/grandvj/" target="_blank">GrandVJ</a> or <a title="MediaMaster - DMX video software for lighting designers" href="../../show-lihting/mediamaster/" target="_blank">MediaMaster</a>, benefit from the advantages of multi threading and perform frame blending you should make sure that your content is always played through FFmpeg.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-938" title="ArKaosAnimationProcessing" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/ArKaosAnimationProcessing.png" alt="ArKaosAnimationProcessing" width="576" height="432" /></p>
<h5>How does ArKaos process the movie file?</h5>
<p>On the Windows platform it&#8217;s pretty easy because the software first tries to play a file with the FFmpeg player and then falls back to the others (Windows Media Player or QuickTime) if needed.</p>
<p>But things get harder with the Mac platform because some files that could be played by FFmpeg may be rejected and fall back to QuickTime just because they have not been saved the correctly. Many QuickTime files have been created in a way that make them compatible with Mac OS X but also it&#8217;s ancestors Mac OS 9 and 8 and 7 and&#8230; Those files make use of what is called a Resource Fork.</p>
<p>To make it short, when Apple introduced the Macintosh years ago they decided that a single file would in fact be two files: the data file itself and an optional resource file. Many software have been using that Resource Fork to store additional data and information. This is now a problem for many .mov files that were created in the past and even still today with some applications that were born under the Mac OS 9 era and still generate QuickTime .mov files that have a Resource Fork.</p>
<p>This is quiet an issue for us because when the FFmpeg decoder can&#8217;t handle those files and makes ArKaos fall back to QuickTime, you end with QuickTime&#8217;s very bad multi core support even for very common codecs such as Photo JPEG. Another bad side effect of this Resource Fork is that most of the time when you will copy a movie file that has a Resource Fork to a Windows or Linux machine it will simply not be readable anymore because that tiny bit of information contained in the Resource Fork is not read on other platforms although it is vital to play the content.</p>
<h5>How to get rid of the Resource Fork?</h5>
<p>Thankfully it&#8217;s very easy to remove that annoying Resource Fork from a QuickTime file. You can simply open the file in today&#8217;s QuickTime player and do a &#8220;Save As&#8221;, QuickTime will reprocess the file correctly. The process is called &#8220;flattening&#8221; a movie file, it is very fast and will not re-compress your movie, this is very important to avoid re-compressing when possible.</p>
<p style="text-align: center;">Open your file in QuickTime and go to File, Save As..</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-940" title="SlowRainSaveAs1" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/SlowRainSaveAs1.png" alt="SlowRainSaveAs1" width="520" height="394" /></p>
<p style="text-align: center;">.. and enter a new name</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-941" title="SlowRainSaveAs2" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/SlowRainSaveAs2.png" alt="SlowRainSaveAs2" width="513" height="470" /></p>
<p>Of course, you will only need to do that if your file was created on a Mac, the free version of the QuickTime player is enough to do this and it works on all Mac OS X versions up to Snow Leopard with the latest QuickTime player. Now if you have lots of movie files to convert, you can of course look for some professional software that can queue and &#8220;flatten&#8221; a bunch of files from a directory.</p>
<p style="text-align: center;">FYI, here is a QuickTime file that has a Resource Fork (moov), inspected with a programming utility called Resorcerer:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-942" title="SlowRainWithRes" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/SlowRainWithRes.png" alt="SlowRainWithRes" width="419" height="209" /></p>
<p style="text-align: center;">And here is the same file that has been flattened:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-943" title="SlowRainFlat" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/SlowRainFlat.png" alt="SlowRainFlat" width="418" height="209" /></p>
<h5>How do I know what decoder is used?</h5>
<p>In <a title="GrandVJ - Eight channels VJ software for real time HD video mixing" href="../../vj-dj/grandvj/" target="_blank">GrandVJ</a> it&#8217;s very easy to see what player is used by the ArKaos engine when processing a file; simply hover your mouse over the cell that contains the video and the contextual help appears.</p>
<p style="text-align: center;">In this one, the video file with a resource fork will be played through QuickTime:</p>
<p style="text-align: center;">
<div id="attachment_944" class="wp-caption aligncenter" style="width: 325px"><img class="size-full wp-image-944" title="GrandVJ-QT" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/GrandVJ-QT.png" alt=" " width="315" height="206" /><p class="wp-caption-text"> </p></div>
<p style="text-align: center;">In this one, the same video flattened with the QuickTime player will go through the FFmpeg path:</p>
<p style="text-align: center;">
<div id="attachment_945" class="wp-caption aligncenter" style="width: 429px"><img class="size-full wp-image-945" title="GrandVJ-FFmpeg" src="http://www.arkaos.net/blog/wp-content/uploads/2009/12/GrandVJ-FFmpeg.png" alt=" " width="419" height="225" /><p class="wp-caption-text"> </p></div>
<p style="text-align: center;">(The same information is also available in <a title="GrandVJ - Eight channels VJ software for real time HD video mixing" href="../../vj-dj/grandvj/" target="_blank">GrandVJ</a> for each movie listed in the visual library and in <a title="MediaMaster - DMX video software for lighting designers" href="../../show-lihting/mediamaster/" target="_blank">MediaMaster</a> you can get that information from the file library window.)</p>
<h5 style="text-align: left;">Conclusion</h5>
<p style="text-align: left;">During the first days of the release of <a title="GrandVJ - Eight channels VJ software for real time HD video mixing" href="../../vj-dj/grandvj/" target="_blank">GrandVJ</a> 1.2 beta 3 with the new audio engine (which relies on FFmpeg) some users have complained that some old .mov files were not playing audio correctly with the beta version, this was most of the time caused by the Resource Fork and flattening the files fixed the problem. As a bonus, it will make your files cross platform.</p>
<p style="text-align: left;">This should give you some lights on what is happening when you drop a file on <a title="GrandVJ - Eight channels VJ software for real time HD video mixing" href="../../vj-dj/grandvj/" target="_blank">GrandVJ</a> or <a title="MediaMaster - DMX video software for lighting designers" href="http://www.arkaos.net/show-lihting/mediamaster/" target="_blank">MediaMaster</a>, as you can see a lot of work is being done under the hood :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arkaos.net/blog/2009/12/tips/using-the-right-decoder-for-your-video-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quartz Composer integration in GrandVJ 1.2</title>
		<link>http://www.arkaos.net/blog/2009/11/engineering/quartz-composer-integration-grandvj/</link>
		<comments>http://www.arkaos.net/blog/2009/11/engineering/quartz-composer-integration-grandvj/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 15:07:33 +0000</pubDate>
		<dc:creator>FraKtus</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[grandvj]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[quartz]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[visuals]]></category>

		<guid isPermaLink="false">http://www.arkaos.net/blog/?p=834</guid>
		<description><![CDATA[GrandVJ 1.2 now allows to use Quartz Composer .qtz files directly, both as sources and effects, let's have a quick look at how you can use Quartz compositions with GrandVJ.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-891" title="quartzcomposer" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/quartzcomposer.png" alt="quartzcomposer" width="147" height="147" /><a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> 1.2 now allows to use Quartz Composer .qtz files directly, both as sources and effects. In older versions it was necessary to save them as QuickTime movies with the big drawbacks that it was slow and it did not allow to change compositions variables.</p>
<p>We have optimized the Quartz Composer integration in <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> 1.2 so that the compostions are rendered natively through the fastest available interface.</p>
<p>Finally, when using a composition as an effect the application will scan the published inputs and map them as effect parameters, if the format is compatible with the engine. <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> can automatically map parameters that are float values, indexes, colors and booleans and there&#8217;s one visual input of the composition that receive the cell visual.</p>
<p>Now let&#8217;s have a quick look at how you can use Quartz compositions with <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a>..<span id="more-834"></span></p>
<h5>Using compositions as sources</h5>
<p>The quick way to use a composition as source is to import it just like you do with any movie, by drag and drop on a cell or by reaching your .qtz through the file browser. When doing so, <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> will save the path to the .qtz file in your project as it does for any other visual.</p>
<p>For your convenience, <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> installs a set of source compositions in &#8220;/Users/&lt;username&gt;/Library/Application Support/GrandVJ/Quartz Composer/Visuals&#8221;, these are listed in <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> under the “Quartz-Composer (User)” section of the sources browser so that they are always available when you create a new project.</p>
<p>The idea is that you can also add your favorite source compositions there so that you always have them ready when you work on your projects.</p>
<p>Playing compositions as source does not allow modifying the variables from within <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a>.</p>
<table style="padding: 0px;" border="0" align="center" width="100%">
<tbody>
<tr>
<td>
<div id="attachment_900" class="wp-caption aligncenter" style="width: 374px"><img class="size-full wp-image-900 " title="007_grandvj_user_compositions-sources" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/007_grandvj_user_compositions-sources.jpg" alt="User source composition" width="364" height="217" /><p class="wp-caption-text">Path for user compostions as Sources</p></div></td>
<td>
<p><div id="attachment_901" class="wp-caption aligncenter" style="width: 189px"><img class="size-full wp-image-901 " title="008_grandvj_user_compositions-panel" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/008_grandvj_user_compositions-panel.jpg" alt="User compositions in source panel" width="179" height="152" /><p class="wp-caption-text">User compositions as Sources</p></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<h5>Using compositions as effects</h5>
<table style="padding: 0px;" border="0" align="center">
<tbody>
<tr>
<td valign="middle">
<p><div id="attachment_837" class="wp-caption aligncenter" style="width: 181px"><img class="size-full wp-image-837 " title="001_grandvj_system_compositions" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/001_grandvj_system_compositions.jpg" alt="System compositions in GrandVJ" width="171" height="242" /><p class="wp-caption-text">System compositions as Effects</p></div></td>
<td valign="middle">
<div>
<p style="text-align: left;">For effects, <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> will add all the compositions from your system that are supported. It does it by automatically scanning the system folder “/System/Library/Compositions”. These compositions will appear in the application under the “Quartz-Composer (System)” section of the effects browser. You can use them as starting point to develop new effects.</p>
<p style="text-align: left;">You can also add your own compositions as effects, just drop them in the local directory &#8220;/Users/&lt;username&gt;/Library/Application Support/GrandVJ/Quartz Composer/Effects&#8221;. They will appear in the “Quartz-Composer (User)” section of the effect browser.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table style="padding: 0px;" border="0" align="center" width="100%">
<tbody>
<tr>
<td>
<p><div id="attachment_849" class="wp-caption alignleft" style="width: 374px"><img class="size-full wp-image-849 " title="002_grandvj_user_compositions" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/002_grandvj_user_compositions.jpg" alt="Path for user compostions " width="364" height="217" /><p class="wp-caption-text">Path for user compostions as Effects</p></div></td>
<td>
<p><div id="attachment_840" class="wp-caption alignleft" style="width: 186px"><img class="size-full wp-image-840 " title="003_grand_vj_user_compositions2" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/003_grand_vj_user_compositions2.jpg" alt="User compositions" width="176" height="198" /><p class="wp-caption-text">User compositions as Effects</p></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<h5>About the parameters</h5>
<p>As a quick example, let&#8217;s have a look at the effect parameters from the system composition Image Hose. With the Quartz Composer application (found in Developer &gt; Applications &#8211; you need to have installed Apple&#8217;s developer tools of course), open the file “/System/Library/Compositions/Image Hose.qtz” (ore better, open a copy) here&#8217;s what you should see:</p>
<p><div id="attachment_879" class="wp-caption aligncenter" style="width: 616px"><a href="http://www.arkaos.net/blog/wp-content/uploads/2009/11/004_grandvj_composition_image_hose.jpg" rel="shadowbox[sbpost-834];player=img;"><img class="size-full wp-image-879   " title="004_grandvj_composition_image_hose" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/004_grandvj_composition_image_hose.jpg" alt="Image Hose composition" width="606" height="300" /></a><p class="wp-caption-text">Image Hose composition</p></div>
<p>Open the inspector (Editor &gt; Show Inspector) and from the menu, look at the Published Inputs &amp; Outputs, here&#8217;s what you have:</p>
<div id="attachment_882" class="wp-caption aligncenter" style="width: 455px"><img class="size-full wp-image-882 " title="005_grandvj_composition_image_hose_params" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/005_grandvj_composition_image_hose_params.jpg" alt="005_grandvj_composition_image_hose_params" width="445" height="231" /><p class="wp-caption-text">Image Hose composition parameters</p></div>
<p>In <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a>, the first 4 parameters that can be mapped automatically will be displayed. In this case it will be PrimaryColor, SecondaryColor, Pace and Size:</p>
<div id="attachment_883" class="wp-caption aligncenter" style="width: 331px"><img class="size-full wp-image-883" title="006_grandvj_composition_image_hose_params_panel" src="http://www.arkaos.net/blog/wp-content/uploads/2009/11/006_grandvj_composition_image_hose_params_panel.jpg" alt="Quartz composition parameters in GrandVJ" width="321" height="149" /><p class="wp-caption-text">Quartz composition parameters in GrandVJ</p></div>
<p>As you can see, <a title="GrandVJ Eight channels MIDI VJ software for real time HD video mixing" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> will only display the meaningful part of the parameter name and remove all _ProtocolInput strings from parameter names &#8211; this allows to easily display the full parameter name in the panel &#8211; it will also make things a little nicer by capitalizing the first letter of the parameter if necessary.</p>
<p>There are many resources on the web where you can find information and help about creating your own Quartz compositions, you can start by looking at Apple&#8217;s <a title="Apple Developer Connection" href="http://developer.apple.com/graphicsimaging/quartz/" target="_blank">Developer Connection</a>.</p>
<p><strong>Note:</strong> you can download GrandVJ 1.2 beta 2 from <a title="ArKaos users discussion forum" href="http://www.arkaos.net/forum/viewtopic.php?f=26&amp;t=6836">our forums</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arkaos.net/blog/2009/11/engineering/quartz-composer-integration-grandvj/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Why software genlock at 60 FPS does matter!</title>
		<link>http://www.arkaos.net/blog/2009/09/engineering/software-genlock-60fps-does-matter/</link>
		<comments>http://www.arkaos.net/blog/2009/09/engineering/software-genlock-60fps-does-matter/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 12:16:48 +0000</pubDate>
		<dc:creator>FraKtus</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mediamaster]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[synchronization]]></category>
		<category><![CDATA[visuals]]></category>

		<guid isPermaLink="false">http://www.arkaos.net/blog/?p=524</guid>
		<description><![CDATA[Here's why the "software genlock" optimization from ArKaos engine introduced in MediaMaster 1.1 is very important to ensure the best possible fluidity on computers equipped with multi core processors.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-377" title="MediaMaster media server software" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/mediamaster-black.gif" alt="MediaMaster media server software" width="174" height="75" /><a title="MediaMaster dmx media server software" href="http://www.arkaos.net/show-lighting/mediamaster/" target="_blank">MediaMaster</a> 1.1 brings important modifications to our video engine and particularly how the video synchronization and multi threading decoding is processed. It has been optimized to perform what can be called &#8220;software genlock&#8221; in order to ensure the best possible fluidity on computers equipped with multi core processors.</p>
<p>The genlocking we refer to is the action of locking the frequency of a media to a reference signal or clock (check out the related <a title="Wikipedia article about Genlock" href="http://en.wikipedia.org/wiki/Genlock" target="_blank">wikipedia</a> article for a complete explanation).</p>
<p>Let&#8217;s examine quickly the process of displaying frames. Roughly, 3 steps must be acheived:</p>
<ol>
<li>get video frames from the disk</li>
<li>upload them to the graphic card</li>
<li>do the composition / blending of the layers and  present them to the display</li>
</ol>
<p>Now let&#8217;s describe how these steps are achieved without genlock and with genlock:<span id="more-524"></span></p>
<h5>Without genlock:</h5>
<p>At each new monitor frame, the software finds if a new movie frame needs to be processed. If so, it starts working sequentially through the 3 phases. The problem is that the time necessary for a codec to read the data from the disk and convert it into a decompressed frame is not constant and might, in some cases, even be quite lengthy. Mutliply this by 8 (once for each layer), add composition and effecting to it and you end up with a process that is highly variable, and might sometimes take more time than a monitor frame (typically 1/60th second), which creates fluidity problems.</p>
<p><span style="font-weight: normal;">Let&#8217;s illustrate this process with a graphic to make it easier to understand; in a classical real-time video processing application this will work like this:</span></p>
<p><img class="aligncenter size-full wp-image-525" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/genlock1-diag1.jpg" alt="Genlock diagram 1" width="600" height="417" /></p>
<p>The above graph shows an application trying to play a video loop encoded at 30 fps on a monitor running at 60 fps. In a perfect world the application should present each frames of the movie exactly twice.</p>
<p>There are 2 problems with this &#8220;traditional&#8221; way of doing the video processing:</p>
<ul>
<li>The time base of the computer is different from the time base of the graphic card. This means that even an extremely powerful computer will display video with small hiccups once in a while because the time you use to compute movie frame is not exactly synchronized with the time it&#8217;s going to be shown, introducing a <a title="Wikipedia about Jitter" href="http://en.wikipedia.org/wiki/Jitter" target="_blank">jitter effect</a>.</li>
<li>When the software start working to display a new frame it has only in this example 1/60th of second to read a video frame, upload it to the graphic card and display it. The available time depends on the monitor fps and not on the video source fps. Which means that, the higher the fps of the monitor, the more stress you give to your system.</li>
</ul>
<h5>With genlock:</h5>
<p>The processing done by <a title="MediaMaster dmx media server software" href="http://www.arkaos.net/show-lighting/mediamaster/" target="_blank">MediaMaster</a> 1.1 is much more efficient. Three different engine accuracy modes are now available to the user in the preferences dialog: &#8220;Minimal&#8221; was the default mode in MediaMaster 1.0, &#8220;Frame Blending&#8221; another new option in version 1.1 which we will discuss later and &#8220;Buffered&#8221;, which is the subject of this article.</p>
<p>In Buffered mode, the software keeps a predictive buffer that stacks frames that will be needed in the future. As soon as a frame has been decoded, it evaluates what are the next frames that are going to be needed later and queues their decoding directly. This process is running in the background and is separated from the monitor lock needed to present frames without tearing. Whenever the software needs a frame to display, it takes it from the buffer that was prepared upfront.</p>
<p>Also, in buffered mode the content syncs with the monitor frequency rather than with the computer clock. As far as I know, very few other media players are capable of doing something as subtle as this.</p>
<p>So, if we keep the same timing as in the first example but adapt our graphic according to the way the buffered mode is working, here is the result:</p>
<p><img class="aligncenter size-full wp-image-526" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/genlock2-diag2.jpg" alt="Genlock diagram 2" width="600" height="272" /></p>
<p>Because the movie clock is genlocked to the monitor and because the software always have minimum one frame in advance, the movie plays with a perfect regularity and timing : 1 1 2 2 3 3 4 4 … each frame is played exactly twice.</p>
<h5>Why is it so cool?</h5>
<p>If you are still not too sure why it’s nice to be genlocked at 60 fps here is a real time recording of the output from MediaMaster running 2 layers (captured with <a title="Fraps" href="http://www.fraps.com/" target="_blank">Fraps</a>). The lower layer with the speakers runs at 30 fps while the top layer is a pattern that runs at 60 fps, this one is part of our test loops, it&#8217;s a ramp that allows to see very easily if the system is perfectly genlocked.</p>
<p>Most importantly, when applying effects to your content these effects will be rendered at 60 fps so with a perfect synchronization, your eyes will have the feeling that everything is crisp and fluid.</p>
<p>In order to see the videos in this article you need to have QuickTime installed. Of course, ensure your monitor frequency is set to 60 fps and the video below should play perfectly smooth. It&#8217;s an original screen capture of the MediaMaster output in 60 fps, it has just been resized to fit in this article.</p>
<p style="text-align: center;"><object style="width: 512px; height: 384px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="512" height="384" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/001MediaMaster_60_fps.mov" /><embed style="width: 512px; height: 384px;" type="video/quicktime" width="512" height="384" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/001MediaMaster_60_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<p style="text-align: center;">Now in order for you to be able to see the difference here is the same loop at 30 fps:</p>
<p style="text-align: center;"><object style="width: 512px; height: 384px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="512" height="384" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/002MediaMaster_30_fps.mov" /><embed style="width: 512px; height: 384px;" type="video/quicktime" width="512" height="384" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/002MediaMaster_30_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<p style="text-align: center;">Let&#8217;s continue to lower down the fps, here&#8217;s the 20 fps version:</p>
<p style="text-align: center;"><object style="width: 512px; height: 384px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="512" height="384" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/003MediaMaster_20_fps.mov" /><embed style="width: 512px; height: 384px;" type="video/quicktime" width="512" height="384" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/003MediaMaster_20_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<p style="text-align: center;">And finally the 15 fps version:</p>
<p style="text-align: center;"><object style="width: 512px; height: 384px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="512" height="384" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/004MediaMaster_15_fps.mov" /><embed style="width: 512px; height: 384px;" type="video/quicktime" width="512" height="384" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/004MediaMaster_15_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<h5>Try for yourself!</h5>
<p style="text-align: left;">If you are curious, you can test this for yourself, don&#8217;t hesitate to stress <a title="MediaMaster dmx media server software" href="http://www.arkaos.net/show-lighting/mediamaster/" target="_blank">MediaMaster</a> 1.1 when it&#8217;s out but also why not compare and test with any other software video mixer.. For your convenience, you can download our 60 fps test loops as QuickTime movie files further below.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">For best results you should let them loop for a while. In a VJ application you can simply add them as the latest layer of your composition with an addition blending and you will see if your system is powerful enough and your software correctly coded.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">You can download <a title="MediaMaster dmx media server software" href="http://www.arkaos.net/show-lighting/mediamaster/" target="_blank">MediaMaster</a> from our web site.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; text-align: center; margin: 0px;"><object style="width: 640px; height: 480px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="640" height="480" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/bande_h_60_fps.mov" /><embed style="width: 640px; height: 480px;" type="video/quicktime" width="640" height="480" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/bande_h_60_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; text-align: center; margin: 0px;"><object style="width: 640px; height: 480px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="640" height="480" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/ramp_h_60_fps.mov" /><embed style="width: 640px; height: 480px;" type="video/quicktime" width="640" height="480" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/ramp_h_60_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; text-align: center; margin: 0px;"><object style="width: 640px; height: 480px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="640" height="480" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/ramp_v_60_fps.mov" /><embed style="width: 640px; height: 480px;" type="video/quicktime" width="640" height="480" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/ramp_v_60_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; text-align: center; margin: 0px;"><object style="width: 640px; height: 480px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="640" height="480" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="scale" value="tofit" /><param name="src" value="http://www.arkaos.net/blog/wp-content/uploads/2009/08/rect_60_fps.mov" /><embed style="width: 640px; height: 480px;" type="video/quicktime" width="640" height="480" src="http://www.arkaos.net/blog/wp-content/uploads/2009/08/rect_60_fps.mov" scale="tofit" autoplay="false"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arkaos.net/blog/2009/09/engineering/software-genlock-60fps-does-matter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/001MediaMaster_60_fps.mov" length="3950268" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/002MediaMaster_30_fps.mov" length="3332921" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/003MediaMaster_20_fps.mov" length="2637317" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/004MediaMaster_15_fps.mov" length="2158411" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/bande_h_60_fps.mov" length="1058977" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/ramp_h_60_fps.mov" length="957333" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/ramp_v_60_fps.mov" length="964490" type="video/quicktime" />
<enclosure url="http://www.arkaos.net/blog/wp-content/uploads/2009/08/rect_60_fps.mov" length="934352" type="video/quicktime" />
		</item>
		<item>
		<title>New video codec based on texture compression</title>
		<link>http://www.arkaos.net/blog/2009/07/engineering/codec-texture-compression/</link>
		<comments>http://www.arkaos.net/blog/2009/07/engineering/codec-texture-compression/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 15:06:34 +0000</pubDate>
		<dc:creator>FraKtus</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[codec]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[texture]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.arkaos.net/blog/?p=137</guid>
		<description><![CDATA[When it comes to media playback, at ArKaos we always fight to get the best out of current computer configuration.]]></description>
			<content:encoded><![CDATA[<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">When it comes to media playback, at ArKaos we always fight to get the best out of current computer configuration.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">When you are in the show industry and try to find out the best way to compress your content it’s still a little bit of black magic. While some codec are able to compress video very well they are heavy to handle for the machines, even more, the codec that does the best job at compressing while keeping a good quality such as H264 are very bad when you need to scratch your media.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">The best codec for users that need to interact a lot with the content should allow to play forward and backward easily and should allow to jump into the content quickly.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">Recently, I&#8217;ve heard about experiments with a file format designed by graphic card manufacturers and based on texture compression DXT1 DXT3 or DXT5 and I was wondering how hard it would be to add support for such a format to QuickTime through a new codec. Being programing for the QuickTime API since it’s version 1.0 beta I was considering the challenge fun and interesting.</p>
<p><span id="more-137"></span></p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">I started by resuscitating an old sample code from 1999 found on the Apple web site and after a few hours of coding and testing I had an ArKaos codec generating video files that could be played back by QuickTime.</p>
<div id="attachment_144" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.arkaos.net/blog/wp-content/uploads/2009/07/qtplayer.jpg" rel="shadowbox[sbpost-137];player=img;"><img class="size-full wp-image-144 " src="http://www.arkaos.net/blog/wp-content/uploads/2009/07/qtplayer.jpg" alt="ArKaos codec in the QuickTime player" width="480" height="322" /></a><p class="wp-caption-text">ArKaos codec in the QuickTime player</p></div>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">Then I jumped on the DXT texture compression problem and chose to use the squish library to handle the job. A few more hours later and my experimental codec was working with texture compression.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">The codec when used by QuickTime at that point was not efficient because the texture decompression was done on the CPU, so there&#8217;s no advantage of using the GPU to handle that texture format.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">To measure the speed up I used an experimental player I am working on, and patched ffmpeg to handle my new codec. This allowed me to leave the texture data untouched and pass it to the GPU via the OpenGL extensions that handle texture compression.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">When this was done I could start enjoying the show and make some performance tests; in the table below the file size is in MB and CPU load is taken from running top in the console:</p>
<table border="1" width="100%">
<tbody>
<tr style="text-align: center;">
<td><strong>Name</strong></td>
<td><strong>Resolution</strong></td>
<td><strong>Data</strong></td>
<td><strong>H264</strong></td>
<td><strong>Photo JPEG</strong></td>
<td><strong>Dxt1</strong></td>
<td><strong>Dxt5</strong></td>
<td><strong>Dxt1 Compressed</strong></td>
<td><strong>Dxt5 Compressed</strong></td>
</tr>
<tr style="text-align: center;">
<td>Alternate Rotate DI</td>
<td>640*480</td>
<td>File Size</td>
<td>9,3</td>
<td>14,3</td>
<td>22</td>
<td>43,9</td>
<td>17,5</td>
<td>19,7</td>
</tr>
<tr style="text-align: center;">
<td></td>
<td></td>
<td>CPU Load</td>
<td>31</td>
<td>30</td>
<td>7</td>
<td>9</td>
<td>15</td>
<td>18</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr style="text-align: center;">
<td>1920 HD</td>
<td>1920*1080</td>
<td>File Size</td>
<td>36,5</td>
<td>41,8</td>
<td>90</td>
<td>180</td>
<td>55,7</td>
<td>63,8</td>
</tr>
<tr style="text-align: center;">
<td></td>
<td></td>
<td>CPU Load</td>
<td>99</td>
<td>95</td>
<td>13</td>
<td>22</td>
<td>42</td>
<td>56</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr style="text-align: center;">
<td>T25 Random Twirls</td>
<td>1280*720</td>
<td>File Size</td>
<td>35,9</td>
<td>73,2</td>
<td>65,9</td>
<td>131,8</td>
<td>51,5</td>
<td>58,4</td>
</tr>
<tr style="text-align: center;">
<td></td>
<td></td>
<td>CPU Load</td>
<td>78</td>
<td>72</td>
<td>10</td>
<td>16</td>
<td>32</td>
<td>41</td>
</tr>
</tbody>
</table>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">If you are curious about frame quality here is a crop from an original frame in Apple intermediate :</p>
<p style="margin: 0px; padding: 7px 0px; text-align: center;">
<div id="attachment_147" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.arkaos.net/blog/wp-content/uploads/2009/07/frame-original.jpg" rel="shadowbox[sbpost-137];player=img;"><img class="size-full wp-image-147 " src="http://www.arkaos.net/blog/wp-content/uploads/2009/07/frame-original.jpg" alt="Original frame - Apple intermediate" width="512" height="384" /></a><p class="wp-caption-text">Original frame - Apple intermediate (click for full size)</p></div>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">Here is the same cropped frame using Dxt1 with texture compression:</p>
<div id="attachment_149" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.arkaos.net/blog/wp-content/uploads/2009/07/frame-dxt1.jpg" rel="shadowbox[sbpost-137];player=img;"><img class="size-full wp-image-149 " src="http://www.arkaos.net/blog/wp-content/uploads/2009/07/frame-dxt1.jpg" alt="HD frame - Dxt1 compressed" width="512" height="384" /></a><p class="wp-caption-text">HD frame - Dxt1 compressed (click for full size)</p></div>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">And here is the same cropped frame with Dxt5 compression:</p>
<p style="margin: 0px; padding: 7px 0px; text-align: center;">
<div id="attachment_151" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.arkaos.net/blog/wp-content/uploads/2009/07/frame-dxt5.jpg" rel="shadowbox[sbpost-137];player=img;"><img class="size-full wp-image-151 " src="http://www.arkaos.net/blog/wp-content/uploads/2009/07/frame-dxt5.jpg" alt="Same frame with Dxt5 compression" width="512" height="384" /></a><p class="wp-caption-text">Same frame with Dxt5 compression (click for full size)</p></div>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">So the results of these tests are that pure Dxt1 is the best format when it comes to CPU load, Dxt5 is better if you focus on quality but it generates files that are twice bigger. Actually, using Dxt1 I could have played 7 HD loops at the same time with my laptop … I mean, if hard drive&#8217;s data rate would&#8217;ve allowed it!</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">The problem with pure Dxt5 or even Dxt1 files is that they are huge, about 4 times bigger than photo jpeg or H264 encoded files. So my workaround was to use data compression on the CPU, since it&#8217;s almost unused!</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">To conclude, it looks like using Dxt1 with texture compression is the best solution to optimize both CPU and disk usage with a file size that is almost the same as Photo jpeg and a little bit bigger than H264. And the codec is still twice faster than any other codec I tested when using the CPU to decompress the texture data from disk.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">On my venerable old MacBook pro I can’t smoothly play a loop in Full HD and even at 1280*720 my machine is still struggling. Thanks to Dxt1 with texture compression I can play two HD layers and three 720p layers.</p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">Now I know you guys would like to play with this new toy so here&#8217;s a .dmg file with the test player I have used, along with a set of video loops. Beware that this dmg file is for Mac OS X x86 only (no Power PC): <a title="ArKaos Compressed Texture Demo" href="http://blog.fraktus.com/files/downloads/CompressedTextureDemo.dmg">and here&#8217;s the link</a></p>
<p style="padding-top: 7px; padding-right: 0px; padding-bottom: 7px; padding-left: 0px; margin: 0px;">You can be sure that we will bundle that new experimental codec in the next update of <a title="GrandVJ - VJ Software" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> and <a title="MediaMaster - Media Server Software" href="http://www.arkaos.net/show-lighting/mediamaster/" target="_blank">MediaMaster</a>, so everyone can enjoy it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arkaos.net/blog/2009/07/engineering/codec-texture-compression/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using QuickTime or FFMPEG on a PC?</title>
		<link>http://www.arkaos.net/blog/2009/07/tips/quicktime-ffmpeg-pc/</link>
		<comments>http://www.arkaos.net/blog/2009/07/tips/quicktime-ffmpeg-pc/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 14:57:01 +0000</pubDate>
		<dc:creator>nostromo</dc:creator>
				<category><![CDATA[Hints & Tips]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[grandvj]]></category>
		<category><![CDATA[mediamaster]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[visuals]]></category>

		<guid isPermaLink="false">http://www.arkaos.net/blog/?p=155</guid>
		<description><![CDATA[If you use a multi-core/multi-processor machine with GrandVJ or MediaMaster, you will benefit a lot to use codecs that are played through our FFMPEG player rather than through QuickTime.]]></description>
			<content:encoded><![CDATA[<p><strong>Here&#8217;s a quick tip for PC users</strong>: if you use a multi-core/multi-processor machine with <a title="VJ Software - GrandVJ" href="http://www.arkaos.net/vj-dj/grandvj/" target="_blank">GrandVJ</a> or <a title="Media server software - MediaMaster" href="http://www.arkaos.net/show-lighting/mediamaster/" target="_blank">MediaMaster</a>, you will benefit a lot to use codecs that are played through our FFMPEG player rather than through QuickTime.</p>
<p>This is due to the fact that on a PC, the internal QuickTime decoding routines are not capable of multi-threading, which makes it impossible to decode frames in parallel. So even if one layer can run properly using QuickTime libraries, the more layer you pile up, the more the decoding bottleneck will show up.</p>
<p>On Mac OSX, QuickTime is now mostly multi-threaded decoding so it&#8217;s not such an issue but we recommend to try to use codec supported by our FFMPEG player in any case.</p>
<p><strong>Important</strong>: make sure you understand we refer to the internal QuickTime player and NOT to QuickTime files in general. Some QuickTime files (for example, files based on mpeg/mpeg2/mpeg4/PhotoJPEG/Motion JPEG/H.264 codec) are played through the FFMPEG player.</p>
<p>To know what internal player is used for what file, use the information shown in the visual library:</p>
<div id="attachment_160" class="wp-caption alignleft" style="width: 264px"><img class="size-full wp-image-160 " title="Visuals library" src="http://www.arkaos.net/blog/wp-content/uploads/2009/07/mov_examples.jpg" alt="mov_examples" width="254" height="122" /><p class="wp-caption-text">Visuals library</p></div>
<p>In this case, both movies are QuickTime files. The first one is read through QuickTime because the Cinepak Codec is not handled by FFMPEG.It will play but it is not optimal.</p>
<p>The second is read through FFMPEG because it&#8217;s using H.264 codec, it is therefore better for performances.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arkaos.net/blog/2009/07/tips/quicktime-ffmpeg-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

