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.
Audio Projectslatest changes from the Planet CCRMA audio utility packaging project include a new versions of STK and a new Site FAQ document.
Database Softwareis 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."
Embedded Systemsbusybox 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."
LibrariesAs 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."
Mail Softwarehas been released. "Version 0.1.2 fixes a major bug which was causing a NoClassDefFoundError when it was run."
Networking ToolsIt 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."
PrintingCUPS 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."
Securityhas 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."
Web Site DevelopmentThere have been many improvements and bug fixes since release 1.1." This version improves portability and provides SERVE-EVENT fixes." 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. Quixote web development platform is out. Changes include software restructuring, support for Unicode, and more, see the CHANGES file for details. 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."
MiscellaneousThis 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." 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."
Accessibilityreports 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."
Audio Applicationsit 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."
Data VisualizationGmsh, 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."
Desktop EnvironmentsJust about everyone uses a GNOME Applet or two, the package includes applets like the battery applet, CPU load applet, weather applet and mixer applet." This is a stable release for Gnome 2.8.1." Numerous bug fixes are included. 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." 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." 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."
Desktop PublishingIt'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."
ElectronicsOpen 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).
Gameshas 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.
GraphicsTo 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."
GUI Packageshas 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."
Interoperabilityhas been released. Changes include primary Direct3D 9 support, improvements to the IDL compiler and the COM headers, a new MSCMS dll, and bug fixes. Wine Traffic is online for your reading enjoyment.
Music ApplicationsThis 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."
Office SuitesPyOpenOffice, a platform-independent Python class library and command-line utility which can convert OpenOffice.org files to PDF, is available.
Peer to Peerhas 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."
Digital PhotographyDigikamImagePlugins 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."
Scienceis 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."
Web BrowsersIndependent 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."
Miscellaneousis 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." This is mostly a release to get updated translations and to have a new release for GNOME 2.8.1."
Languages and Tools
Javawrites 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)."
LispPascal Costanza has released AspectL 0.6.2 on 10 October 2004. This version changes the way special classes are handled."
Perlshows 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." This Week on perl5-porters is out with a 5 year celebration of the release of Perl 5 and other Perl topics. 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...."
PHPdiscusses 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."
PythonPython 2.4 has been announced (click below). If you like living on the bleeding edge, download it, kick the tires, and report those bugs.
XMLhas 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." 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." 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."
Build Toolsis 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."
EditorsA 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."
Page editor: Forrest Cook
Next page: Linux in the news>>
Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds