Jacob Klint (jklint@juno.com)
UC Irvine | The Paul Merage School of Business
http://www.merage.uci.edu/~dvdotnet
Download: http://webfiles.uci.edu/jklint/work/MpegALot_latest.zip
Software - MpegALot requires the Microsoft .NET 2.0 runtime (freely downloadable through Windows Update or at http://www.microsoft.com) and AviSynth (freely download at http://avisynth.org/SourceForge). MpegALot was developed and tested using Windows XP and Microsoft Visual Studio .NET 2005.
Hardware - How much RAM, CPU, hard disk space, etc do you need? As with all video encoding apps, the answer is "more than you have" :). The MpegALot GUI itself is not very resource-intensive (as far as .NET programs go, at least), but the encoding processes can heavily tax your machine. Some recommendations:
Questions? Comments? Suggestions? Email the author, Jacob Klint, at jklint@juno.com.
This and other projects are available at: http://www.merage.uci.edu/~dvdotnet.
The GUI and the multi-threaded encoding frontend were created by the author, Jacob Klint. Several excellent open-source utilities handle the meat of the encoding work:
I am deeply indebted to the authors of the above programs for their contributions to the open-source community. I hope that my work serves to further the popularity and utility of their programs.
The icon for this program comes from the Tango project (http://tango.freedesktop.org/Tango_Desktop_Project).
This project is loosely based on and supercedes a previous command-line program of mine, "AutoMPEG4" (http://www.merage.uci.edu/~dvdotnet/autompeg4.html) . MpegALot addresses many of the deficiencies of that program and adds several new features.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, exluding commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
If you have any commercial interest in this product, please contact the author, Jacob Klint (jklint@juno.com)
This section provides directions on how to use the MpegALot GUI. There are five sections: Menus, Sources, Encoding Options, and Running a Job.

figure 1 - the main MpegALot GUI
Menus (back to Usage)

figure 2 - the File menu
| Command | Effect |
|---|---|
New |
Create a new job file |
Open... |
Open a job file from disk |
Recent |
List recently used job files for easy access Active only when there are recently used files to list |
Save |
Save the current settings to a job file ("*.mpegalotjob.xml") |
Save As... |
Save the current settings to a new job file ("*.mpegalotjob.xml") |
Exit |
Quit the program |

figure 3 - the Edit menu
| Command | Effect |
|---|---|
Add File(s) |
Browse the disk for source files to add to the source list |
Add Folder... |
Browse the disk for a source folder to add to the source list |
Select All |
Select all the sources in the source list Active only when sources are present |
Open External |
Open the selected source(s) - if the source is a folder, it will open in Windows Explorer; if the source is a video file, it will open with your default media player. This is the same as double-clicking the item in Explorer. Active only when sources are selected |
Remove |
Remove the selected source(s) from the source list Active only when sources are selected |

figure 4 - the View menu
| Command | Effect |
|---|---|
Show Status Viewer |
Display the Status Viewer window for monitoring job progress See Running a Job for details on the Status Viewer |

figure 5 - the Tools menu
| Command | Effect |
|---|---|
Start Encoding |
Begin the encoding process. Command toggles between "Start Encoding" and "Stop Encoding" when clicked. Active only when sources are present |
Pause Encoding |
Temporarily halts all encoding. Command toggles between "Pause Encoding" and "Resume Encoding" when clicked. Active only while encoding |

figure 6 - the Help menu
| Command | Effect |
|---|---|
Open Guide (HTML) |
Open this help document in your default web browser. |
About MpegALot |
Show version, author, and other basic information. |
Sources (back to Usage)

figure 7 - the Sources area
A "source" is either a video file or a folder containing files (or other folders) to encode. You may add sources to a job in several ways:
Similarly, you may remove sources from the list by selecting the sources to remove in the list (select multiple jobs with control- or shift-click) and clicking either the remove button or the "Remove" menu item in the "Edit" menu or the sources list context menu.
The "Filters" section lets you specify conditions that restrict which sources are displayed in the sources list. A filter merely hides sources on the list, but it does not actually remove them. You can see a count of how many sources are being displayed and how many are actually in the list by looking at the "(showing XX of XX sources)" text next to the "Filters" label.
There are four basic filters available. Each can be activated/deactivated by clicking the corresponding checkbox:
| Filter | Effect |
|---|---|
| Name/Extension | The most powerful filters. These let you specify strings that file/folder names or file extensions must or must NOT match. For file/folder names, "match" means that the name contains the string, while for extensions, "match" means the extension exactly equals the string (with or without the "."). Matching is not case-sensitive.
You may enter multiple strings in each filter box by separating them with commas. For the "Include" column, having multiple strings means that the source must match at least one of the entered strings, and for the "Exclude" column, it means that the source must not match ANY of the strings. |
| Files | Check to include files in the list, clear to hide all files in the list |
| Folders | Check to include folders in the list, clear to hide all folders in the list |
| Recurse through sub-folders | For folder sources, in addition to encoding files in the folder itself, look through all its sub-folders (and all their sub-folders...) for files to encode. These additional files are not immediately added to the source list because the searching through the sub-folders does not occur until you begin encoding. Also, the Name/Extension filters will be applied to files found during this recursive search. You can use this filter only when the "Folders" checkbox is also checked. |
Encoding Options (back to Usage)

figure 8 - the Encoding area
The encoding options cover basic AV settings such as bitrate, framerate, resolution, etc. These are standard options found in almost any video encoding application. For more details on these options, I recommend doing some research on sites such as http://www.doom9.org and http://www.videohelp.com.
However, there are some settings in this area that are specific to MpegALot and deserve some explanation:
| Option | Meaning |
|---|---|
| Simultaneous encoding processes | The maximum number of videos to encode simultaneously when doing batch encodings. Recommended is one per logical CPU core (ie, the number of processors shown in the Task Manager). You may change this setting while encoding. |
| Encoding process priority | The task priority for encoding jobs. This is the same as setting priorities in the Task Manager. You may change this setting while encoding. |
| Directory | Where to place encoded files. If you specify an absolute directory (eg, "c:\videos"), then all encoded files will be placed in that directory. If you specify a relative directory (eg, "videos" or "\videos"), then each encoded file will be placed in that directory relative to its source directory (eg, the source video "c:\sources\myvideo.avi" would output to "c:\sources\videos\myvideo.mp4"). The output filename is always the same as the input filename, but with the ".mp4" extension. |
| If output file already exists | Ask me what to do - each time an existing output file is found, pop up a dialog box asking for direction Overwrite the existing file - replace the existing file without asking. The existing file will be moved to the Recycle Bin. MpegALot asks once for confirmation before beginning the encoding job. Skip the file - leave the existing file alone and do not encode the source file. |
| Copy source metadata | Copy extra information (artist, title, year, genre, and copyright) from the source file to the output file. The source metadata can either be embedded in the source file, or you can specify alternate information by placing a "*.metadata.xml" file in the same directory as the source file, where "*" is the complete name (including extension) of the source file (eg, for the source file "c:\videos\mysource.avi", create the file "c:\videos\mysource.avi.metadata.xml"). The *.metadata.xml file should contain the following text (standard XML - copy and paste into Notepad, etc): <Metadata> You may omit any of the above fields to leave them blank in the output file. |
| AV Presets (Load/New) | The settings in the Audio and Video boxes can be saved and exported/imported as preset files, making it easy to load commonly used settings and to transfer settings between machines or users. The export/import preset files (*.mpegalotpreset.xml) contain only AV settings, not any of the other settings such as output options, encoding process options, sources, etc. |
Running a Job (back to Usage)
Once you have added one or more sources, the "Start Encoding" button in the lower-right-hand corner of the main application window becomes active. Click this button or the corresponding menu item in the "Tools" menu (see Menus) to begin the encoding process.
At this point, several things will happen:
The Status Viewer provides detailed feedback about the current state of your encoding jobs. The top panel has an entry for each of the currently encoding source files and reports information such as time elapsed/remaining, the current encoding step for that file, and a percentage complete progress bar. Note that the time and percentage values are only estimates and are not completely accurate. There is also a "cancel" button for each current file that allows you to cancel encoding just that file (MpegALot will ask for confirmation).
The lower pane of the Status Viewer is a copy of the information contained in the log. Log entries tell when encoding of each item starts or stops and whether or not the encoding was a success.
While encoding, you can:
Once encoding has ended (because of a manual stop, the closing of the program, or finishing processing all source files), the GUI will revert to its normal state and the status bar will indicate the application is "Idle".
This section covers advanced topics such as command-line usage and technical encoding details.
MpegALot accepts two command-line arguments:
mpegalot.exe <job file (no angle brackets)> [/start]
eg "mpegalot.exe c:\videos\myjob.mpegalotjob.xml" or "mpegalot.exe "c:\document and settings\user\desktop\myjob.mpegalotjob.xml" /start"
The first argument specifies a job file to open when the program first opens.
The second argument forces MpegALot to begin encoding and run without any user interaction - that means no confirmation dialogs for output file overwrites and automatically exiting once the job finishes running. However, if errors requiring user interaction occur, MpegALot will display the necessary dialog boxes. This mode is suitable for use with the Windows Task Scheduler.
You may interrupt "automatic" mode by manually stopping encoding.
Automatic mode requires that the first argument (input job file) also be specified.
MpegALot uses several utilities to do the "dirty work" of encoding and muxing. The video is first encoded to MPEG4 with MEncoder (either with CBR or 2-pass VBR), then muxed into an MP4 container in the temp directory using MP4Box. The audio is then encoded to AAC with FFMpeg, then muxed into the output container with MP4Box. If desired, MpegALot uses Atomic Parsley to write the source file's metadata into the output container. Finally, the output file is moved from the temp directory to the final output location.
Only one instance of MpegALot can be run per user. If you or the Task Scheduler launches the program when it is already running, the existing instance will be brought forward.
If errors occur during encoding, MpegALot moves the temp files for that source into a "failed" subdirectory in the temp folder ("(your windows drive):\documents and settings\(your username)\application data\mpegalot") so you can investigate the failure. The "failed" directory is cleared out whenever you begin encoding. The MpegALot log file is also located in this temp directory, and is also cleared at the start of each encoding job.
MpegALot preserves all settings from session to session. These settings are saved as XML files in the application temp directory.
There are a few places in the GUI where you can mistakenly enter "bad" parameters. When MpegALot detects this, it will highlight the erroneous input area in red, put an error message in red text in the status bar, and prevent you from starting encoding. The input must be fixed before encoding can begin.
- last updated by Jacob Klint, 06/2007