October 20, 2004
This article was contributed by Dave Fancella
Transcode
(also available here),
is the knock-out punch of video processing tools under
Linux. What began life as an AVI-file transcoding tool has blown up
into a general purpose video processing tool that is capable of taking
virtually any video file and encoding it to any other video codec. If
you've ever tried to coerce
MPlayer
or its accompanying Mencoder into doing any sort of work, then you're
familiar with what transcode does on a small scale. Like MPlayer,
transcode does everything conceivable within its paradigm.
I stumbled across transcode under some interesting circumstances.
A year ago I tried to coerce Mencoder into making MPEG files that I
could image with VCDImager
so I could burn my collection of Hitchhiker's Guide to the
Galaxy TV episodes to SVCD. In doing so I downloaded a virtual metric ton
of
yuvscaler,
mpeg2enc,
and all sorts of other tools. I literally filled up my home directory
trying to build the toolchain that every Linux/SVCD How-To instructed
me to build. None of them built, and I wasted many hours at it.
More recently I was fooling around with
KDEnlive,
trying to determine on a whim whether or not I could actually edit
movies with it. I've entertained a fantasy about chaining the Back
in the Red series of Red Dwarf episodes into one long movie. After
wasting several hours by not reading the fine manual, I learned that
to work KDEnlive I needed input files in the venerable DV format.
Not knowing what DV was, I Googled it. DV, of course, is what your
digital camcorder gives you. Upon learning that, I went in search of
a tool that would convert the MPEG files I had to DV, so I could make
a poor man's Red Dwarf movie. I found transcode, and it appeared to be
the only tool that even came close to what I was trying to do at that
particular moment in time. So I started reading the documentation and
quickly discovered that transcode, with the help of only some of the
toolchain I had previously tried to build, would make the SVCD-compatible
MPEGs I needed to burn off my Hitchhiker's collection. I found
the missing pieces by doing a quick search
through the available Mandrake packages, and I completely
forgot about making DV files. Instead, three hours later I finally burned
my first SVCD in the first truly productive tangent I had taken in months.
It was the first episode of the Hitchhiker's Guide to the Galaxy.
I was amazed, to say the least. My wife had to physically stop me
from bouncing off the walls.
Transcode works by utilizing a heavy plugin-based architecture.
Everything transcode does is with a plugin of some sort. First it
decodes the video/audio stream to an internal format. Then you can
have it process the stream internally, if you wish. Then it streams
to an output plugin where you can do additional processing before/during
the final encoding.
This web page has a pretty picture
that's worth a lot more than a thousand words.
The transcode documentation is fairly thin if you don't already know a lot
about video processing, but it is pretty complete otherwise. There
are numerous man pages for each tool bundled with transcode, but there
isn't a lot of information on the web to help you get started.
Conversely, there are two mailing lists specifically for transcode that
will help you solve virtually any problem you encounter, and there are
also several Linux distribution mailing lists where you'll find most of
the problems you may encounter already solved. After reading the
documentation, I realized I hadn't actually learned anything. This is
mostly due to the fact that I know next to nothing about video processing.
I can list a few codecs and almost know what I'm talking about, and
I'm fairly well acquainted with the standards for VCDs and SVCDs.
I can also use the word "multiplex" in a conversation and sound like
I know what it means. Other than that, I felt like I had been drop-kicked
into a rugby match. So I went looking for the idiot guides and found
them. They are thin on details, but thick on command line examples,
so I was pretty confident I could convince transcode to make my SVCD
for me. I also felt pretty certain I knew exactly what I needed to
make it work.
Armed with this new information, I searched my package manager looking
for the mjpeg-tools that I had previously wasted so much time trying to
build. I didn't expect to find them, so it was a happy surprise that I
only had to install a package rather than build a tool chain. Then I
searched for VCDImager
and cdrdao,
the two tools you need to build and burn an SVCD image.
I still had to build the multiplexer, but luckily this time it built and
installed without any trouble. I finally felt like I was ready to make
an SVCD, and at long last I thought I was finally going to see if the
light at the end of the tunnel was really a train. I estimated that I
was only about halfway through the process at this time, figuring it
would still take me at least as long to figure out how to get each tool
to do its part.
I was really wrong about how much time I had left on this tangent.
Using the provided command line examples for transcoding an AVI file
to an MPEG file compliant with the SVCD standard was a matter of copy,
paste, and light edit. Then I waited about an hour for my slow-as-lava
machine to finish working on it.
Next, I ran VCDImager with a command line created by doing a
simple copy and paste operation.
I followed that up with another feat of
middle-clicking the terminal, waited another half-hour and then told
my 4 year old to put the CD back in the tray, it was done.
Then I relaxed, got some iced tea, grabbed two of my kids, and sat back
to watch Arthur Dent lay in front of the bulldozer and pat myself on
the back for doing such a good job of copy and paste.
Transcode is an interesting tool. It builds
easily without dependency problems. It is also provided in packages
for most distributions. Packages are available for
Fedora, SuSE, and Gentoo. I assume Debian packages are available, I
generally assume Debian has a package for anything I find until proven
otherwise.
Google even showed me a
fink package for it.
I was mystified, however, by the fact that I had never
uncovered this tool before.
I had literally spent days searching for something to convert my
AVI files to SVCD-styled MPEGs and turned up nothing. The best I could
hope for was a bash script bundled with MPlayer that probably only works
on the machine it was written on. So I Googled transcode and turned up
the kind of search results that tell you its time to bury the tarball
with a nice-looking headstone. Upon taking a closer look I found that
most of what I was seeing was recent, and there is even transcode news
on both of its homepages that are recent enough to indicate vitality.
I can't account for how it seems to have just appeared like it fell
through a wormhole from another dimension in time to send me careening
back into the tunnel which can only end in a train.
Transcode is about as full-featured as you
would expect from a solid command-line video processor. It supports
every codec under the sun, both as input and as output. This support
includes MPEG (all flavors), still pictures, Ogg Theora, DivX, Xvid,
QuickTime MOV, and more.
Transcode's supported audio formats includes PCM, AC3, Ogg
Vorbis, MP3 (with Lame), and others.
The maximum video resolution transcode will work with is 1920x1088.
It also comes with a bunch of
tools that fulfill a number of uses, such as merging/splitting AVI files,
fixing broken AVI files and indexes, and probing media files so you can
determine the best way to encode them. You can rip DVDs with it, even
encrypted DVDs using the controversial
libdvdcss.
Since transcode supports DV files, you can take your home videos and
transcode them to SVCD MPEGs to burn and send to your friends and family.
You can put images in the finished file just like your least favorite TV
station, and you can even try to remove images other people have placed
in the file.
Transcode is extraordinarily powerful, and when it comes to transcoding
a video file from one codec to another, it's second to none. If you need
to do anything of this sort, I recommend giving it a spin.
Comments (8 posted)
System Applications
Audio Projects
The
latest changes from the
Planet CCRMA audio utility packaging project include a
new versions of STK and a new
Site FAQ document.
Comments (none posted)
Database Software
Version 0.7.2-test2 of Knoda, a database frontend is out with bug
fixes and null value handling improvements. Also, a new
test version of hk_classes has been released.
Full Story (comments: none)
Version 0.6 of Montag, a web services system for XML database interaction,
is available.
"
This version includes a new web service, XUpdateService, for modifying a single document or a collection of documents without retrieving them, through the XUpdate language."
Comments (none posted)
The October 18, 2004 edition of the PostgreSQL Weekly News
is online with another round of PostgreSQL database information.
Full Story (comments: none)
Embedded Systems
For a project which has been widely deployed and shipped in commercial
products for many years,
busybox has
taken its time to reach 1.0. The site's front page now carries the news.
"
Over three years in development, BusyBox 1.00 represents a
tremendous improvement over the old 0.60.x stable series. Now featuring a
Linux KernelConf based configuration system (as used by the Linux kernel),
Linux 2.6 kernel support, many many new applets, and the development work
and testing of thousands of people from around the world."
Comments (none posted)
Filesystem Utilities
Version 0.1 of Gnome VFS Mount 0.1, a program for mounting gnome-vfs-uris
directories on Linux filesystems, is out with numerous improvements.
Full Story (comments: none)
Libraries
Version 1.10 of libxklavier, the
X keyboard utility library, has been released.
"
As a start of new libxklavier development series. I announce the
version 1.10 of the X keyboard utility library. This version contains
improved architecture of the configuration process - not the entire
configuration compilation process is performed on the client side, so
X server gets absolutely prepared X configuration - this allows to
eliminate problems where X server and X client have different
configuration bases."
Full Story (comments: none)
Mail Software
Version 0.1.2 of PopGavaMail, a POP3 server proxy for accessing gmail
e-mail,
has been released.
"
Version 0.1.2 fixes a major bug which was causing a
NoClassDefFoundError when it was run."
Comments (none posted)
Networking Tools
Version 0.3.1, the first public release, of NetworkManager is available.
"
It serves as a network policy manager for the HAL-ized freedesktop.org
stack. It will automatically establish wired and wireless connections,
manage wireless keys, and provides developers with a high-level DBus API
for controlling networking."
Full Story (comments: none)
Printing
Release candidate 2 of
CUPS 1.1.22
(Common Unix Printing System)
has been announced.
"
CUPS 1.1.22 is a bug fix release which fixes device URI logging, file descriptor and memory leaks, crashes related to printer browsing, and error handling in the browsing code. The new release also adds support for PostScript files from other Windows PostScript drivers."
Comments (none posted)
Security
Version 0.98 of BASE, a web front-end to the
SNORT intrusion detection system,
has been announced.
"
This version adds PHP 5 support along with a user authentication system. We have also changed the look and feel of the application and fixed a number of bugs. Working with the Snort and BASE community, we have tried to incorporate all of the features that users have asked for."
Comments (none posted)
Web Site Development
Version 1.20 of Albatross, a Python-based toolkit for developing
highly stateful web applications, has been released.
"
There have been many improvements and bug fixes since release 1.1."
Full Story (comments: none)
Version 0.9 of Araneida, a Common Lisp-based HTTP server, is available.
"
This
version improves portability and provides SERVE-EVENT fixes."
Full Story (comments: none)
Version 1.6.0rc2 of Midgard, a web CMS platform,
has been released.
New features include multiple language support, PAM support,
an Apache2 module, Apache 2/PHP interoperability, and more.
Full Story (comments: none)
Version 3.2.22 of the
mnoGoSearch
web site search engine has been released.
Changes include a new template section, support for user defined sections,
speed improvements, bug fixes, and more. See the
Change Log for more
information.
Comments (none posted)
Version 2.0a1 of the
Quixote
web development platform is out. Changes include software
restructuring, support for Unicode, and more,
see the
CHANGES file for details.
Comments (none posted)
Version 0.3.1 of UnCommon Web, a Common Lisp-based web application development framework, is out.
"
This version provides optional cookie
based session tracking, a MOP-based component implementation, an
improved template-component API, a more robust application dumping
facility, and more."
Full Story (comments: none)
Miscellaneous
Version 0.1.0 of Gnome-schedule, a configuration tool for
at and cron, is out.
"
This release is a BETA release and we hope to get sorted out as many
bugs as possible before the main release, there will be no new
features added. But we are very intersted in your comments or
proposals."
Full Story (comments: none)
Stable release 3.4.0 of MultiTail is available.
"
MultiTail lets you view one or multiple files like the original tail
program. The difference is that it creates multiple windows on your console
(with ncurses). It can also monitor wildcards: if another file matching the
wildcard has a more recent modification date, it will automatically switch
to that file. That way you can, for example, monitor a complete directory of
files."
Full Story (comments: 1)
Desktop Applications
Accessibility
KDE.News
reports on a new release of
cspi-dbus bridge.
"
Together with the
Qt 4 D-BUS bindings, it is now possible to write KDE assistive technologies
that transparently interact with Qt/KDE applications as well as GTK/GNOME
applications."
Comments (none posted)
Audio Applications
Initial version 0.1.0 of Goobox, a CD player and ripper for the
Gnome Desktop environment, is out.
"
it
uses gstreamer to play and rip CDs and cddb-slave2 (distributed with
gnome-media) to get and edit CD metadata such as track titles and album
name."
Full Story (comments: none)
Data Visualization
Version of
Gmsh,
a 3D mesh generator, is available. The
announcement says:
"
This release contains small updates and bug fixes all over the map, as well as a new utility to reorder mesh files."
Comments (none posted)
Desktop Environments
Version 2.8.1.1 of the GNOME Applets are available with bug fixes.
"
Just about
everyone uses a GNOME Applet or two, the package includes applets like
the battery applet, CPU load applet, weather applet and mixer applet."
Full Story (comments: none)
Version 2.8.6 of Metacity, a simple window manager for GNOME 2,
has been announced.
"
This is a stable release for Gnome 2.8.1."
Numerous bug fixes are included.
Full Story (comments: none)
New Konqui graphics
are available,
according to KDE.News.
"
A range of new Konqi the Dragon graphics and the first Konqi video has been put together by newcomer to the KDE Artists mailing list Bastian Salmela (Basse). Unlike previous versions, this new Konqi wireframe model is made in the Free Software application Blender. You can find Konqi and the Magical Rope of Curiosity video (our killer feature at LinuxWorld London) as well as still graphics and their sources on the KDE Clipart page and Basse's KDE page."
Comments (none posted)
The October 15, 2004 edition of the
KDE CVS-Digest is online. Here's the content summary:
"
Pixie Plus returns with new maintainer. Krita now shears and rotates images. KPresenter adds master page support. amaroK now support NMM. Plus coverage of the GStreamer presentation from the aKademy conference."
Comments (none posted)
KDE.News
mentions
the availability of a new KDE Performance Tips document.
"
Many aspects of KDE performance depend on the underlying system or the user's
configuration. The KDE Performance Tips document, which lists some of the
performance related issues together with instructions how to avoid or fix the
problems, has been updated with new tips."
Comments (none posted)
Desktop Publishing
Version 1.7 of Kile, an Integrated LaTeX Environment for KDE,
has been released.
Changes include a new tool system, support for other TeX systems,
LaTex command autocompletion, system check, and a detailed clickable error summary.
Full Story (comments: 2)
The Essays 1743 font is available in TrueType and PostScript formats
under the LGPL.
"
It's based
on the typeface from a 1743 English translation of the essays of
Montaigne; so, broadly speaking, it looks old without being so old it's
hard to read. If you've read any of Neal Stephenson's last three books,
you've seen such a font."
Full Story (comments: 1)
Electronics
The latest new electronics applications on
Open Collector include Kicad 11-10-04 (a PCB suite), Icarus Verilog 0.8 (a
Verilog simulation language compiler), and XCircuit 3.3, (a schematic
capture application).
Comments (none posted)
Games
Version 0.5.91 of Atlas-C++
has been announced.
"
Atlas-C++ is the C++ implementation of the WorldForge protocol. This released is aimed at developers working on code that will be used with the Atlas-C++ 0.6 API which is currently in development."
Changes include API improvements and codec fixes.
Comments (none posted)
Version 0.3.3 of GNOME War Pad, a GNOME VGA Planets client,
has been released with numerous changes and translation improvements.
Full Story (comments: none)
Graphics
Version 0.9.14 of Tux Paint has been released.
"
To briefly describe the app., it's a drawing program for children 3 and up,
which has been translated to over 45 languages, runs on various OSes,
and is released under the GNU GPL."
Full Story (comments: 2)
GUI Packages
Version 1.1.5 of FLTK, the Fast, Light Toolkit,
has been released.
"
The FLTK 1.1.5 release is primarily a bug-fix release including documentation updates, fixes for 64-bit platforms, FLUID, several widgets, and GLUT emulation, and fixes for several platform-specific issues. The new release also adds project files for Visual C++.NET and supports KDE 3.x icons."
Comments (none posted)
Version 0.3.1 of Gazpacho, a GUI builder for
the GTK+ library, has been released.
Changes include preparations for adding unit testing,
a Gazpacho loader delegate, bug fixes, and more.
Full Story (comments: none)
Instant Messaging
Version 0.5.2 of Silky, a secure chat client for GTK2, is out.
Changes include GTK 2.2 compatibility, a new GETKEY command,
bug fixes, and more.
Full Story (comments: none)
Interoperability
Version 20041019 of Wine
has been released.
Changes include primary Direct3D 9 support, improvements to the
IDL compiler and the COM headers, a new MSCMS dll, and bug fixes.
Comments (none posted)
The October 15, 2004 edition of
Wine Traffic is online for your reading enjoyment.
Comments (none posted)
Mail Clients
Version 2.0.2 of the Evolution mail client has been released.
Lots of bug fixes are included in this release.
Full Story (comments: none)
Music Applications
Version 0.13 of liblo, an implementation of the Open Sound Control
protocol for POSIX systems, has been released.
"
This release adds Mac OSX compatibility fixes from Taybin Rutkin, a
memory leak fix from Jesse Chappell and methods and examples to allow
server polling from exisitng threads from Sean Bolton. Some legacy
compatobility code has been removed, but this should not affect anyone."
Full Story (comments: none)
Office Suites
Version 0.23 of
PyOpenOffice, a platform-independent Python class library and
command-line utility which can convert OpenOffice.org files to PDF,
is available.
Comments (none posted)
Peer to Peer
Version 0.0.16 of BTQueue, a console-based BitTorrent Client,
has been released.
"
BTQueue 0.0.15 is stable enough for long run. BTQueue. 0.0.16 has been modified to extend its functionality for maximum extensibility."
Comments (none posted)
Digital Photography
Version 0.7-beta1 of digikam,a digital photo management application
for KDE, has been released.
This version adds a long list of new features.
Full Story (comments: none)
The first beta release of
digiKam Image Editor Plugins 0.7.0 is out.
"
DigikamImagePlugins are a collection of plugins for Digikam 0.7.0 Image
Editor. These plugins add new image treatment options like color management,
filters, or special effects."
Full Story (comments: none)
Science
Version 0.9 of gNumExp, a gui frontend to the NumExp math-oriented
programming language, has been released.
Changes include integration with a new MIME system, improved
user interface, better MathML rendering, a new load/save progress dialog,
bug fixes, and more.
Full Story (comments: none)
Release candidate 1 of it++ 3.8.0, a cross-platform C++ library of
mathematical, signal processing, speech processing, and communications
classes and functions,
is available.
"
The kernel of the package are templated vector
and matrix classes and lots of functions for vectors and matrices. As such
the kernel is similar to the Matlab functions. IT++ is based on LAPACK, CBLAS
and FFTW. This is the first release candidate of a new major release. It has
tested on Linux and Cygwin on Windows but not on Windows using Visual C++
.Net 2003."
Comments (none posted)
Web Browsers
Version 1.4.4 of Epiphany, a browser for GNOME, is out
with several bug fixes.
Full Story (comments: none)
The Mozilla
Independent Status Reports for October 11, 2004 are available.
Here's the content summary:
"
This week's set of reports includes updates from cuneAform, Gnusto,
MozManual, purgecontrol, Caminol10n, Mozilla Archive Format, OutSidebar,
HONcode Status, and Mail Redirect."
Comments (none posted)
Miscellaneous
Version 1.36 of Animal Shelter Manager
is available.
"
Animal Shelter Manager is a complete computer solution for animal sanctuaries and shelters. Features complete animal management, document generation, full reporting, charts, internet publishing, pet search engine integration, web interface and more. This release adds many new features, including native installers for all platforms, editable vet book, FIV/L result tracking, automatic logout, better media support, multiple movement donation support, tattoo support, improved database handling, better UI widgets, video capture (Linux only) and many bug fixes."
Comments (none posted)
Version 2.8.0 of GNOME Terminal has been released.
"
This is mostly a release to get updated translations and to have a new
release for GNOME 2.8.1."
Full Story (comments: none)
Version 0.7.4 of Seahorse, a PGP key management application,
has been released with a long list of changes.
Full Story (comments: none)
Languages and Tools
Erlang
Version R10B of the Erlang/OTP environment is available.
Changes include better performance, a new tutorial, the addition
of try/catch to the language syntax, a new Query List Comprehensions
addition, a new XML parser, improvements to the Erlang shell, and more.
Full Story (comments: none)
Java
Benoit Aumars
writes about the Java Messaging Service on O'Reilly.
"
Simple communication in an enterprise system is possible through various
schemes, but not all of them answer the question of coordination. Benoit
Aumars presents a hypothetical case study that shows how generating and
sharing information in XML is made easier with Java Messaging Service (JMS)
and Java Management Extensions (JMX)."
Comments (none posted)
Lisp
Version 0.6.2 of AspectL, a library that provides aspect-oriented
extensions for Common Lisp/CLOS, has been released.
"
Pascal Costanza has released AspectL 0.6.2 on 10 October 2004. This
version changes the way special classes are handled."
Full Story (comments: none)
Perl
Martin C. Brown
shows how to optimize Perl code on IBM developerWorks.
"
Perl is an incredibly flexible language, but its ease of use can lead to some sloppy and lazy programming habits. We're all guilty of them, but there are some quick steps you can take to improve the performance of your Perl applications. In this article, I'll look at the key areas of optimization, which solutions work and which don't, and how to continue to build and extend your applications with optimization and speed in mind."
Comments (none posted)
The October 11-17, 2004 edition of
This Week on perl5-porters is out with a 5 year celebration of
the release of Perl 5 and other Perl topics.
Comments (none posted)
Geoff Broadwell
edits multiple files with Perl on O'Reilly.
"
For those not used to the terminology, FMTYEWTK stands for Far More Than You Ever Wanted To Know. This one is fairly light as FMTYEWTKs usually go. In any case, the question before us is, "How do you apply an edit against a list of files using Perl?" Well, that depends on what you want to do...."
Comments (none posted)
PHP
Ethan McCallum
discusses the Page Controller design
pattern on O'Reilly.
"
Simple web apps can start simple, but when they grow more complex, they often
need pruning and refactoring to be maintainable. The Page Controller design
pattern can help separate concerns such as templates and logic. Ethan
McCallum demonstrates this language-neutral technique with PHP."
Comments (none posted)
Python
The first beta of
Python 2.4 has
been announced (click below). If you like living on the bleeding edge,
download it, kick the tires, and report those bugs.
Full Story (comments: none)
The September 16-30, 2004 edition of the python-dev Summary
is available. Take a look for recent discussions from the python-dev
mailing list.
Full Story (comments: none)
The October 18, 2004 edition of Dr. Dobb's Python-URL! is online
with the week's Python language article links.
Full Story (comments: none)
Tcl/Tk
The October 19, 2004 edition of Dr. Dobb's Tcl-URL!
is online. Take a look for a weekly dose of Tcl/Tk articles.
Full Story (comments: none)
XML
Uche Ogbuji
has assembled
a giant table of Python-XML utilities in an O'Reilly article.
"
The general rules of thumb for including software are, firstly, whether it implements a technology or set of technologies strongly associated with XML; and secondly, whether it does so in a way that is useful for any arbitrary XML file I may want to process."
Comments (none posted)
Manish Verma
covers XML security issues on IBM developerWorks.
"
Providing the right people with the right access to information is as important as (if not more important than) having the information in the first place. eXtensible Access Control Markup Language -- or XACML -- provides a mechanism to create policies and rules for controlling access to information. In this article, author Manish Verma continues his series on XML security issues by showing you how to incorporate XACML into your own applications."
Comments (none posted)
Antoine Quint
writes about SVG and multimedia on O'Reilly. "
If you're a regular reader of this column, or if you just read the specification carefully, you would know that SVG is more than just a vector graphics XML vocabulary. While I won't bore you here with the list of application contexts SVG is suited for, I will point out that since Day One there have been synergies between the work that took place at W3C around multimedia (SMIL) and SVG."
Comments (none posted)
Build Tools
Version 0.4 of iCompile, an automated build system for C++ projects,
is out.
"
The 0.4 release
topologically sorts library dependencies (so *you* don't have to figure out
whether -lSDL comes before or after -lpthreads in the link list) and adds
.icompile and ice.txt files to allow project customization."
Comments (none posted)
Editors
Version 2.8.1 of GHex, a binary file editor, is available.
"
A quick follow-up to the still warm 2.8.0: I have fixed a build bug that
might have, under very special circumstances, caused an incompatible
version of dependencies (like glib or gtk) to be pulled in the build,
and a bug in the converter that caused only one byte of hex to be
displayed."
Full Story (comments: none)
Page editor: Forrest Cook
Next page: Linux in the news>>