<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>
<channel>
	<title>G-Loaded Journal &#187; Multimedia</title>
	<atom:link href="http://www.g-loaded.eu/tag/multimedia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.g-loaded.eu</link>
	<description>An open-source software and technology related journal</description>
	<lastBuildDate>Mon, 05 Dec 2011 19:55:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<item>
		<title>Using Blender for Basic Video Editing in Linux</title>
		<link>http://www.g-loaded.eu/2009/04/12/using-blender-for-basic-video-editing-in-linux/</link>
		<comments>http://www.g-loaded.eu/2009/04/12/using-blender-for-basic-video-editing-in-linux/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 19:26:01 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Screencast]]></category>
		<category><![CDATA[Video]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=1070</guid>
		<description><![CDATA[I know it is at least criminally insane to use a whole 3D animation suite just for basic video editing, but, if everything else fails miserably, here are some notes and a screencast explaining the basics of using Blender for video editing. Well, not exactly what a n00b and hobbyist like me had in mind, [...]]]></description>
			<content:encoded><![CDATA[<p>I know it is at least criminally insane to use a whole 3D animation suite just for basic video editing, but, if everything else fails miserably, here are some <a href="http://blog.rfquerin.org/2009/02/14/really-basic-blender-video-editing-part-2/">notes</a> and a <a href="http://screencasters.heathenx.org/_misc/bve/bve_01.html">screencast</a> explaining the basics of using <a href="http://www.blender.org/">Blender</a> for video editing. Well, not exactly what a n00b and hobbyist like me had in mind, but, hey&#8230; I gave it a quick shot and it seems to work. Any other resources on this topic are extremely welcome!<br />
<span id="more-1070"></span><br />
<strong>Update</strong><br />
Found some resources:</p>
<ul>
<li><a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Sequencer_Getting_Started">Blender Sequencer &#8211; Getting Started</a></li>
<li><a href="http://wiki.blender.org/index.php/Doc:Manual/Sequencer/Usage">Learning the Sequence Editor</a> and also the <a href="http://wiki.blender.org/index.php/Doc:Tutorials/Sequencer/Learning_the_sequencer_(old)">old tutorial</a></li>
<li><a href="http://eugenia.gnomefiles.org/2008/04/20/video-editing-with-blender/">Another tutorial based upon the above guides</a></li>
</ul>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2009/04/12/using-blender-for-basic-video-editing-in-linux/">Using Blender for Basic Video Editing in Linux</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/04/12/creating-screencasts-under-linux/" rel="bookmark">Creating Screencasts under Linux</a></li>
<li><a href="http://www.g-loaded.eu/2008/05/03/how-to-annotate-pdf-files-in-linux-using-xournal/" rel="bookmark">How to annotate PDF files in Linux using Xournal</a></li>
<li><a href="http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/" rel="bookmark">How to author DVD with menus under Linux</a></li>
<li><a href="http://www.g-loaded.eu/2007/12/16/security-guides-for-operating-systems-by-the-nsa/" rel="bookmark">Security Guides for Operating Systems by the NSA</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/15/awesome-tutorials/" rel="bookmark">Awesome tutorials</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2009/04/12/using-blender-for-basic-video-editing-in-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Creating Screencasts under Linux</title>
		<link>http://www.g-loaded.eu/2009/04/12/creating-screencasts-under-linux/</link>
		<comments>http://www.g-loaded.eu/2009/04/12/creating-screencasts-under-linux/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 16:25:14 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Video]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=1057</guid>
		<description><![CDATA[You all probably know what a screencast is. In my opinion, screencasts can greatly complement HOWTO documents and I strongly believe that they will be even more popular in the upcoming years. Although it would be more useful if this post dealt with how to create a screencast using free open-source software, I feel it [...]]]></description>
			<content:encoded><![CDATA[<p>You all probably know what a <a href="http://en.wikipedia.org/wiki/Screencast">screencast</a> is. In my opinion, screencasts can greatly complement HOWTO documents and I strongly believe that they will be even more popular in the upcoming years. Although it would be more useful if this post dealt with how to create a screencast using free open-source software, I feel it is more important to describe the situation a user has to face while trying to create a screencast using two of the most actively developed FOSS tools for this purpose, <a href="http://recordmydesktop.sourceforge.net/">recordmydesktop</a> and <a href="http://live.gnome.org/Istanbul">istanbul</a>.<br />
<span id="more-1057"></span><br />
Using <em>recordmydesktop</em> or <em>istanbul</em> to create a screencast can only result in one thing: an <strong>ogv</strong> file; that is an <strong>ogg container</strong>, which contains a <strong>theora</strong> encoded video stream and a <strong>vorbis</strong> encoded audio stream. Seems like nobody has ever cared if that video file is editable using any video editing tool! I have tried <em>kino</em>, <em>avidemux</em>, <em>cinelerra</em>, but not one of them could open the video. Re-encoding the video to a format, for example xvid, that could be recognized by any of those programs would be mandatory if you&#8217;d want to cut out or insert a scene to the screencast. The authors of recordmydesktop or istanbul should have given us the <strong>freedom to choose</strong> the format we would like the video and audio to be encoded into. Forcing us to export the video to a single format, which btw is not recognized by any of the most popular FOSS video editing tools, is completely useless. It does not make us feel more free while using free software.</p>
<p>Someone could argue that the clip is quite editable to a certain degree using <a href="https://fedoraproject.org/wiki/File:ScreenCasting_fedora-av-splice.sh">scripts</a> (found via these <a href="http://fedoraproject.org/wiki/ScreenCasting">screencasting instructions</a>) like the following:</p>
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;"># 2008-06-20</span>
<span style="color: #666666; font-style: italic;"># fedora-av-splice.sh</span>
<span style="color: #666666; font-style: italic;"># Simple shellscript to mix theora video+audio using gstreamer pipeline</span>
<span style="color: #666666; font-style: italic;"># Takes 3 arguments wavfile theoravideo output-theora-video</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">3</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: $0 wavfile theora-video output-video&quot;</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Ex: $0 english-audio.wav desktop-recording.ogg english-desktop-video.ogg&quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
   gst-launch-<span style="color: #000000;">0.10</span> \
     filesrc <span style="color: #007800;">location</span>=<span style="color: #007800;">$2</span> \<span style="color: #000000; font-weight: bold;">!</span> decodebin <span style="color: #007800;">name</span>=<span style="color: #ff0000;">&quot;video&quot;</span> \
     filesrc <span style="color: #007800;">location</span>=<span style="color: #007800;">$1</span> \<span style="color: #000000; font-weight: bold;">!</span> decodebin <span style="color: #007800;">name</span>=<span style="color: #ff0000;">&quot;audio&quot;</span> \
     audio. \<span style="color: #000000; font-weight: bold;">!</span> queue \<span style="color: #000000; font-weight: bold;">!</span> audioconvert \<span style="color: #000000; font-weight: bold;">!</span> vorbisenc \<span style="color: #000000; font-weight: bold;">!</span> queue \<span style="color: #000000; font-weight: bold;">!</span> mux. \
     video. \<span style="color: #000000; font-weight: bold;">!</span> queue \<span style="color: #000000; font-weight: bold;">!</span> ffmpegcolorspace \<span style="color: #000000; font-weight: bold;">!</span> theoraenc <span style="color: #007800;">quality</span>=<span style="color: #000000;">32</span> \<span style="color: #000000; font-weight: bold;">!</span> oggmux <span style="color: #007800;">name</span>=mux \<span style="color: #000000; font-weight: bold;">!</span> filesink <span style="color: #007800;">location</span>=<span style="color: #ff0000;">&quot;$3&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>
<p>Then again this is not the kind of &#8220;editability&#8221; I was referring to.</p>
<p>Anyway, if you have to use one of these tools, but need to make a few adjustments to the final clip, here is how to re-encode the ogv file to xvid or mpeg4 formats using <a href="http://www.mplayerhq.hu/">mencoder</a>. Note that in order to preserve as much quality as possible I use <strong>two-pass encoding</strong>.</p>
<p>Using mencoder&#8217;s <strong>xvid</strong> codec:</p>
<pre class="codesnp">
mencoder out.ogv -ovc xvid -xvidencopts bitrate=1000:pass=1 -o xvid.avi
mencoder out.ogv -ovc xvid -xvidencopts bitrate=1000:pass=2 -o xvid.avi
</pre>
<p>Using mencoder&#8217;s <strong>mpeg4</strong> codec:</p>
<pre class="codesnp">
mencoder out.ogv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:turbo:vpass=1 -o mpeg4.avi
mencoder out.ogv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:vpass=2 -o mpeg4.avi
</pre>
<p>Choose whichever you think that better preserves quality.</p>
<p>Regarding <strong>bitrate</strong>, I&#8217;ve used <em>1000kbps</em> as I think it creates good results while not exceeding the filesize of the original video.</p>
<p>In order to get some information about the ogv file, you can use <strong>ogginfo</strong>:</p>
<pre class="codesnp">
[gnot@galeon bin]$ ogginfo out.ogv
Processing file "out.ogv"...
New logical stream (#1, serial: 1bd82e14): type unknown
New logical stream (#2, serial: 16113fc8): type theora
Theora headers parsed for stream 2, information follows...
Version: 3.2.0
Vendor: Xiph.Org libTheora I 20060526 3 2 0
Width: 592
Height: 368
Total image: 592 by 368, crop offset (0, 0)
Framerate 1000/100 (10.00 fps)
Pixel aspect ratio 1:1 (1:1.000000)
Frame aspect 4:3
Colourspace unspecified
Pixel format 4:2:0
Target bitrate: 45 kbps
Nominal quality setting (0-63): 63
User comments section follows...
        recordMyDesktop=0.3.8.1
Logical stream 1 ended
Theora stream 2:
        Total data length: 7012059 bytes
        Playback length: 4m:27.799s
        Average bitrate: 209.471516 kb/s
Logical stream 2 ended
</pre>
<p>Your comments are welcome.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2009/04/12/creating-screencasts-under-linux/">Creating Screencasts under Linux</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/" rel="bookmark">TV Grabbing On A Pentium 3</a></li>
<li><a href="http://www.g-loaded.eu/2009/04/12/using-blender-for-basic-video-editing-in-linux/" rel="bookmark">Using Blender for Basic Video Editing in Linux</a></li>
<li><a href="http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/" rel="bookmark">How to author DVD with menus under Linux</a></li>
<li><a href="http://www.g-loaded.eu/2009/04/13/install-opensolaris-in-virtualbox-screencast/" rel="bookmark">Install OpenSolaris in VirtualBox &#8211; Screencast</a></li>
<li><a href="http://www.g-loaded.eu/2006/09/09/kernel-2617-and-lirc_gpio-driver/" rel="bookmark">Kernel 2.6.17 and lirc_gpio driver</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2009/04/12/creating-screencasts-under-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Watch Videos in ASCII Art</title>
		<link>http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/</link>
		<comments>http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/#comments</comments>
		<pubDate>Sat, 30 Jun 2007 22:09:08 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/</guid>
		<description><![CDATA[This is an interesting article by O&#8217;Reilly Hacks, which provides tips on how to watch a video stream in ASCII art. From the article: Good ASCII art can take time and talent to look just right, but you can skip through that effort with AAlib, a library devoted to converting any image into an ASCII [...]]]></description>
			<content:encoded><![CDATA[<p>This is an interesting article by O&#8217;Reilly Hacks, which provides tips on how to watch a video stream in <a href="http://en.wikipedia.org/wiki/ASCII_art">ASCII art</a>. From the article:</p>
<blockquote><p>
Good ASCII art can take time and talent to look just right, but you can skip through that effort with AAlib, a library devoted to converting any image into an ASCII art equivalent. Since a movie is basically a system of moving images, MPlayer has added support for AAlib as a video output option. This means that each frame in the movie is converted to an ASCII equivalent and displayed on the screen.</p></blockquote>
<p>Software that is used to accomplish the task includes <a href="http://www.mplayerhq.hu/">MPlayer</a> multimedia player built with support for the <a href="http://aa-project.sourceforge.net/aalib/">ASCII art library</a> (<code>aalib</code>) and the <a href="http://libcaca.zoy.org/">color ASCII art library</a> (<code>libcaca</code>).</p>
<p><a href="http://www.oreilly.com/pub/h/4441">Read the full article here</a></p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/">Watch Videos in ASCII Art</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2006/10/05/training-videos/" rel="bookmark">Training Videos</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/24/creative-commons-v30-licenses-launched/" rel="bookmark">Creative Commons v3.0 Licenses Launched</a></li>
<li><a href="http://www.g-loaded.eu/2006/11/30/50-monitor-display/" rel="bookmark">50-Monitor Display</a></li>
<li><a href="http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/" rel="bookmark">TV Grabbing On A Pentium 3</a></li>
<li><a href="http://www.g-loaded.eu/2007/03/15/screenshot-of-a-menu-under-gnome-round-2/" rel="bookmark">Screenshot of a menu under GNOME: ROUND 2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Open-Source Guitar Sound Effect Processor</title>
		<link>http://www.g-loaded.eu/2006/12/20/open-source-guitar-sound-effect-processor/</link>
		<comments>http://www.g-loaded.eu/2006/12/20/open-source-guitar-sound-effect-processor/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 06:19:58 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sound]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/12/20/open-source-guitar-sound-effect-processor/</guid>
		<description><![CDATA[I wish GNUitar, a guitar effects software processor existed 7-8 years ago, when one of my main interests was my good old electric guitar. If I recall correctly, I had tried some computer programs under Windows back then, which tried to simulate a hardware sound processor. Acoustically, the result was fine, but from a technical [...]]]></description>
			<content:encoded><![CDATA[<p>I wish <a href="http://sourceforge.net/projects/gnuitar">GNUitar</a>, a guitar effects software processor existed 7-8 years ago, when one of my main interests was my good old electric <a href="http://www.bcrich.com/warlock.asp">guitar</a>. If I recall correctly, I had tried some computer programs under Windows back then, which tried to simulate a hardware sound processor. Acoustically, the result was fine, but from a technical point of view, trying to actually play the guitar was a pain because of the latency of the soundcard drivers. <strong>GNUitar</strong> seems to perform better in Linux, even with low-end hardware (4-8ms latency is not a problem at all). Unfortunately, I don&#8217;t have time to test it, but I will do in the near future, as I consider this type of software very interesting. Also, the program&#8217;s documentation includes much information about the configuration and any performance issues that may rise, so do not miss it.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/12/20/open-source-guitar-sound-effect-processor/">Open-Source Guitar Sound Effect Processor</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2005/10/30/fedora-sound-recording-problems-solved/" rel="bookmark">Fedora sound recording problems&#8230; solved</a></li>
<li><a href="http://www.g-loaded.eu/2010/04/16/software-that-detects-violations-of-open-source-licenses/" rel="bookmark">Software that detects violations of open source licenses</a></li>
<li><a href="http://www.g-loaded.eu/2006/04/07/microsofts-open-source-software-lab/" rel="bookmark">Microsoft&#8217;s Open Source Software Lab</a></li>
<li><a href="http://www.g-loaded.eu/2011/03/02/rhel-kernel-source-released-with-patches-already-applied/" rel="bookmark">RHEL kernel source released with patches already applied</a></li>
<li><a href="http://www.g-loaded.eu/2006/05/17/epiphany-python-console-open-new-tab/" rel="bookmark">Epiphany Python Console &#8211; Open New Tab</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/12/20/open-source-guitar-sound-effect-processor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Training Videos</title>
		<link>http://www.g-loaded.eu/2006/10/05/training-videos/</link>
		<comments>http://www.g-loaded.eu/2006/10/05/training-videos/#comments</comments>
		<pubDate>Thu, 05 Oct 2006 19:08:35 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Remote]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/10/05/training-videos/</guid>
		<description><![CDATA[I was aware that a non-encrypted VNC session could be recorded and then reproduced, but I had never searched for utilities that could do that job. The recorded sessions can be perfectly used to show others how to accomplish a task and, generally, can serve as excellent training videos. There is a very good HOWTO [...]]]></description>
			<content:encoded><![CDATA[<p>I was aware that a non-encrypted VNC session could be recorded and then reproduced, but I had never searched for utilities that could do that job. The recorded sessions can be perfectly used to show others how to accomplish a task and, generally, can serve as excellent training videos. There is a very good HOWTO article at <em>Linux.com</em> that explains how to use the Python version of <a href="http://www.unixuser.org/~euske/vnc2swf/">vnc2swf</a> (aka <code>pyvnc2swf</code>) in order to record the VNC session to ShockWave Flash format (SWF).<br />
<a href="http://applications.linux.com/article.pl?sid=06/09/18/1349218">Read the full article at Linux.com</a></p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/10/05/training-videos/">Training Videos</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/" rel="bookmark">Watch Videos in ASCII Art</a></li>
<li><a href="http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/" rel="bookmark">How to author DVD with menus under Linux</a></li>
<li><a href="http://www.g-loaded.eu/2006/09/10/how-to-recover-lost-files/" rel="bookmark">How to recover lost files</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/24/creative-commons-v30-licenses-launched/" rel="bookmark">Creative Commons v3.0 Licenses Launched</a></li>
<li><a href="http://www.g-loaded.eu/2006/12/18/the-hole-trick/" rel="bookmark">The hole trick</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/10/05/training-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>TV Grabbing On A Pentium 3</title>
		<link>http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/</link>
		<comments>http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/#comments</comments>
		<pubDate>Tue, 02 May 2006 15:54:47 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Mencoder]]></category>
		<category><![CDATA[MPlayer]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/</guid>
		<description><![CDATA[Lately, I have been revising a script I use for video grabbing from a bt878-based TV tuner card. What such a task requires is real CPU horsepower, but my desktop PC can only offer an old Pentium III 700MHz running at 933MHz. I decided to squeeze all the performance out of this overclocked processor in [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I have been revising a script I use for video grabbing from a bt878-based TV tuner card. What such a task requires is real CPU horsepower, but my desktop PC can only offer an old Pentium III 700MHz running at 933MHz. I decided to squeeze all the performance out of this overclocked processor in order to get TV recordings of acceptable size and quality.<br />
<span id="more-199"></span></p>
<h4>The Tools</h4>
<p>I use <code>mencoder</code> (part of <a href="http://mplayerhq.hu/">MPlayer</a>) for most of my video works. MPEG4 is the format of choice to encode the video stream and MP3, through the <a href="http://lame.sourceforge.net/">LAME</a> library, is the one for the audio stream. The best bet would be to use the <a href="http://www.xvid.org/">XviD</a> codec for the video, but all my previous failed tests do not leave much room for a choice. XviD is just perfect for video file transcoding, but, when it comes to real time encoding on a Pentium 3, I can only advise against its usage. All the advanced algorithms need to be turned off, so that the encoder catches up with the video stream:</p>
<pre class="codesnp">:notrellis:nolumi_mask:vhq=0:bvhq=0:nochroma_me:nochroma_opt:nohq_ac:nogmc:noqpel</pre>
<p>By the way, the above XviD settings also mean that you will <strong>never</strong> get videos of acceptable quality.</p>
<p>Another excellent MPEG4 encoder, built into <a href="http://ffmpeg.sourceforge.net/">ffmpeg</a>, seems to be much more friendly for real-time video encoding. The fact that the core ffmpeg libraries (<code>libavcodec</code>, <code>libavformat</code>, <code>libpostproc</code>) are included into MPlayer makes this choice even better. One thing you should note though is that, usually, the MPlayer binaries, available from the various repositories, are compiled with the following option:</p>
<pre class="codesnp">--enable-runtime-cpudetection</pre>
<p>This means that <code>mplayer</code> or <code>mencoder</code> will try to detect the CPU and decide how to operate everytime the user runs them. The official MPlayer documentation does not recommend using the compilation-time option above, but its usage is natural when compiling binaries whose target audience is not people with a specific CPU. Generally, if you really care about performance, <strong>do not use it</strong>.</p>
<h4>The Script</h4>
<p>Here is the script I use for TV grabbing:</p>
<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#! /bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># License: GPL</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Shut down tvtime</span>
tvtime-command QUIT
&nbsp;
<span style="color: #666666; font-style: italic;"># File to write</span>
<span style="color: #007800;">OUTPUT</span>=~<span style="color: #000000; font-weight: bold;">/</span>multimedia<span style="color: #000000; font-weight: bold;">/</span>videos<span style="color: #000000; font-weight: bold;">/</span>tv-$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>Y<span style="color: #000000; font-weight: bold;">%</span>m<span style="color: #000000; font-weight: bold;">%</span>d<span style="color: #7a0874; font-weight: bold;">&#41;</span>_$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>H<span style="color: #000000; font-weight: bold;">%</span>M<span style="color: #000000; font-weight: bold;">%</span>S<span style="color: #7a0874; font-weight: bold;">&#41;</span>.avi
&nbsp;
<span style="color: #666666; font-style: italic;"># Set up the mixer manually, just to avoid surpises...</span>
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">set</span> Capture cap
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">set</span> Capture <span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">%</span>
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">set</span> Capture unmute
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">set</span> Line cap
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">set</span> Line <span style="color: #000000;">87</span><span style="color: #000000; font-weight: bold;">%</span>
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">set</span> Line unmute
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;">################ VIDEO CODECS #####################</span>
<span style="color: #666666; font-style: italic;"># MPEG4</span>
<span style="color: #007800;">VCODEC7</span>=<span style="color: #ff0000;">&quot;lavc -lavcopts vcodec=mpeg4:vbitrate=687:mbd=0:vme=4:vqmin=2:vqmax=31:nr=300:aspect=4/3&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################ AUDIO CODECS #####################</span>
<span style="color: #007800;">ACODEC1</span>=<span style="color: #ff0000;">&quot;mp3lame -lameopts cbr:br=64:mode=0&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################ DEVICES ##########################</span>
<span style="color: #666666; font-style: italic;">#:outfmt= i420 OR yv12</span>
<span style="color: #666666; font-style: italic;">#:width=512:height=384</span>
<span style="color: #666666; font-style: italic;">#:width=640:height=480</span>
<span style="color: #007800;">VIDEO1</span>=<span style="color: #ff0000;">&quot;device=/dev/video0:input=0:norm=pal:fps=25:width=640:height=480:outfmt=i420&quot;</span>
<span style="color: #007800;">AUDIO1</span>=<span style="color: #ff0000;">&quot;alsa:adevice=hw.0,0:forceaudio&quot;</span>
<span style="color: #007800;">AUDIO2</span>=<span style="color: #ff0000;">&quot;noaudio&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################ VIDEO FILTERS ####################</span>
<span style="color: #007800;">VFILTER1</span>=<span style="color: #ff0000;">&quot;pp=lb/ha/va/dr/al&quot;</span>
<span style="color: #007800;">VFILTER2</span>=<span style="color: #ff0000;">&quot;pp=lb/al&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################ ACTION ###########################</span>
xterm <span style="color: #660033;">-e</span> \
mencoder tv:<span style="color: #000000; font-weight: bold;">//</span> \
<span style="color: #660033;">-tv</span> <span style="color: #007800;">driver</span>=v4l2:<span style="color: #007800;">$VIDEO1</span>:<span style="color: #007800;">$AUDIO1</span>:<span style="color: #007800;">buffersize</span>=<span style="color: #000000;">64</span> \
<span style="color: #660033;">-vf</span> <span style="color: #007800;">$VFILTER1</span> \
<span style="color: #660033;">-of</span> avi \
<span style="color: #660033;">-endpos</span> <span style="color: #007800;">$1</span> \
<span style="color: #660033;">-ofps</span> <span style="color: #000000;">25</span> \
<span style="color: #660033;">-aspect</span> <span style="color: #000000;">4</span>:<span style="color: #000000;">3</span> \
<span style="color: #660033;">-oac</span> <span style="color: #007800;">$ACODEC1</span> \
<span style="color: #660033;">-ovc</span> <span style="color: #007800;">$VCODEC7</span> \
<span style="color: #660033;">-o</span> <span style="color: #007800;">$OUTPUT</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></div></div>
<p>This script can take one argument, actually a number, which represents the duration of the recording. If no argument is passed, then it will record forever or until it is interrupted by <code>Ctrl-C</code>. I&#8217;m not going to explain the options that have been used, the mencoder documentation goes into much detail about them, but I will refer to some things that worth mentioning.</p>
<p>In the first section of the script, the filename of the output video file is set, the TV-viewing application (<code>TVtime</code>) is shut-down &#8211;it would be impossible to record otherwise&#8211; and the capture settings of the mixer are also set. Some viewers tend to mute <code>Line-In</code> when they are closed, so this generally ensures that the output video will have sound.</p>
<p>Next, the video codec settings are set (<code>VCODEC7</code>). These could certainly be further adjusted, but these offer a good balance between quality and file size. Audio (<code>ACODEC1</code>) is encoded at 64kbps, which is generally enough. In the <code>Devices</code> section, apart from the actual device settings, the TV standard (PAL), the framerate (25fps), and the resolution (640&#215;480) of the video stream, which mencoder will try to retrieve from the TV card, are set.</p>
<p>Real-time encoding at the resolution of 640&#215;480 pixels will be the CPU&#8217;s toughest job.</p>
<p>An <strong>important</strong> thing, before putting all these options together, is to define some post processing filters that will be used by default when the final video is reproduced by a video player. These filters (<code>VFILTER1</code>) include deinterlacing, horizontal and vertical deblocking, deringing and automatic level adjusting. At least, the first three should always exist, otherwise the final video quality will totally suck.</p>
<h4>The Result</h4>
<p>Well, I must admit it. This was the first time that I managed to capture real-time video using the MPEG4/MP3 format combination at the 640&#215;480 resolution. Actually, it seems that the above settings bring mencoder right at the edge before it starts dropping frames. The real-time monitor, during the capture, shows that the rate, at which frames get encoded, starts at about ~10fps and reaches 24.60-24.90fps after some seconds.</p>
<p>The most important option, which actually gives mencoder the ability to catch up during those first seconds without dropping any frames, is the <strong>buffer</strong>:</p>
<pre class="codesnp">buffersize=64</pre>
<p>A buffer size of 64MB is enough in order to support mencoder.</p>
<p>The final video is not perfect. There is a noticeable amount of blurring in the image and some blocks every now and then. But, generally, it&#8217;s acceptable. The bigger amount of camera movement and scene changes the encoded material contains, the more difficult is the CPU&#8217;s job. The quality of the signal is also a determinant factor. So far, I did not have any real problems whether I recorded a talk show or a football match.</p>
<h4>Final Words</h4>
<p>I guess this is the limit of what a Pentium III at 933MHz can do. Real-time video encoding is not anything new to me. I&#8217;ve been experimenting with it a lot on both a Windows and a Linux system. Whatever windows driver I had tried, it would not let me go over the 384&#215;288 resolution. Contrariwise, video4linux makes it possible to use the full potential of the capture card and go as far as the CPU can handle.</p>
<p>I already know that I need a complete system upgrade, but then I would have missed all the fun&#8230;</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/">TV Grabbing On A Pentium 3</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/04/12/creating-screencasts-under-linux/" rel="bookmark">Creating Screencasts under Linux</a></li>
<li><a href="http://www.g-loaded.eu/2007/07/01/watch-videos-in-ascii-art/" rel="bookmark">Watch Videos in ASCII Art</a></li>
<li><a href="http://www.g-loaded.eu/2005/10/30/fedora-sound-recording-problems-solved/" rel="bookmark">Fedora sound recording problems&#8230; solved</a></li>
<li><a href="http://www.g-loaded.eu/2006/09/09/kernel-2617-and-lirc_gpio-driver/" rel="bookmark">Kernel 2.6.17 and lirc_gpio driver</a></li>
<li><a href="http://www.g-loaded.eu/2005/09/28/a-powerful-command-sed/" rel="bookmark">A powerful command, SED</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/05/02/tv-grabbing-on-a-pentium-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Music Collection Sharing With Rhythmbox</title>
		<link>http://www.g-loaded.eu/2006/05/01/music-collection-sharing-with-rhythmbox/</link>
		<comments>http://www.g-loaded.eu/2006/05/01/music-collection-sharing-with-rhythmbox/#comments</comments>
		<pubDate>Mon, 01 May 2006 09:51:37 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Networking]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/05/01/music-collection-sharing-with-rhythmbox/</guid>
		<description><![CDATA[Actually, this title is not very descriptive, as sharing music with Rhythmbox takes only one click of the mouse. However, this article intends to provide an overview of what happens behind the scenes after this mouse button has been pressed and how Rhythmbox and Avahi work together in order to make the sharing of music such an easy task.]]></description>
			<content:encoded><![CDATA[<p>Actually, this title is not very descriptive, as sharing music across the <abbr title="Local Area Network">LAN</abbr> with Rhythmbox takes only one click of the mouse. However, this article intends to provide an overview of what happens behind the scenes after this mouse button has been pressed and how Rhythmbox and Avahi work together in order to make the sharing of music such an easy task.<br />
<span id="more-194"></span></p>
<h4>Some General Info</h4>
<p>The traditional way of sharing a collection of audio files <strong>across a local home network</strong> is by sharing the directory that contains them, so that everybody can access these files. This works well, but I guess it&#8217;s time to move on to the next level of music sharing through the Digital Audio Access Protocol (<a href="http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol">DAAP</a>).</p>
<p>A very interesting <a href="http://applications.linux.com/article.pl?sid=06/03/28/1738207">article</a>, published on Linux.com, was the motive in order to start reading about DAAP. In brief, this protocol was originally developed by Apple and is implemented in the company&#8217;s popular audio player, iTunes. What makes DAAP so important is the fact that it uses <a href="http://en.wikipedia.org/wiki/ZeroConf">ZeroConf</a>, also developed by Apple and originally called Rendezvous, to announce and discover the music shares across the LAN. All this is done automatically, usually requiring zero configuration by the user.</p>
<p>Τhe requirements for using DAAP in order to share your music are:</p>
<ol>
<li>an implementation of the protocol itself, either in the form of a daemon or have it built-in within a music management application.</li>
<li>an implementation of ZeroConf.</li>
</ol>
<p>Hopefully, as you might have already read in the linked pages above, there is just enough native linux software that satisfies both of the above requirements. This small article will deal with the <a href="http://avahi.org/">Avahi</a> daemon, a promising implementation of ZeroConf, and <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a>, built with DAAP support. These are available <abbr title="Out-Of-The-Box">OOTB</abbr> in FC5 and will most probably be included in the upcoming releases of the major Linux distributions, if not already included (this is beyond my knowledge).</p>
<h4>How To Share Across The LAN</h4>
<p>Rhythmbox, if built with DAAP support, includes a new tab in the preferences panel, called &#8220;<em>Sharing</em>&#8220;. This is where the user can enable music collection sharing, set a name for the share and even set a password in order to control access.</p>
<p>Having enabled this, when Rhythmbox is started, it uses <a href="http://www.freedesktop.org/wiki/Software/dbus">D-Bus</a> to send a message to the Avahi daemon informing it that the player implements a service based on the DAAP protocol, which gives access to the user&#8217;s music collection and can also recognize other users&#8217; music shares. Avahi, after collecting all the needed information about that service, it publishes it as a <abbr title="Multicast DNS / DNS Service Discovery">mDNS/DNS-SD</abbr> service and makes it available in the local subnet, so that all other workstations are notified about the new available service. All this is accomplished without any user intervention, which makes it very convenient even for unexperienced users.</p>
<p>Even if Rhythmbox does not share its music collection, it, if built with DAAP support, still informs Avahi through D-Bus, that it can recognize other users&#8217; music shares and, eventually, all these available shares are displayed in Rhythmbox&#8217; music sources list. Each of these shares includes the whole music database, which by the way can be searched as if it was the local music collection, plus any playlists. The outcome of all these operations is that all the available music on the local network is viewable and searchable from within Rhythmbox&#8217; user interface!</p>
<h4>More Than A Mouse Click</h4>
<p>Although enabling the sharing of the music collection in Rhythmbox should be enough, it requires one more step so that other workstations on the LAN can actually read the published music. Actually, this is only required in the case that the workstation which shares the music is protected by a firewall. The fact that this aspect is not even mentioned in the Rhythmbox documentation is, at least, surprising.</p>
<p>So, which port should be open? Hopefully, Rhythmbox&#8217; DAAP service uses the DAAP protocol&#8217;s default port:</p>
<pre class="codesnp">3689 TCP</pre>
<p>Opening this port on the workstation that shares the music is mandatory. A workstation, which is supposed to only read music shares, is not required to have port 3689 open.</p>
<p>But, what about if the service did not use the standard port? How to find information about the available services on the local machine or accross the local network? Read on&#8230;</p>
<h4>Avahi</h4>
<p>As it was previously mentioned, Avahi&#8217;s responsibilities, by default, are to publish and announce any local services to the whole subnet (Multicast Server) and also to collect information about other services that are available on the subnet and make it available to the workstation it runs on (Service Discovery). Furthermore, Avahi can publish services that run on workstations on which Avahi is not installed.</p>
<p>The Avahi distribution, among others, includes some utilities in order to assist users in finding information about the available ZeroConf services on the network. A command-line tool (<code>avahi-browse</code>) and a graphical one (<code>avahi-discover</code>) are provided.</p>
<p>You can use <code>avahi-browse</code> like in the example below:</p>
<pre class="console"># avahi-browse -a -r -t</pre>
<p>Some info about the parameters:<br />
<strong>-a</strong> : Show all services, regardless of the type.<br />
<strong>-r</strong> : Resolve the services and provide detailed information about their parameters.<br />
<strong>-t</strong> : Terminate when an apparently complete list has been printed to stdout.</p>
<p>The information, that the above command provides, includes the port number on which a service is run.</p>
<p>If you like it graphically, you can use the <code>avahi-discover-standalone</code> utility. Run it from a terminal:</p>
<pre class="console"># avahi-discover-standalone</pre>
<p>Select any of the services that are shown and the service&#8217;s information will be displayed.</p>
<h4>Final Words</h4>
<p>The implementation of the DAAP protocol that is built in Rhythmbox makes it possible to share music with Apple&#8217;s music management application, iTunes, which cannot run natively in Linux. Apart from that, a UNIX server implementation of the DAAP protocol, <a href="http://mt-daapd.org/">mt-daapd</a>, can be used to share your audio files from a central location. The importance of DAAP is that it makes the synchronization of music across a local network extremely easy.</p>
<p>This small article is also a small introduction to Avahi and to what a user can achieve with it. It seems that I just discovered multicast DNS and automatic service discovery. Well, this is not absolutely true. I just discovered some useful things a user can do with it, so I intend to spend some more time with Avahi and hopefully post some more info about its usage in future articles.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/05/01/music-collection-sharing-with-rhythmbox/">Music Collection Sharing With Rhythmbox</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/03/31/my-music/" rel="bookmark">My Music</a></li>
<li><a href="http://www.g-loaded.eu/2008/12/02/set-up-an-anonymous-ftp-server-with-vsftpd-in-less-than-a-minute/" rel="bookmark">Set up an anonymous FTP server with vsftpd in less than a minute</a></li>
<li><a href="http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/" rel="bookmark">Auto-closing SSH tunnels</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/configure-vnc-server-in-fedora/" rel="bookmark">Set up the VNC Server in Fedora</a></li>
<li><a href="http://www.g-loaded.eu/2005/10/20/ssh-tunnels-headaches/" rel="bookmark">SSH Tunnels Headaches</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/05/01/music-collection-sharing-with-rhythmbox/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>How to author DVD with menus under Linux</title>
		<link>http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/</link>
		<comments>http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/#comments</comments>
		<pubDate>Sun, 05 Feb 2006 07:05:00 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/</guid>
		<description><![CDATA[This is one of the best HOWTOs around about authoring DVDs with menus by using only Linux native software. Shiznix writes in his article: This howto is written in the attempt to help those reading to: Accomplish transferring a video media file (.avi, .mpg, .wmv, .mov, etc.) to DVD media in a format that will [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of the best HOWTOs around about authoring DVDs with menus by using only Linux native software.</p>
<p><cite>Shiznix</cite> writes in his article:</p>
<blockquote><p>This howto is written in the attempt to help those reading to:</p>
<ol>
<li>Accomplish transferring a video media file (.avi, .mpg, .wmv, .mov, etc.) to DVD media in a format that will allow it to be played on a standalone DVD player.</li>
<li>Create professional style menus with audio to allow selection of Titles, Chapters &#038; other menus.</li>
</ol>
</blockquote>
<p><a href="http://forums.gentoo.org/viewtopic.php?t=117709">Read the full article here&#8230;</a></p>
<p>Also, do not miss <a href="http://forums.gentoo.org/viewtopic-p-734529.html#734529">this post</a>, if you need animated menus.</p>
<p>Excellent work!</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/">How to author DVD with menus under Linux</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2007/07/12/issue-addressed-author-feeds-deliver-full-content/" rel="bookmark">Issue addressed: Author feeds deliver full content</a></li>
<li><a href="http://www.g-loaded.eu/2006/04/07/awesome-awk-tutorial/" rel="bookmark">Awesome AWK Tutorial</a></li>
<li><a href="http://www.g-loaded.eu/2006/10/05/training-videos/" rel="bookmark">Training Videos</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/25/error-when-using-old-runbin-installers-under-linux/" rel="bookmark">Error when using old run/bin installers under Linux</a></li>
<li><a href="http://www.g-loaded.eu/2006/12/18/the-hole-trick/" rel="bookmark">The hole trick</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/02/05/how-to-author-dvd-with-menus-under-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>How to configure and use LIRC</title>
		<link>http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc/</link>
		<comments>http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc/#comments</comments>
		<pubDate>Tue, 10 Jan 2006 13:58:34 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Compiling]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[LIRC]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Remote]]></category>
		<category><![CDATA[Servers]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc/</guid>
		<description><![CDATA[<abbr title="Linux Infrared Remote Control">LIRC</abbr> is basically a small server which can decode or transmit infra-red signals. This is a tutorial about how to set up the LIRC server and how to use it in order to control your system or specific LIRC-enabled applications with a remote control. Examples of simple or more complicated setups are also provided.]]></description>
			<content:encoded><![CDATA[<p><abbr title="Linux Infrared Remote Control">LIRC</abbr> is basically a small server which can decode or transmit infra-red signals. This is a tutorial about how to set up the LIRC server and how to use it in order to control your system or specific LIRC-enabled applications with a remote control. Examples of simple or more complicated setups are also provided.<br />
<span id="more-156"></span></p>
<h4>Prerequisites</h4>
<p>In order to use LIRC you will need the necessary hardware components, a remote control and an infrared receiver. LIRC supports a lengthy list of such devices. You can check if your equipment is supported at <a href="http://lirc.sourceforge.net/remotes/" title="Remote Controls supported by LIRC">this page</a>.</p>
<p>Next thing is to download the latest stable LIRC package from the <a href="http://www.lirc.org/" title="LIRC homepage">project page</a> and configure it properly for your equipment. For this article I&#8217;ll use the traditional way of compiling and installing software, so some such experience is required from your part. Of course, if you are into package building, you can build your own RPM or DEB package.</p>
<h4>Configure, Compile, Install</h4>
<p>Extract the LIRC package in a temporary directory (<code>~/tmp/</code>):</p>
<pre class="console"># tar -xzvf lirc-X.X.X.tar.gz -C ~/tmp/</pre>
<p>The most important part of the LIRC pre-compilation configuration is the choice of the appropriate driver for your hardware. For more info check the <a href="http://www.lirc.org/html/index.html">LIRC Documentation</a>. Normally, if you <em>know your hardware</em>, change to the directory where you have extracted the LIRC package and issue the following command in order to check which driver name you should use:</p>
<pre class="console"># ./configure --help</pre>
<p>Next, configure the package for your system. Because some kernel modules are built together with LIRC, you will need to have the <em>kernel development</em> package (eg <code>kernel-devel</code>) for your running kernel installed. To configure LIRC issue the command:</p>
<pre class="console"># ./configure &#92;
--prefix=/usr &#92;
--with-x &#92;
--with-transmitter &#92;
--enable-sandboxed &#92;
--with-moduledir=/lib/modules/$(uname -r)/extra/lirc &#92;
--with-kerneldir=/path/to/kernel/headers &#92;
--with-driver=DRIVER
</pre>
<p>Substitute <code>DRIVER</code> with the appropriate driver name and edit the path to your kernel headers/sources in the <code>--with-kerneldir</code> option. Note that the <code>--with-kerneldir</code> option can be safely omitted.<br />
We use the <code>--enable-sandboxed</code> option, so that the installation script does not try to create any device nodes for LIRC. An UDEV rule, that we will create later on, will take care of this.</p>
<p>If the configuration script fails due to missing dependencies, make sure you have all the necessary development tools, libraries and kernel headers installed in your system. Just read carefully the on-screen error messages to see what is missing.</p>
<p>After this configuration is finished, you will see a message in your terminal about which LIRC module will be used. <strong>Take a note</strong> of the module name, as you will need it later on.</p>
<p><em>NOTE</em>: On Fedora, I was not able to build the required <code>lirc_gpio</code> module. My IR receiver is attached on my KWorld TV tuner card, so this module was absolutely needed. In such a case you will probably want to read my post about the <a href="http://www.g-loaded.eu/2005/12/14/the-complete-fedora-kernel-headers/">The Complete Fedora Kernel Headers</a>.</p>
<p>Next, proceed to the LIRC compilation:</p>
<pre class="console"># make</pre>
<p>and installation. This step is needed to be done as <strong>root</strong>:</p>
<pre class="console"># make install</pre>
<p>If for any reason you want to uninstall all LIRC files, from within our current directory, issue the command:</p>
<pre class="console"># make uninstall</pre>
<p><strong>Special Note</strong>: Before you update your system kernel at some later time, you will need to uninstall LIRC. After the kernel upgrade, you will have to repeat the previous configuration, compilation and installation steps, so that the LIRC module is built for your new kernel.</p>
<p>The final step is to create an UDEV rule, so that the LIRC devices are created properly and with appropriate permissions.</p>
<p>Create a text file, named <code>10-lirc.rules</code>, in the <code>/etc/udev/rules.d/</code> directory and add the following to it:</p>
<pre class="codesnp">KERNEL=="lirc[0-9]*", NAME=="lirc%n", GROUP=="disk", MODE=="0660"
KERNEL=="lirc0", SYMLINK=="lirc"</pre>
<p>Finally, make sure you add the users you want to have access to the LIRC server to the group <code>disk</code>. Alternatively, if you want all the users to be able to access LIRC, then modify the <code>MODE</code> in the UDEV rule above from <code>MODE==&quot;0660&quot;</code> to <code>MODE==&quot;0666&quot;</code>.</p>
<p>That&#8217;s it.</p>
<h4>The LIRC Server Configuration</h4>
<p>It seems that the LIRC daemon (<code>lircd</code>) does not load the default module (driver) automatically when it starts, so this module should be loaded manually.</p>
<p>To load the appropriate module and the LIRC server at boot time, all you have to do is to add the following lines to the <code>/etc/rc.d/rc.local</code> file. As <strong>root</strong>:</p>
<pre class="codesnp">modprobe MODULE_NAME
lircd</pre>
<p>Substitute <code>MODULE_NAME</code> with the module name you had taken a note of when configuring LIRC. For me, it would be <code>lirc_gpio</code>. The LIRC daemon, by default, uses the driver that was defined during the LIRC pre-compilation configuration.</p>
<p>The LIRC daemon also needs a configuration file (<code>/etc/lircd.conf</code>), which contains the proper addresses of your remote control&#8217;s buttons. The LIRC package contains some ready made remote configs, but I suggest you create your own. Read on&#8230;</p>
<h4>The Remote Control Configuration file</h4>
<p>In this section we will create a configuration file for our remote control by using an utility named <code>irrecord</code>, which was built together with the rest of the LIRC components. Since irrecord is a <code>lircd client</code>, the LIRC daemon needs to be running prior to using this tool.</p>
<p>So, as <strong>root</strong>, load the appropriate LIRC module and start the daemon:</p>
<pre class="console"># modprobe MODULE_NAME
# lircd</pre>
<p>Now, change to a temporary directory and start irrecord:</p>
<pre class="console"># irrecord REMOTE_NAME</pre>
<p><code>REMOTE_NAME</code> is the remote control config file that will be created in the current directory. This will also be the name of your remote control that will be used within the created file. If you need to change it, do it by hand after this operation is finished. All you have to do is to follow the on-screen instructions. Generally, you will be asked to give names for the remote control buttons and to press each one of them.</p>
<p>After you are finished, copy the <code>REMOTE_NAME</code> file into <code>/etc/</code>, naming it <code>lircd.conf</code>. As <strong>root</strong>:</p>
<pre class="console"># cp REMOTE_NAME /etc/lircd.conf</pre>
<p>Kill the running lircd instance and start the daemon again, so that it uses the new configuration:</p>
<pre class="console"># killall lircd
# lircd</pre>
<h4>Applications and LIRC Support</h4>
<p>There are three kinds of applications:</p>
<ol>
<li>Those which could and actually have been built with LIRC support. These act as LIRC clients when there is a running LIRC daemon.</li>
<li>Those which do support LIRC, but have not been compiled with the LIRC support enabled.</li>
<li>Those which do not support LIRC at all.</li>
</ol>
<p>Generally, most multimedia applications, video and audio players, TV viewers and FM tuner applications, support LIRC. Also, many applications provide a method (separate utility or options) to send commands to a running instance of the application. This is particularly useful for programs that belong to the 2nd and 3rd categories. LIRC provides an utility, called <code>irexec</code> (LIRC client), which can be used to execute any command we want. This way, those applications can be controlled with the remote control through LIRC.</p>
<p>In order to use our remote control with a certain application, we have to create a configuration file that contains the mappings between the remote control&#8217;s buttons and the commands that will be executed when each button is pressed.</p>
<p>This file can be:</p>
<ul>
<li>named <code>.lircrc</code> and placed in the user&#8217;s home directory.</li>
<li>named <code>lircrc</code> (without the period in front of the name) and placed in the <code>/etc/</code> directory for system-wide configuration.</li>
</ul>
<p>Information about this file&#8217;s format can be found in the relevant section of the <a href="http://www.lirc.org/html/configure.html#lircrc_format">LIRC Documentation</a>.</p>
<h4>Quick Tests</h4>
<p>Here are some sample <code>.lircrc</code> files, so that you can test your installation. Make sure you have loaded the proper LIRC module and you have started the LIRC daemon. Save one of them as <code>.lircrc</code> and place it in your home directory.</p>
<p><strong>Special Note</strong>: In the following sample config files, substitute the remote control name with the name you have used for your own remote control and the button name with a name of any of your own remote control&#8217;s buttons.</p>
<p>The first two samples will work with Xine and MPlayer respectively. These two players are usually built with LIRC support and, when launched, they act as LIRC clients.</p>
<p>Load Xine and press the specified button on your remote control. It should toggle between full-screen and window-mode.</p>
<pre class="codesnp">
# .lircrc - XINE sample test
begin
    prog = xine
    remote = KWTV878RF
    button = ZOOM
    config = ToggleFullscreen
    repeat = 0
end
</pre>
<p>Use the following config with MPlayer.</p>
<pre class="codesnp">
# .lircrc - MPLAYER sample test
begin
    prog = mplayer
    remote = KWTV878RF
    button = ZOOM
    config = vo_fullscreen
    repeat = 0
end
</pre>
<p>For applications that are not LIRC clients themselves, but which provide a method to send commands to a running instance of the application, the configuration is a bit different. The LIRC client <code>irexec</code> is used in these cases. When you press a button on the remote control, <code>irexec</code> executes the specified command. This requires that <code>irexec</code> is running. Start it as a user:</p>
<pre class="console"># irexec</pre>
<p>Save the following as <code>.lircrc</code> and launch TVtime. The specified button on the remote control should toggle between full-screen and window-mode.</p>
<pre class="codesnp">
# .lircrc - TVtime sample test
begin
    prog = irexec
    remote = KWTV878RF
    button = ZOOM
    config = tvtime-command TOGGLE_FULLSCREEN
    repeat = 0
end
</pre>
<p>To start <code>irexec</code> and have it run in the background, start it as shown below:</p>
<pre class="console"># irexec &#038;</pre>
<p>To kill it:</p>
<pre class="console"># killall irexec</pre>
<h4>Some hints for more complicated configurations</h4>
<p>Here are some hints for those of you who need complicated setups.</p>
<h5>Toggle Buttons</h5>
<p>You can create <strong>toggle buttons</strong>, for example you can set the same button to <em>Play</em> or <em>Pause</em> a video stream, by setting two <code>config = command</code> directives. They will be executed in turns. For example:</p>
<pre class="codesnp">
# Toggle button example
begin
    prog = irexec
    remote = remoteA
    button = buttonA
    config = play_command
    config = pause_command
    repeat = 0
end
</pre>
<p>Using this configuration, when <code>buttonA</code> is pressed for the first time, the <code>play_command</code> is executed. The second time <code>buttonA</code> is pressed, the <code>pause_command</code> is executed.</p>
<h5>Modes</h5>
<p>Let&#8217;s assume that you want to control many applications with your remote control. Some of them are LIRC clients and some are controlled through <code>irexec</code>. You can define various <strong>modes</strong> (groups of button to command mappings), one for each application.</p>
<p>First of all, read the <code>.lircrc</code> format page from the <a href="http://www.lirc.org/html/configure.html#lircrc_format">LIRC Documentation</a> very carefully.</p>
<p>Keep in mind the following rule:</p>
<blockquote><p>Each time you start a LIRC client and there is a mode within your configuration with a name equal to the application&#8217;s name, then this mode is automatically entered.</p></blockquote>
<p>This means that if there is a mode named <em>mplayer</em> inside <code>.lircrc</code> and you start the mplayer program, which is a LIRC client, then the mplayer mode is automatically entered and only the button mappings that exist within this mode are functional.</p>
<p>Save the following as <code>~/.lircrc</code>, substitute the remote control name and button names with your own, and start irexec:</p>
<pre class="codesnp">
# Example with modes
# MAIN BEGIN (irexec mode) - Application Selection Mode
# ---------------
begin irexec
    begin
        prog   = irexec
        remote = KWTV878RF
        button = 1
        # Start TVtime
        config = tvtime --window &#038;
        # Enter tvtime mode
        mode = tvtime
    end
    begin
        prog   = irexec
        remote = KWTV878RF
        button = 2
        # Start Totem player and play DVD
        config = totem dvd:/ &#038;
        # Enter totem mode
        mode = totem
    end
    begin
        prog   = irexec
        remote = KWTV878RF
        button = 3
        # Start Xine and play DVD
        config = xine dvd:/ --hide-gui &#038;
        # Enter xine mode
        mode = xine
    end
end irexec
# ---------------
# MAIN END (irexec mode end)
# APP MODES BEGIN
# ---------------
# tvtime mode
begin tvtime
    begin
        prog = irexec
        button = POWER
        config = tvtime-command QUIT
        # Enter irexec mode
        mode = irexec
    end
    begin
        prog = irexec
        button = ZOOM
        config = tvtime-command TOGGLE_FULLSCREEN
    end
end tvtime
# totem mode
begin totem
    begin
        prog = irexec
        button = POWER
        config = totem --quit
        # Enter irexec mode
        mode = irexec
    end
    begin
        prog = irexec
        button = ZOOM
        config = totem --fullscreen
    end
end totem
# xine mode
begin xine
    begin
        prog = xine
        button = POWER
        config = Quit
        # Enter irexec mode
        mode = irexec
    end
    begin
        prog = xine
        button = ZOOM
        config = ToggleFullscreen
    end
end xine
# ---------------
# APP MODES END
</pre>
<p>I hope this example is clear enough. What is going on here is that when <code>irexec</code> (LIRC client) is executed, then the <em>irexec mode</em> is entered. When you press button &quot;1&quot;, then TVtime is launched and the <em>tvtime mode</em> is entered. When you press the &quot;POWER&quot; button, TVtime quits and the <em>irexec mode</em> is entered etc. etc.</p>
<p>Furthermore, even if you do not start <code>irexec</code>, when you launch any LIRC enabled application, like Xine, MPlayer, Gnomeradio etc, then the appropriate mode will be entered automatically and you will be able to control this application remotely.</p>
<p>As you have probably already read in the <a href="http://www.lirc.org/html/configure.html#lircrc_format">LIRC Documentation</a>, you can modularize this configuration by keeping each application mode in a separate file. Just don&#8217;t forget to include those separate files by adding a line like the following in <code>~/.lircrc</code>. For example:</p>
<pre class="codesnp">include ~/.lirc/tvtime.lircrc</pre>
<h4>Final Notes</h4>
<p>Maybe you will need some time to familiarize yourself with the <code>.lircrc</code> format and probably more time reading the LIRC documentation, but you will be satisfied with the result.</p>
<p>For information about what commands are available for each application, please refer to the application&#8217;s documentation, project web site or support forum.</p>
<p>Also, if you need more information or support for LIRC, please ask your questions in relevant web forums. I have written all I know in this guide, so I am afraid I cannot help you more.</p>
<p>LIRC can do more things, for example it can be used to transmit IR signals or to connect to other LIRC servers accross the network. These have not been covered, not only because I consider such info as &quot;too much&quot; for a new user, but also because I have not been able to devote any time to experiment with these features.</p>
<p>This guide was written while using a Fedora 4 system.</p>
<h4>Further Reading</h4>
<p>You should read:</p>
<ol>
<li><a href="http://www.lirc.org/html/index.html">The LIRC Manual</a> (Documentation)</li>
</ol>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc/">How to configure and use LIRC</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2006/09/09/kernel-2617-and-lirc_gpio-driver/" rel="bookmark">Kernel 2.6.17 and lirc_gpio driver</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/14/the-complete-fedora-kernel-headers/" rel="bookmark">The Complete Fedora Kernel Headers</a></li>
<li><a href="http://www.g-loaded.eu/2005/10/30/creative-pc-cam-750/" rel="bookmark">Creative PC-CAM Series webcams in linux</a></li>
<li><a href="http://www.g-loaded.eu/2005/12/20/build-a-single-native-kernel-module/" rel="bookmark">Build a single native kernel module</a></li>
<li><a href="http://www.g-loaded.eu/2008/05/12/how-to-disable-ipv6-in-fedora-and-centos/" rel="bookmark">How to Disable IPv6 in Fedora and CentOS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2006/01/10/how-to-configure-and-use-lirc/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Add files to Totem playing list from Nautilus</title>
		<link>http://www.g-loaded.eu/2005/11/10/add-files-to-totem-playing-list-from-nautilus/</link>
		<comments>http://www.g-loaded.eu/2005/11/10/add-files-to-totem-playing-list-from-nautilus/#comments</comments>
		<pubDate>Thu, 10 Nov 2005 10:08:29 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Scripts]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2005/11/10/add-files-to-totem-playing-list-from-nautilus/</guid>
		<description><![CDATA[This Nautilus script is used to add multimedia files to the Totem playing list. What files are considered as multimedia is user-defined. Installation: put it in ~/.gnome2/nautilus-scripts/ directory and enable the executable attribute. Usage: after editing the multimedia file extensions list within the script, select some files and append them to Totem&#8217;s playing list from [...]]]></description>
			<content:encoded><![CDATA[<p>This Nautilus script is used to add multimedia files to the Totem playing list. What files are considered as multimedia is user-defined.<br />
<span id="more-86"></span><br />
<strong>Installation</strong>: put it in <code>~/.gnome2/nautilus-scripts/</code> directory and enable the executable attribute.<br />
<strong>Usage</strong>: after editing the multimedia file extensions list within the script, select some files and append them to Totem&#8217;s playing list from the right-click menu.</p>
<p><strong>Version</strong>: 0.3<br />
<strong>Requires</strong>: Zenity, Totem</p>
<p>Download the script from the link below:<br />
<strike><a href="http://www.g-loaded.eu/packages/bash/add_to_totem_playing_list.tar.gz">add_to_totem_playing_list.tar.gz</a></strike></p>
<p><strong>Update</strong>: Please use Jim&#8217;s method described in the comments. It&#8217;s by far a more decent solution! Thanks Jim :-)</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2005/11/10/add-files-to-totem-playing-list-from-nautilus/">Add files to Totem playing list from Nautilus</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2005/11/10/search-for-viruses-from-nautilus/" rel="bookmark">Search for viruses from Nautilus</a></li>
<li><a href="http://www.g-loaded.eu/2008/11/04/send-to-desktop-create-symlink/" rel="bookmark">Send to Desktop &#8211; Create Symlink</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/print-to-cups-printer-instances/" rel="bookmark">Print to CUPS printer instances</a></li>
<li><a href="http://www.g-loaded.eu/2007/08/20/mailing-list-manager/" rel="bookmark">Mailing List Manager</a></li>
<li><a href="http://www.g-loaded.eu/2007/03/05/organizing-mailing-list-messages-with-evolution/" rel="bookmark">Organizing Mailing List messages with Evolution</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2005/11/10/add-files-to-totem-playing-list-from-nautilus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>

