<?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>Jason L. Froebe - Tech tips and How Tos for Fellow Techies &#187; unix</title>
	<atom:link href="http://froebe.net/blog/index.php/tag/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://froebe.net/blog</link>
	<description>Tips &#38; Tricks for Databases (Sybase, Oracle, MySQL, PostgreSQL, SQLite), Windows, Linux, Solaris, Perl, Java, Bash and so much much more</description>
	<lastBuildDate>Sat, 07 Jan 2012 22:12:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Howto convert an entire directory of videos to play on your Sony Playstation 3 using ffmpeg</title>
		<link>http://froebe.net/blog/2009/09/23/howto-convert-an-entire-directory-of-videos-to-play-on-your-sony-playstation-3-using-ffmpeg/</link>
		<comments>http://froebe.net/blog/2009/09/23/howto-convert-an-entire-directory-of-videos-to-play-on-your-sony-playstation-3-using-ffmpeg/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 14:16:00 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[aac]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[checkinstall]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[libxvid]]></category>
		<category><![CDATA[mediatomb]]></category>
		<category><![CDATA[mp4]]></category>
		<category><![CDATA[mpeg4]]></category>
		<category><![CDATA[pearl]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[sony playstation 3]]></category>
		<category><![CDATA[storm]]></category>
		<category><![CDATA[transcode]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[x264]]></category>
		<category><![CDATA[xvid]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=1127</guid>
		<description><![CDATA[I think a lot of people have been struggling with mass converting of videos for the ps3&#8230; I&#8217;ve been searching for a way to mass convert my videos (mostly podcasts) to play on my Sony PlayStation 3 over the wire with Mediatomb.  For a long time I&#8217;ve been using a hodpodge of mp4box and mencoder [...]]]></description>
			<content:encoded><![CDATA[<p>I think a lot of people have been struggling with mass converting of videos for the ps3&#8230;<br />
I&#8217;ve been searching for a way to mass convert my videos (mostly podcasts) to play on my <a href="http://www.amazon.com/gp/product/B002I0J4VQ?ie=UTF8&amp;tag=froebe-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B002I0J4VQ">Sony PlayStation 3</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=froebe-20&amp;l=as2&amp;o=1&amp;a=B002I0J4VQ" border="0" alt="" width="1" height="1" /> over the wire with <a href="http://mediatomb.cc/">Mediatomb</a>.  For a long time I&#8217;ve been using a hodpodge of <a href="http://gpac.sourceforge.net/">mp4box</a> and <a href="http://www.mplayerhq.hu">mencoder</a> to convert the videos.  The problem was that mp4box more often then not would crash or get stuck in a loop where it fills up a 1TB harddrive converting a 20mb file.  There had to be a better way.</p>
<p>If your ffmpeg doesn&#8217;t support x264 (video) or aac (audio) encoding, like all Ubuntu Linux distributions, then you will have to recompile ffmpeg.  Don&#8217;t worry, it is easier then you think!</p>
<p><a href="http://ubuntuforums.org/member.php?u=162846">FakeOutdoorsman</a> over on the Ubuntu Forums posted the method to <a href="http://ubuntuforums.org/showthread.php?t=7860j95">build ffmpeg from scratch</a>:</p>
<blockquote><p>
<strong>Choose your Ubuntu</strong></p>
<p>0.The instructions on the page are for Ubuntu Jaunty Jackalope 9.04 and Ubuntu Intrepid Ibex 8.10. Separate instructions are also available for other releases:</p>
<p>    * Install FFmpeg and x264 on Ubuntu Hardy Heron 8.04 LTS<br />
    * Install FFmpeg and x264 on Ubuntu Dapper Drake 6.06 LTS</p>
<p><strong>Getting the Dependencies</strong></p>
<p>1. Uninstall x264, libx264-dev, and ffmpeg if they are already installed. Open a terminal and run the following:</p>
<div class="bash dean_ch"><span class="kw2">sudo</span> <span class="kw2">apt-get</span> purge <span class="kw2">ffmpeg</span> x264 libx264-dev</div>
<p>2. Next, get all of the packages you will need to install FFmpeg and x264 (you may need to enable the universe and multiverse repositories):</p>
<p>Code:</p>
<div class="bash dean_ch"><span class="kw2">sudo</span> <span class="kw2">apt-get</span> update<br />
<span class="kw2">sudo</span> <span class="kw2">apt-get</span> <span class="kw2">install</span> build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev</div>
<p><strong>Install x264</strong><br />
3. Get the most current source files from the official x264 git repository, compile, and install. You can run &#8220;./configure &#8211;help&#8221; to see what features you can enable/disable. If you are behind a firewall or unable to use git, then daily source tarballs are also available.</p>
<div class="bash dean_ch"><span class="kw3">cd</span><br />
<span class="kw2">git</span> clone <span class="kw2">git</span>:<span class="sy0">//</span>git.videolan.org<span class="sy0">/</span>x264.git<br />
<span class="kw3">cd</span> x264<br />
.<span class="sy0">/</span>configure<br />
<span class="kw2">make</span><br />
<span class="kw2">sudo</span> checkinstall <span class="re5">&#8211;fstrans</span>=no <span class="re5">&#8211;install</span>=<span class="kw2">yes</span> <span class="re5">&#8211;pkgname</span>=x264 <span class="re5">&#8211;pkgversion</span> <span class="st0">&quot;1:0.svn<span class="es5">`date +%Y%m%d`</span>-0.0ubuntu1&quot;</span> <span class="re5">&#8211;default</span></div>
<p><strong>Install FFmpeg</strong><br />
4. Get the most current source files from the official FFmpeg svn, compile, and install. Run &#8220;./configure &#8211;help&#8221; to see what features you can enable/disable. If you are behind a firewall or unable to use subversion, then nightly FFmpeg snapshots are also available.</p>
<div class="bash dean_ch"><span class="kw3">cd</span><br />
<span class="kw2">svn</span> checkout <span class="kw2">svn</span>:<span class="sy0">//</span>svn.ffmpeg.org<span class="sy0">/</span>ffmpeg<span class="sy0">/</span>trunk <span class="kw2">ffmpeg</span><br />
<span class="kw3">cd</span> <span class="kw2">ffmpeg</span><br />
.<span class="sy0">/</span>configure <span class="re5">&#8211;enable-gpl</span> <span class="re5">&#8211;enable-nonfree</span> <span class="re5">&#8211;enable-pthreads</span> <span class="re5">&#8211;enable-libfaac</span> <span class="re5">&#8211;enable-libfaad</span> <span class="re5">&#8211;enable-libmp3lame</span> <span class="re5">&#8211;enable-libtheora</span> <span class="re5">&#8211;enable-libx264</span> <span class="re5">&#8211;enable-libxvid</span> <span class="re5">&#8211;enable-x11grab</span><br />
<span class="kw2">make</span><br />
<span class="kw2">sudo</span> checkinstall <span class="re5">&#8211;fstrans</span>=no <span class="re5">&#8211;install</span>=<span class="kw2">yes</span> <span class="re5">&#8211;pkgname</span>=<span class="kw2">ffmpeg</span> <span class="re5">&#8211;pkgversion</span> <span class="st0">&quot;3:0.svn<span class="es5">`date +%Y%m%d`</span>-12ubuntu3&quot;</span> <span class="re5">&#8211;default</span> </div>
<p>That&#8217;s it for installation. You can keep the ~/x264 and ~/ffmpeg directories if you later want to update the source files to a new revision. See &#8220;Updating Your Installation&#8221; below for more details.</p></blockquote>
<p>Now that we have a working ffmpeg, we can go on to the converting the video files (<a href='http://froebe.net/blog/wp-content/uploads/2009/10/convert_videos.sh'>convert_videos.sh</a>):</p>
<div class="bash dean_ch"><span class="co0">#!/bin/bash</span></p>
<p><span class="kw1">function</span> print_usage <span class="br0">&#123;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;=============================================================================================&quot;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot; &nbsp; &nbsp; &nbsp; &nbsp;convert_videos.sh [file|directory] [output directory] {bb|bb_storm|ps3} {file prefix}&quot;</span> <br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;=============================================================================================&quot;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> verify_file <span class="br0">&#123;</span><br />
&nbsp; <span class="kw3">echo</span> j<br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> process_file <span class="br0">&#123;</span><br />
&nbsp; <span class="re2">ORIG_FILE</span>=<span class="st0">&quot;$1&quot;</span><br />
&nbsp; <span class="re2">DEST_DIR</span>=<span class="st0">&quot;$2&quot;</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-z</span> <span class="co1">${BLACKBERRY}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="re2">DEST_FILE</span>=<span class="co1">${DEST_DIR}</span><span class="sy0">/</span><span class="co1">${FILE_PREFIX}</span>$<span class="br0">&#40;</span> <span class="kw2">basename</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="sy0">|</span> <span class="kw2">perl</span> <span class="re5">-ne</span> <span class="st_h">&#8216;s/\.(?:[a-z,A-Z,0-9]{3,4})$/\.mp4/; print $_&#8217;</span> <span class="br0">&#41;</span><br />
&nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="re2">DEST_FILE</span>=<span class="co1">${DEST_DIR}</span><span class="sy0">/</span><span class="co1">${FILE_PREFIX}</span>$<span class="br0">&#40;</span> <span class="kw2">basename</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="sy0">|</span> <span class="kw2">perl</span> <span class="re5">-ne</span> <span class="st_h">&#8216;s/\.(?:[a-z,A-Z,0-9]{3,4})$/_bb\.mp4/; print $_&#8217;</span> <span class="br0">&#41;</span><br />
&nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-f</span> <span class="st0">&quot;<span class="es3">${DEST_FILE}</span>&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot; &nbsp; &nbsp;We already processed <span class="es1">\&quot;</span><span class="es3">${ORIG_FILE}</span><span class="es1">\&quot;</span> &#8230; skipping&quot;</span><br />
&nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="re2">VID_INFO_FPS</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-nosound</span> <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> FPS <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">VID_INFO_FPS</span>=<span class="co1">${VID_INFO_FPS#*=}</span><br />
&nbsp; &nbsp; <span class="re2">VID_INFO_WIDTH</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-nosound</span> <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> WIDTH <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">VID_INFO_WIDTH</span>=<span class="co1">${VID_INFO_WIDTH##*=}</span><br />
&nbsp; &nbsp; <span class="re2">VID_INFO_HEIGHT</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-nosound</span> <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> HEIGHT <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">VID_INFO_HEIGHT</span>=<span class="co1">${VID_INFO_HEIGHT##*=}</span><br />
&nbsp; &nbsp; <span class="re2">VID_INFO_ASPECT</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-nosound</span> <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> ASPECT <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">VID_INFO_ASPECT</span>=<span class="co1">${VID_INFO_ASPECT##*=}</span></p>
<p>&nbsp; &nbsp; <span class="re2">AUD_INFO_FORMAT</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-ao</span> null <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> AUDIO_FORMAT <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">AUD_INFO_FORMAT</span>=<span class="co1">${AUD_INFO_FORMAT##*=}</span><br />
&nbsp; &nbsp; <span class="re2">AUD_INFO_CHANNELS</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-ao</span> null <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> AUDIO_NCH <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">AUD_INFO_CHANNELS</span>=<span class="co1">${AUD_INFO_CHANNELS##*=}</span><br />
&nbsp; &nbsp; <span class="re2">AUD_INFO_BITRATE</span>=$<span class="br0">&#40;</span> <span class="kw2">mplayer</span> <span class="re5">-identify</span> <span class="re5">-ao</span> null <span class="re5">-vo</span> null <span class="re5">-nocache</span> <span class="re5">-really-quiet</span> <span class="re5">-frames</span> <span class="nu0">1</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="nu0">2</span><span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null <span class="sy0">|</span> <span class="kw2">grep</span> ID_AUDIO_BITRATE <span class="br0">&#41;</span> <br />
&nbsp; &nbsp; <span class="re2">AUD_INFO_BITRATE</span>=<span class="co1">${AUD_INFO_BITRATE##*=}</span></p>
<p>&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${AUD_INFO_BITRATE}</span> <span class="sy0">&lt;</span> <span class="nu0">163840</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">AUD_INFO_BITRATE</span>=<span class="nu0">160</span><br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">AUD_INFO_BITRATE</span>=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${AUD_INFO_BITRATE}</span> <span class="sy0">/</span> <span class="nu0">1024</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; &nbsp; <span class="co0">###############</span><br />
&nbsp; &nbsp; <span class="co0"># &nbsp;We need to make the frame rate an acceptible amoun</span><br />
&nbsp; &nbsp; <span class="co0">###############</span><br />
&nbsp; &nbsp; <span class="kw1">case</span> <span class="co1">${VID_INFO_FPS}</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; <span class="nu0">60.000</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># HD</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_FPS</span>=<span class="nu0">59.94</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; <span class="nu0">30.000</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># NTSC</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_FPS</span>=<span class="nu0">29.97</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; <span class="nu0">24.000</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co0"># PAL</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_FPS</span>=<span class="nu0">23.97</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; <span class="kw1">esac</span> </p>
<p>&nbsp; &nbsp; <span class="co0">###############</span><br />
&nbsp; &nbsp; <span class="co0"># &nbsp;We need to make the video resolution a multiple of 16 for it to be properly compressed</span><br />
&nbsp; &nbsp; <span class="co0">###############</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_INFO_HEIGHT}</span> <span class="sy0">%</span> <span class="nu0">16</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_VERTICAL</span>=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="nu0">16</span> &#8211; <span class="co1">${VID_INFO_HEIGHT}</span> <span class="sy0">%</span> <span class="nu0">16</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_VERTICAL</span>=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${VID_BORDER_VERTICAL}</span> <span class="sy0">/</span> <span class="nu0">2</span> <span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_BORDER_VERTICAL}</span> <span class="sy0">%</span> <span class="nu0">2</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">let</span> VID_BORDER_VERTICAL_TOP+=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${VID_BORDER_VERTICAL}</span> &#8211; <span class="nu0">1</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">let</span> VID_BORDER_VERTICAL_BOTTOM+=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${VID_BORDER_VERTICAL}</span> + <span class="nu0">1</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_VERTICAL_TOP</span>=<span class="co1">${VID_BORDER_VERTICAL}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_VERTICAL_BOTTOM</span>=<span class="co1">${VID_BORDER_VERTICAL}</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_VERTICAL_TOP</span>=<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_VERTICAL_BOTTOM</span>=<span class="nu0">0</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">%</span> <span class="nu0">16</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_HORIZONTAL</span>=$<span class="br0">&#40;</span> <span class="nu0">16</span> &#8211; <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">%</span> <span class="nu0">16</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_HORIZONTAL</span>=$<span class="br0">&#40;</span> <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">/</span> <span class="nu0">2</span> <span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_BORDER_HORIZONTAL}</span> <span class="sy0">%</span> <span class="nu0">2</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">let</span> VID_BORDER_HORIZONTAL_RIGHT+=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${VID_BORDER_HORIZONTAL}</span> + <span class="nu0">1</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">let</span> VID_BORDER_HORIZONTAL_LEFT+=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${VID_BORDER_HORIZONTAL}</span> &#8211; <span class="nu0">1</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_HORIZONTAL_RIGHT</span>=<span class="co1">${VID_BORDER_HORIZONTAL}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_HORIZONTAL_LEFT</span>=<span class="co1">${VID_BORDER_HORIZONTAL}</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_HORIZONTAL_LEFT</span>=<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_BORDER_HORIZONTAL_RIGHT</span>=<span class="nu0">0</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-z</span> <span class="co1">${VID_INFO_ASPECT}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span> <span class="sy0">||</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="co1">${VID_INFO_ASPECT}</span> == <span class="st0">&quot;0.0000&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_ASPECT</span>=<span class="st0">&quot;16:9&quot;</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-z</span> <span class="co1">${AUD_INFO_CHANNELS}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">AUD_INFO_CHANNELS</span>=<span class="nu0">2</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span></p>
<p>
&nbsp; &nbsp; <span class="co0">##############</span><br />
&nbsp; &nbsp; <span class="co0"># If we&#8217;re not converting for the blackberry, perform a normal conversion </span><br />
&nbsp; &nbsp; <span class="co0">##############</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-z</span> <span class="co1">${BLACKBERRY}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_RESOLUTION</span>=<span class="st0">&quot;<span class="es3">${VID_INFO_WIDTH}</span>x<span class="es3">${VID_INFO_HEIGHT}</span>&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; convert_file_first_pass </p>
<p>&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="sy0">!</span> <span class="re5">-z</span> <span class="co1">${FIRST_PASS_BITRATE}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">BITRATE</span>=<span class="co1">${FIRST_PASS_BITRATE}</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; <span class="co0">############</span><br />
&nbsp; &nbsp; &nbsp; <span class="co0"># if we have a blackberry, set the resolution appropriately</span><br />
&nbsp; &nbsp; &nbsp; <span class="co0">############</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="co1">${BB_TYPE}</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; STORM<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_RESOLUTION</span>=<span class="st0">&quot;480&#215;360&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">*</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">VID_INFO_RESOLUTION</span>=<span class="st0">&quot;240&#215;180&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">esac</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; &nbsp; convert_file_second_pass <br />
&nbsp; <span class="kw1">fi</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> process_directory <span class="br0">&#123;</span><br />
&nbsp;<span class="re2">ORIG_VIDEO_DIR</span>=<span class="st0">&quot;$1&quot;</span><br />
&nbsp;<span class="re2">DEST_VIDEO_DIR</span>=<span class="st0">&quot;$2&quot;</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-d</span> <span class="st0">&quot;<span class="es3">${ORIG_VIDEO_DIR}</span>&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-d</span> <span class="st0">&quot;<span class="es3">${DEST_VIDEO_DIR}</span>&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="re2">IFS</span>=$<span class="st_h">&#8216;\n&#8217;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">for</span> ORIG_VIDEO_FILE <span class="kw1">in</span> $<span class="br0">&#40;</span> <span class="kw2">find</span> <span class="st0">&quot;<span class="es3">${ORIG_VIDEO_DIR}</span>&quot;</span> <span class="re5">-depth</span> <span class="re5">-maxdepth</span> <span class="nu0">1</span> <span class="re5">-type</span> f <span class="re5">-readable</span> <span class="re5">-iregex</span> <span class="st_h">&#8216;.*\.\(3gp\|3g2\|avi\|divx\|flv\|m4v\|mj2\|mov\|mp1\|mp2\|mp4\|mpe\|mpeg\|mpeg4\|mpg\|mkv\|mv\|ogm\|rm\|rmvb\|rv\|qt\|wmv\)&#8217;</span> <span class="br0">&#41;</span>; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; process_file <span class="st0">&quot;<span class="es3">${ORIG_VIDEO_FILE}</span>&quot;</span> <span class="st0">&quot;<span class="es3">${DEST_VIDEO_DIR}</span>&quot;</span><br />
&nbsp; &nbsp; <span class="kw1">done</span><br />
&nbsp; <span class="kw1">fi</span> <br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> convert_file_first_pass <span class="br0">&#123;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&quot;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot; &nbsp; First pass: <span class="es3">${ORIG_FILE}</span>&quot;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;ffmpeg -i <span class="es1">\&quot;</span><span class="es3">${ORIG_FILE}</span><span class="es1">\&quot;</span> -an -pass 1 <span class="es1">\<br />
</span> &nbsp; &nbsp;-vcodec libx264 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 <span class="es1">\<br />
</span> &nbsp; &nbsp;-me_method epzs -subq 1 -trellis 0 -refs 1 -bf 3 -b_strategy 1 -level 31 -coder 1 -me_range 16 -g 250 -keyint_min 25 <span class="es1">\<br />
</span> &nbsp; &nbsp;-sc_threshold 40 -i_qfactor 0.71 -bt 200kb -rc_eq &#8216;blurCplx^(1-qComp)&#8217; -qcomp 0.6 -qmin 1 -qmax 51 -qdiff 4 <span class="es1">\<br />
</span> &nbsp; &nbsp;-padtop <span class="es3">${VID_BORDER_VERTICAL_TOP}</span> -padbottom <span class="es3">${VID_BORDER_VERTICAL_BOTTOM}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp;-padleft <span class="es3">${VID_BORDER_HORIZONTAL_LEFT}</span> -padright <span class="es3">${VID_BORDER_HORIZONTAL_RIGHT}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp;-threads 2 <span class="es1">\<br />
</span> &nbsp; &nbsp;-s <span class="es3">${VID_INFO_RESOLUTION}</span> -aspect <span class="es3">${VID_INFO_ASPECT}</span> -f rawvideo -y /dev/null&quot;</span> </p>
<p>&nbsp; <span class="kw2">ffmpeg</span> <span class="re5">-i</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="re5">-an</span> <span class="re5">-pass</span> <span class="nu0">1</span> \<br />
&nbsp; &nbsp; <span class="re5">-vcodec</span> libx264 <span class="re5">-flags</span> +loop <span class="re5">-cmp</span> +chroma <span class="re5">-partitions</span> +parti4x4+partp8x8+partb8x8 \<br />
&nbsp; &nbsp; -me_method epzs <span class="re5">-subq</span> <span class="nu0">1</span> <span class="re5">-trellis</span> <span class="nu0">0</span> <span class="re5">-refs</span> <span class="nu0">1</span> <span class="re5">-bf</span> <span class="nu0">3</span> -b_strategy <span class="nu0">1</span> <span class="re5">-level</span> <span class="nu0">31</span> <span class="re5">-coder</span> <span class="nu0">1</span> -me_range <span class="nu0">16</span> <span class="re5">-g</span> <span class="nu0">250</span> -keyint_min <span class="nu0">250</span> \<br />
&nbsp; &nbsp; -sc_threshold <span class="nu0">40</span> -i_qfactor <span class="nu0">0.71</span> <span class="re5">-bt</span> 200kb -rc_eq <span class="st_h">&#8216;blurCplx^(1-qComp)&#8217;</span> <span class="re5">-qcomp</span> <span class="nu0">0.6</span> <span class="re5">-qmin</span> <span class="nu0">1</span> <span class="re5">-qmax</span> <span class="nu0">51</span> <span class="re5">-qdiff</span> <span class="nu0">4</span> \<br />
&nbsp; &nbsp; <span class="re5">-padtop</span> <span class="co1">${VID_BORDER_VERTICAL_TOP}</span> <span class="re5">-padbottom</span> <span class="co1">${VID_BORDER_VERTICAL_BOTTOM}</span> \<br />
&nbsp; &nbsp; <span class="re5">-padleft</span> <span class="co1">${VID_BORDER_HORIZONTAL_LEFT}</span> <span class="re5">-padright</span> <span class="co1">${VID_BORDER_HORIZONTAL_RIGHT}</span> \<br />
&nbsp; &nbsp; <span class="re5">-threads</span> <span class="nu0">2</span> \<br />
&nbsp; &nbsp; <span class="re5">-s</span> <span class="co1">${VID_INFO_RESOLUTION}</span> <span class="re5">-aspect</span> <span class="co1">${VID_INFO_ASPECT}</span> <span class="re5">-f</span> rawvideo <span class="re5">-y</span> <span class="sy0">/</span>dev<span class="sy0">/</span>null <span class="nu0">2</span><span class="sy0">&gt;&amp;</span><span class="nu0">1</span> <span class="sy0">|</span> <span class="kw2">tee</span> pass2.out</p>
<p>&nbsp; <span class="re2">BITRATE</span>=$<span class="br0">&#40;</span> <span class="kw2">grep</span> <span class="re5">-e</span> <span class="st0">&quot;\[libx264.*kb\/s&quot;</span> pass2.out <span class="br0">&#41;</span><br />
&nbsp; <span class="re2">BITRATE</span>=<span class="co1">${BITRATE##*:}</span><br />
&nbsp; <span class="re2">BITRATE</span>=<span class="co1">${BITRATE/.*}</span></p>
<p>&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;average first pass bitrate: <span class="es3">${BITRATE}</span>&quot;</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-n</span> <span class="co1">${BITRATE}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${BITRATE}</span> <span class="sy0">%</span> <span class="nu0">16</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw3">let</span> BITRATE+=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${BITRATE}</span> <span class="sy0">%</span> <span class="nu0">16</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">&gt;</span> <span class="nu0">1024</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="re2">BITRATE</span>=<span class="nu0">15360</span><br />
&nbsp; &nbsp; <span class="kw1">elif</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">&gt;</span> <span class="nu0">900</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="re2">BITRATE</span>=<span class="nu0">10240</span> <br />
&nbsp; &nbsp; <span class="kw1">elif</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">&gt;</span> <span class="nu0">719</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="re2">BITRATE</span>=<span class="nu0">8192</span><br />
&nbsp; &nbsp; <span class="kw1">elif</span> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="co1">${VID_INFO_WIDTH}</span> <span class="sy0">&gt;</span> <span class="nu0">620</span> <span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="re2">BITRATE</span>=<span class="nu0">2560</span><br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="re2">BITRATE</span>=<span class="nu0">512</span><br />
&nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; <span class="re2">MAX_BITRATE</span>=$<span class="br0">&#40;</span> <span class="kw2">expr</span> <span class="co1">${BITRATE}</span> + <span class="nu0">512</span> <span class="br0">&#41;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> convert_file_second_pass <span class="br0">&#123;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&quot;</span><br />
&nbsp; <span class="kw3">echo</span> <span class="st0">&quot; &nbsp; Second pass: <span class="es3">${ORIG_FILE}</span>&quot;</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-n</span> <span class="co1">${BLACKBERRY}</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;ffmpeg -i <span class="es1">\&quot;</span><span class="es3">${ORIG_FILE}</span><span class="es1">\&quot;</span> -vcodec mpeg4 -vtag XVID -s <span class="es3">${VID_INFO_RESOLUTION}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-qscale 10 -ab 48k -ar 22050 -ac 2 -acodec libmp3lame -deinterlace <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-b 512kb -qmin 1 -qmax 51 <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-padtop <span class="es3">${VID_BORDER_VERTICAL_TOP}</span> -padbottom <span class="es3">${VID_BORDER_VERTICAL_BOTTOM}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-padleft <span class="es3">${VID_BORDER_HORIZONTAL_LEFT}</span> -padright <span class="es3">${VID_BORDER_HORIZONTAL_RIGHT}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-aspect <span class="es3">${VID_INFO_ASPECT}</span> <span class="es1">\&quot;</span><span class="es3">${DEST_FILE}</span><span class="es1">\&quot;</span>&quot;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">ffmpeg</span> <span class="re5">-i</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="re5">-vcodec</span> mpeg4 <span class="re5">-vtag</span> XVID <span class="re5">-s</span> <span class="co1">${VID_INFO_RESOLUTION}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-ab</span> 48k <span class="re5">-ar</span> <span class="nu0">22050</span> <span class="re5">-ac</span> <span class="nu0">2</span> <span class="re5">-acodec</span> libmp3lame <span class="re5">-deinterlace</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-b</span> 512kb <span class="re5">-qmin</span> <span class="nu0">1</span> <span class="re5">-qmax</span> <span class="nu0">51</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-padtop</span> <span class="co1">${VID_BORDER_VERTICAL_TOP}</span> <span class="re5">-padbottom</span> <span class="co1">${VID_BORDER_VERTICAL_BOTTOM}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-padleft</span> <span class="co1">${VID_BORDER_HORIZONTAL_LEFT}</span> <span class="re5">-padright</span> <span class="co1">${VID_BORDER_HORIZONTAL_RIGHT}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-aspect</span> <span class="co1">${VID_INFO_ASPECT}</span> <span class="st0">&quot;<span class="es3">${DEST_FILE}</span>&quot;</span><br />
&nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;ffmpeg -i <span class="es1">\&quot;</span><span class="es3">${ORIG_FILE}</span><span class="es1">\&quot;</span> -acodec libfaac -ar 44100 -ac <span class="es3">${AUD_INFO_CHANNELS}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-async 1 -f mp4 -pass 2 -vcodec libx264 -vtag XVID -flags +loop+ilme -cmp +chroma <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me_method umh -subq 5 <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-trellis 1 -refs 5 -bf 3 -b_strategy 1 -level 31 -coder 1 -me_range 16 <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-g 250 -keyint_min 250 -sc_threshold 40 -i_qfactor 0.71 -bt 200kb <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-rc_eq &#8216;blurCplx^(1-qComp)&#8217; -qcomp 0.6 -qmin 3 -qmax 15 -qdiff 4 <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-s <span class="es3">${VID_INFO_RESOLUTION}</span> -aspect <span class="es3">${VID_INFO_ASPECT}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-padtop <span class="es3">${VID_BORDER_VERTICAL_TOP}</span> -padbottom <span class="es3">${VID_BORDER_VERTICAL_BOTTOM}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-padleft <span class="es3">${VID_BORDER_HORIZONTAL_LEFT}</span> -padright <span class="es3">${VID_BORDER_HORIZONTAL_RIGHT}</span> <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-b <span class="es3">${BITRATE}</span>kb -maxrate <span class="es3">${MAX_BITRATE}</span>kb <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-bufsize <span class="es3">${MAX_BITRATE}</span>kb -ab <span class="es3">${AUD_INFO_BITRATE}</span>kb <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-threads 2 <span class="es1">\<br />
</span> &nbsp; &nbsp; &nbsp;-r <span class="es3">${VID_INFO_FPS}</span> <span class="es1">\&quot;</span><span class="es3">${DEST_FILE}</span><span class="es1">\&quot;</span>&quot;</span></p>
<p>&nbsp; &nbsp; <span class="kw2">ffmpeg</span> <span class="re5">-i</span> <span class="st0">&quot;<span class="es3">${ORIG_FILE}</span>&quot;</span> <span class="re5">-acodec</span> libfaac <span class="re5">-ar</span> <span class="nu0">44100</span> <span class="re5">-ac</span> <span class="co1">${AUD_INFO_CHANNELS}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-async</span> <span class="nu0">1</span> <span class="re5">-f</span> mp4 <span class="re5">-pass</span> <span class="nu0">2</span> <span class="re5">-vcodec</span> libx264 <span class="re5">-vtag</span> XVID <span class="re5">-flags</span> +loop+ilme <span class="re5">-cmp</span> +chroma \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-partitions</span> +parti4x4+partp8x8+partb8x8 <span class="re5">-flags2</span> +mixed_refs -me_method umh <span class="re5">-subq</span> <span class="nu0">5</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-trellis</span> <span class="nu0">1</span> <span class="re5">-refs</span> <span class="nu0">5</span> <span class="re5">-bf</span> <span class="nu0">3</span> -b_strategy <span class="nu0">1</span> <span class="re5">-level</span> <span class="nu0">31</span> <span class="re5">-coder</span> <span class="nu0">1</span> -me_range <span class="nu0">16</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-g</span> <span class="nu0">250</span> -keyint_min <span class="nu0">250</span> -sc_threshold <span class="nu0">40</span> -i_qfactor <span class="nu0">0.71</span> <span class="re5">-bt</span> 200kb \<br />
&nbsp; &nbsp; &nbsp; -rc_eq <span class="st_h">&#8216;blurCplx^(1-qComp)&#8217;</span> <span class="re5">-qcomp</span> <span class="nu0">0.6</span> <span class="re5">-qmin</span> <span class="nu0">1</span> <span class="re5">-qmax</span> <span class="nu0">51</span> <span class="re5">-qdiff</span> <span class="nu0">4</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-s</span> <span class="co1">${VID_INFO_RESOLUTION}</span> <span class="re5">-aspect</span> <span class="co1">${VID_INFO_ASPECT}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-padtop</span> <span class="co1">${VID_BORDER_VERTICAL_TOP}</span> <span class="re5">-padbottom</span> <span class="co1">${VID_BORDER_VERTICAL_BOTTOM}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-padleft</span> <span class="co1">${VID_BORDER_HORIZONTAL_LEFT}</span> <span class="re5">-padright</span> <span class="co1">${VID_BORDER_HORIZONTAL_RIGHT}</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-b</span> <span class="co1">${BITRATE}</span>kb <span class="re5">-maxrate</span> <span class="co1">${MAX_BITRATE}</span>kb \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-bufsize</span> <span class="co1">${MAX_BITRATE}</span>kb <span class="re5">-ab</span> <span class="co1">${AUD_INFO_BITRATE}</span>kb \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-threads</span> <span class="nu0">2</span> \<br />
&nbsp; &nbsp; &nbsp; <span class="re5">-r</span> <span class="co1">${VID_INFO_FPS}</span> <span class="st0">&quot;<span class="es3">${DEST_FILE}</span>&quot;</span><br />
&nbsp; <span class="kw1">fi</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-n</span> <span class="st0">&quot;$1&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-n</span> <span class="st0">&quot;$2&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-n</span> <span class="st0">&quot;$3&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;$3&quot;</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; bb<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">BLACKBERRY</span>=<span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">BB_TYPE</span>=<span class="st0">&quot;norm&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; bb_storm<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">BLACKBERRY</span>=<span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">BB_TYPE</span>=<span class="st0">&quot;STORM&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; ps3<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; &nbsp; <span class="sy0">*</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; <span class="kw1">esac</span><br />
&nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-n</span> <span class="st0">&quot;$4&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; <span class="re2">FILE_PREFIX</span>=<span class="st0">&quot;<span class="es3">${4}</span>_&quot;</span><br />
&nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="re2">FILE_PREFIX</span>=<span class="st0">&quot;&quot;</span><br />
&nbsp; <span class="kw1">fi</span></p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-f</span> <span class="st0">&quot;$1&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; process_file <span class="st0">&quot;$1&quot;</span> <span class="st0">&quot;$2&quot;</span><br />
&nbsp; <span class="kw1">elif</span> <span class="br0">&#91;</span><span class="br0">&#91;</span> <span class="re5">-d</span> <span class="st0">&quot;$1&quot;</span> <span class="br0">&#93;</span><span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; process_directory <span class="st0">&quot;$1&quot;</span> <span class="st0">&quot;$2&quot;</span><br />
&nbsp; <span class="kw1">fi</span><br />
<span class="kw1">else</span><br />
&nbsp; print_usage<br />
&nbsp; <span class="kw3">exit</span><br />
<span class="kw1">fi</span><br />
&nbsp;</div>
<p>The ffmpeg parameters are based off of <a href="http://ps3wiki.qj.net/index.php/Using_ffmpeg_to_transcode_video_for_the_PS3">Using ffmpeg to transcode video for the PS3</a>.  Hope his works for you too.</p>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2009/09/23/howto-convert-an-entire-directory-of-videos-to-play-on-your-sony-playstation-3-using-ffmpeg/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Getting &#8220;Xlib: PuTTY X11 proxy: wrong authentication protocol attempted&#8221;?  I have the answer :)</title>
		<link>http://froebe.net/blog/2008/11/14/getting-xlib-putty-x11-proxy-wrong-authentication-protocol-attempted-i-have-the-answer/</link>
		<comments>http://froebe.net/blog/2008/11/14/getting-xlib-putty-x11-proxy-wrong-authentication-protocol-attempted-i-have-the-answer/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 02:00:57 +0000</pubDate>
		<dc:creator>Jason L Froebe</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[MIT-MAGIC-COOKIE]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[su]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[x windows]]></category>
		<category><![CDATA[x11]]></category>
		<category><![CDATA[xauth]]></category>
		<category><![CDATA[xlib]]></category>
		<category><![CDATA[xterm]]></category>

		<guid isPermaLink="false">http://froebe.net/blog/?p=755</guid>
		<description><![CDATA[Here&#8217;s the scenario: You ssh to a remote server with your login and either sudo or su to another user to run some application that uses a X Windows front end.  There is a firewall between your desktop and the remote server that allows only ssh connections (port 22).  When you run into the error [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the scenario:</p>
<p>You ssh to a remote server with your login and either sudo or su to another user to run some application that uses a X Windows front end.  There is a firewall between your desktop and the remote server that allows only ssh connections (port 22).  When you run into the error &#8220;Xlib: PuTTY X11 proxy: wrong authentication protocol attempted&#8221;.  What to do?</p>
<div class="bash dean_ch"><span class="kw2">ssh</span> jason<span class="sy0">@</span>remote-server <span class="re5">-X</span><br />
jason $ <span class="kw3">echo</span> <span class="re1">$DISPLAY</span><br />
localhost:<span class="nu0">10.0</span><br />
jason $ <span class="kw2">su</span> &#8211; oracle<br />
oracle<span class="st_h">&#8216;s Password:<br />
oracle $ xterm<br />
Xlib: connection to &quot;localhost:10.0&quot; refused by server<br />
Xlib: PuTTY X11 proxy: wrong authentication protocol attempted<br />
xterm Xt error: Can&#8217;</span>t open display: localhost:<span class="nu0">10.0</span></div>
<p>On recent OpenSSH Server releases, you can simply enable &#8220;ForwardX11Trusted yes&#8221; in the /etc/ssh/sshd_config file and restart the OpenSSH server.  If you&#8217;re not using a recent OpenSSH Server release or if you can&#8217;t for security or political reasons, what could you do?  Give up?  It&#8217;s simpler than you think.<br />
You need to temporarily transfer the authorization to the other account.  First, get the key from <strong>your</strong> account:</p>
<div class="bash dean_ch">jason $ xauth list<br />
aspc2o1<span class="sy0">/</span>unix:<span class="nu0">10</span> MIT-MAGIC-COOKIE-<span class="nu0">1</span> bc334c66cfec3c5c3d5b0efc4ee9d3ad</div>
<p>Next, sudo/su to the other account and add the authorization key.</p>
<div class="bash dean_ch">jason $ <span class="kw2">su</span> &#8211; oracle<br />
oracle $ xauth add aspc2o1<span class="sy0">/</span>unix:<span class="nu0">10</span> MIT-MAGIC-COOKIE-<span class="nu0">1</span> bc334c66cfec3c5c3d5b0efc4ee9d3ad</div>
<p>Now, you should be able to start any X Windows application, assuming that your DISPLAY variable is set to go through the ssh tunnel:</p>
<div class="bash dean_ch">oracle $ xterm</div>
]]></content:encoded>
			<wfw:commentRss>http://froebe.net/blog/2008/11/14/getting-xlib-putty-x11-proxy-wrong-authentication-protocol-attempted-i-have-the-answer/feed/</wfw:commentRss>
		<slash:comments>80</slash:comments>
		</item>
	</channel>
</rss>

