<?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>Brooks Andrus &#187; OSFlash</title>
	<atom:link href="http://www.brooksandrus.com/blog/category/osflash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brooksandrus.com/blog</link>
	<description>This is the blog of Brooks Andrus. Here, at irregular intervals, you may find digital noise centered around the activities of an early 21st century technologist. I work for TechSmith Corporation, but this web space and the views found on it are entirely my own.</description>
	<lastBuildDate>Tue, 29 May 2012 03:14:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Killer Regular Expressions Tool</title>
		<link>http://www.brooksandrus.com/blog/2007/06/07/killer-regular-expressions-tool/</link>
		<comments>http://www.brooksandrus.com/blog/2007/06/07/killer-regular-expressions-tool/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 02:11:19 +0000</pubDate>
		<dc:creator>brooks</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[OSFlash]]></category>

		<guid isPermaLink="false">http://www.brooksandrus.com/blog/2007/06/07/killer-regular-expressions-tool/</guid>
		<description><![CDATA[I&#8217;ve always viewed regular expressions as some sort of nasty dark art that only a Perl developer could love, but today I picked up on a tool, RegexBuddy, that promises to make me fear regex no longer. This gem fell to me by virtue of one of the many dev mailing lists I skulk on&#8211;osflash.org, [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve always viewed <a href="http://www.regular-expressions.info/" title="Regular Expressions Info">regular expressions</a> as some sort of nasty dark art that only a <a href="http://en.wikipedia.org/wiki/Perl" title="Perl Wikipedia link">Perl</a> developer could love, but today I picked up on a tool, <a href="http://www.regexbuddy.com/" title="RegexBuddy">RegexBuddy</a>, that promises to make me fear regex no longer. This gem fell to me by virtue of one of the many dev mailing lists I skulk on&#8211;<a href="http://www.osflash.org/" title="osflash - open source Flash">osflash.org</a>, courtesy of a thread started by <a href="http://http://www.rockonflash.com/blog/" title="John Grden's blog">John Grden</a> and answered by Antony Jones. There are a couple of caveats here&#8211;1) this is a windows only app (thankfully <a href="http://www.parallels.com/" title="Parallels">Parallels</a> / <a href="http://www.codeweavers.com/products/cxmac/" title="Crossover">Crossover</a> help mitigate this) and 2) This is not a free app (runs $30 US).</p>
<p><img src="http://content.screencast.com/?parameters=16b6fbbd-e0e3-4ab9-96a6-674f984bda62_f56d3c0d-621b-469c-bc64-46347ae13f07_static_0_0_00000048.png" title="osflash thread screen capture" alt="osflash thread screen capture" height="391" width="413" /></p>
<p>ROCKS indeed Antony!</p>
<p><strong>*UPDATE*</strong></p>
<p>Thankfully, RegexBuddy works with Crossover:</p>
<p><img src="http://content.screencast.com/?parameters=edb9ad56-f47f-42b6-bdd4-04cf4e6e54c2_f56d3c0d-621b-469c-bc64-46347ae13f07_static_0_0_00000050.png" title="Image of Crossover running RegexBuddy on Mac OS X" alt="Image of Crossover running RegexBuddy on Mac OS X" height="488" width="573" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooksandrus.com/blog/2007/06/07/killer-regular-expressions-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change / Insert FLV Metadata Values (timestamp, dimensions) with Flvtool2</title>
		<link>http://www.brooksandrus.com/blog/2007/04/15/change-insert-flv-metadata-values-timestamp-dimensions-with-flvtool2/</link>
		<comments>http://www.brooksandrus.com/blog/2007/04/15/change-insert-flv-metadata-values-timestamp-dimensions-with-flvtool2/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 08:34:35 +0000</pubDate>
		<dc:creator>brooks</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[OSFlash]]></category>

		<guid isPermaLink="false">http://www.brooksandrus.com/blog/2007/04/15/change-insert-flv-metadata-values-timestamp-dimensions-with-flvtool2/</guid>
		<description><![CDATA[After a bit of fiddling I figured out how to use flvtool2 to overwrite the existing metadata values for an flv or even add completely new name value pairs. In most circumstances the video tool used to encode an flv will insert a few values into the file&#8217;s metadata. Typically you will find properties such [...]]]></description>
				<content:encoded><![CDATA[<p> After a bit of fiddling I figured out how to use flvtool2 to overwrite the existing metadata values for an flv or even add completely new name value pairs.</p>
<p>In most circumstances the video tool used to encode an flv will insert a few values into the file&#8217;s metadata. Typically you will find properties such as duration, width, height, etc. stored in the file allowing you to to respond to the data when the flv&#8217;s onMetaData event fires.</p>
<p>You can also use flv metadata &#8220;injectors&#8221; such as <a href="http://rubyforge.org/projects/flvtool2/">flvtool2</a> to do this for you if your encoder failed to insert the data, or you wish to augment the metadata (the injectors often add additional metadata that is not included by the encoder).</p>
<p>However, it can sometimes be useful to change the values set by the encoder / injector. For example, perhaps I&#8217;ve performed a cut operation on an flv with flvtool2 and would now like the duration to reflect the new timestamp value. In this scenario you use flvtool2&#8242;s &#8220;-key:value&#8221; switch to change the value of an existing property, or key.</p>
<p>Here&#8217;s a short video illustrating how to overwrite existing metadata values using flvtool2.</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_embed_loader_2091983142"
			class="flashmovie"
			width="472"
			height="425">
	<param name="movie" value="http://www.brooksandrus.com/jing/embed_loader.swf" />
	<param name="flashvars" value="width=472&amp;height=425&amp;content=http://www.brooksandrus.com/jing/flvtool2_overwrite_metadata.swf" />
	<param name="scale" value="noScale" />
	<param name="salign" value="TL" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.brooksandrus.com/jing/embed_loader.swf"
			name="fm_embed_loader_2091983142"
			width="472"
			height="425">
		<param name="flashvars" value="width=472&amp;height=425&amp;content=http://www.brooksandrus.com/jing/flvtool2_overwrite_metadata.swf" />
		<param name="scale" value="noScale" />
		<param name="salign" value="TL" />
	<!--<![endif]-->
		
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>You can also add completely  new name / value pair to an flv&#8217;s metadata:<br />
<code><br />
flvtool2 -U -drummer:Portnoy example.flv</code></p>
<p>If you&#8217;re interested in more commands take a look at the <a href="http://osflash.org/flvtool2">flvtool2 wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooksandrus.com/blog/2007/04/15/change-insert-flv-metadata-values-timestamp-dimensions-with-flvtool2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Flvtool2 &#8211; Flash Video (flv) Metadata / Cue Point Injector and Cutting Tool</title>
		<link>http://www.brooksandrus.com/blog/2007/03/18/flvtool2-flash-video-flv-metadata-cue-point-injector-and-cutting-tool/</link>
		<comments>http://www.brooksandrus.com/blog/2007/03/18/flvtool2-flash-video-flv-metadata-cue-point-injector-and-cutting-tool/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 03:12:22 +0000</pubDate>
		<dc:creator>brooks</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[OSFlash]]></category>

		<guid isPermaLink="false">http://www.brooksandrus.com/blog/2007/03/18/flvtool2-flash-video-flv-metadata-cue-point-injector-and-cutting-tool/</guid>
		<description><![CDATA[I&#8217;m a couple of years late to this party, but there&#8217;s a neat Ruby based tool, Flvtool2, which allows you to stamp metadata in flv files, insert cue points&#8211;both navigation and event, and allows you to slice and dice an flv file based on defined in and out points (kudos to Norman Timmler for writing [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m a couple of years late to this party, but there&#8217;s a neat Ruby based tool, <a href="http://rubyforge.org/projects/flvtool2/" title="flvtool2">Flvtool2</a>, which allows you to stamp metadata in flv files, insert cue points&#8211;both navigation and event, and  allows you to slice and dice an flv file based on  defined  in and out points (kudos to <a href="http://inlet-media.de/">Norman Timmler</a> for writing this app and making it available to the community).</p>
<p>Unfortunately, the documentation for this tool is almost non-existent &#8211; SPAM apparently took down the wiki. Another problem, I encountered at least, is that the  builds  available from RubyForge contain bugs. Fortunately, you can download the source from svn where the bugs appear to be fixed.</p>
<p>Since the documentation is so sparse I thought I&#8217;d post some example usage where the search bots might possibly find it.</p>
<p>If you wish to insert onCuePoint events into your flv, Flvtool2 accepts an xml / yaml file that declares the cue point data. The screen shot below illustrates how you can insert both &#8220;event&#8221; and &#8220;navigation&#8221; cue points. Navigation cue points should theoretically corresponds to a keyframe stamp so that an flv seek action can be assured of starting from the given timestamp.<br />
<img src="http://www.brooksandrus.com/blog_assets/images/metatags.png" title="xml tag declarations used by flvtool2" alt="xml tag declarations used by flvtool2" height="660" width="373" /></p>
<p>You can view a list of of the possible commands by typing the following in your commandline shell.</p>
<p><code>flvtool2 -h</code></p>
<p><img src="http://www.brooksandrus.com/blog_assets/images/flvtool2_help.png" height="644" width="467" /></p>
<p>To simply print out all of the metadata for a given flv simply use the following command.</p>
<p><code>flvtool2 -P some.flv</code></p>
<p>To insert cue points declared in the tags.xml file use the -A command with the -t switch. In the example below I&#8217;ll actually chain a few commands together (Add, Print, Update). The -P prints the metadata from the given file to stdout and the -U updates the flv with an onMetaTag event.</p>
<p><code>flvtool2 -APUt tags.xml src.flv output.flv</code></p>
<p>Here&#8217;s what running the proceeding code might look like.</p>
<p><img src="http://www.brooksandrus.com/blog_assets/images/addtags.png" height="280" width="551" /></p>
<p>The next example illustrates how to carve a new flv that&#8217;s four seconds long from the source flv based on in / out timestamps in milliseconds. To do this use the -C command along with the -i / -o switches.</p>
<p><code>flvtool2 -Cio 1000 5000 src.flv splice.flv</code></p>
<p><img src="http://www.brooksandrus.com/blog_assets/images/flv_splice.png" height="182" width="545" /></p>
<p>If you are interested in using flvtool2 as part of an automated ant build script you&#8217;ll need to invoke Ruby via the exec task, pass in flvtool as the ruby application to run and then pass in the desired commands, switches and arguments. The screenshot below is an example of this in action.<br />
<img src="http://www.brooksandrus.com/blog_assets/images/ant_flvtool2.png" height="542" width="497" /></p>
<p>So there are just a ton of applications for a tool like this for both client and server-side applications which should be obvious to just about everyone likely to read this post. If you&#8217;re bored, it&#8217;s also extremely interesting to to take a peek at the metadata injected by various commercial encoders or video sharing sites (gootube et al). Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brooksandrus.com/blog/2007/03/18/flvtool2-flash-video-flv-metadata-cue-point-injector-and-cutting-tool/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Setting Mac / Unix Environment Variables &#8211; Adding Executables to the System Path</title>
		<link>http://www.brooksandrus.com/blog/2006/05/24/setting-mac-unix-environment-variables-adding-executables-to-the-system-path/</link>
		<comments>http://www.brooksandrus.com/blog/2006/05/24/setting-mac-unix-environment-variables-adding-executables-to-the-system-path/#comments</comments>
		<pubDate>Wed, 24 May 2006 17:29:48 +0000</pubDate>
		<dc:creator>brooks</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[OSFlash]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://www.brooksandrus.com/blog/2006/05/24/setting-mac-unix-environment-variables-adding-executables-to-the-system-path/</guid>
		<description><![CDATA[After years of resistance I finally caved and bought a sleek, shiny MacBook Pro over the weekend. I&#8217;ve been slowly figuring out how to set up my AMES development environment and that means figuring out the basics of using the Unix shell. I struggled to find a simple explanation of how to set environment variables, [...]]]></description>
				<content:encoded><![CDATA[<p>After years of resistance I finally caved and bought a sleek, shiny MacBook Pro over the weekend. I&#8217;ve been slowly figuring out how to set up my AMES development environment and that means figuring out the basics of using the Unix shell. I struggled to find a simple explanation of how to set environment variables, so I&#8217;m inserting a couple of screen grabs which illustrate how to add MTASC and Swfmill to the PATH environment variable.</p>
<p>I downloaded, unzipped and placed the mtasc and swfmill binaries in their respective folders in the following folder:<br />
/usr/local/bin<br />
Method 1 : A Session Variable &#8211; Using the bash shell, this adds the mtasc and swfmill binaries to the PATH variable for the current terminal session. When you close the shell and reopen it, you&#8217;ll have to add the files to the PATH variable again.</p>
<div style="text-align: center"><img src="http://www.brooksandrus.com/blog_assets/images/path_current_session.png" /></div>
<div>There&#8217;s actually a typo in the screen grab&#8211;it should be:</p>
<blockquote><p>export PATH=$PATH:/usr/local/bin/mtasc:/usr/local/bin/swfmill</p></blockquote>
<p>Method 2: Add to Startup Script &#8211; Place the command in a startup script called bashrc which can be found along the path below. The modified PATH will always be available to any bash shell and no further editing is needed.<br />
/etc</p>
<p>This method is similar to how environment variables are set in Windows (without the gui absraction layer). the bashrc file is a simple text file and you simply add the commands to this script which is run everytime the os loads.</p></div>
<div style="text-align: center"><img src="http://www.brooksandrus.com/blog_assets/images/path_startup.png" /></div>
<div>I can now reference mtasc or swfmill in the bash sell by simply typing the executable name!Since, I opted for the &#8220;set it and forget it&#8221; method, I know I at least will benefit from having something to reference the next time I have to set up OSX or Linux (I vaguely remember doing this when I first forayed into Linux a year ago and cursed my laziness at not writing down the process)&#8230;.maybe there are others out there who have shared the pain of leaving their comfortable Windows double-wide trailer and gone hollywood with the glamorous mac-villa &#8220;Made by Apple in California&#8221; :)</div>
]]></content:encoded>
			<wfw:commentRss>http://www.brooksandrus.com/blog/2006/05/24/setting-mac-unix-environment-variables-adding-executables-to-the-system-path/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
