ACMultiPlex Code
Status: Alpha
Brought to you by:
jeff-tyrrill
File | Date | Author | Commit |
---|---|---|---|
ACMultiPlex | 2010-04-25 |
![]() |
[bef10e] Added forgotten xvid.reg (d'oh) |
data | 2010-04-25 |
![]() |
[bef10e] Added forgotten xvid.reg (d'oh) |
readme.html | 2010-04-25 |
![]() |
[bef10e] Added forgotten xvid.reg (d'oh) |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>ACMultiPlex manual</title> <style type="text/css"> body { font-family: verdana, arial, helvetica, sans-serif; } p, ul { font-size: 10pt; } </style> </head> <body> <h1>ACMultiPlex manual</h1> <p>Documentation version 0.5.0.1.</p> <p>All statements and information in this documentation are provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness or a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action or contract, tort or otherwise, arising from, out of or in connection with the documentation and/or software or the use or other dealings in the documentation and/or software.</p> <h1>Table of Contents</h1> <ul> <li>1. Introduction</li> <li>2. Requirements and Setup <ul> <li>Software <ul> <li>Optional software</li> </ul> </li> <li>Settings</li> </ul> </li> <li>3. Usage <ul> <li>Ripping</li> <li>Indexing (unattended batch step)</li> <li>Encoding</li> <li>Encoding (unattended batch step)</li> <li>Verifying</li> <li>Scheduling</li> <li>Event Procedures</li> </ul> </li> <li>Appendix A: Revision History</li> <li>Appendix B: Known Issues</li> <li>Appendix C: Project History</li> <li>Appendix D: Credits and Contact</li> <li>Appendix E: Thanks</li> <li>Appendix F: License</li> </ul> <h1>1. Introduction</h1> <p>ACMultiPlex is a collection of loosely-coupled tools to assist convention-style events, such as anime conventions, with ripping, encoding, and playing DVDs in unattended theater rooms.</p> <p>ACMultiPlex targets Windows and .NET and calls third-party tools to do the "heavy-lifting" of video transcoding and data processing. It provides graphical user interfaces for ripping DVDs, encoding video segments from the ripped titles, and editing a real-time playback schedule.</p> <p>ACMultiPlex is designed to detach the ripping and encoding processes. This means you can rip large numbers of DVDs back-to-back as fast as possible, and worry about handling the encoding later. The disc isn't stuck in the drive while the video is processed. Later, when you set up the encoding, all the parameters are saved from disc to disc, segment to segment, to be executed in an unattended batch. You can have a "ripping party" with all your DVDs, then later set up all the encodes in one sitting (usually without needing the original DVDs), then wait a few hours/days/weeks for your encodes to finish.</p> <p>ACMultiPlex is designed to scale up to the needs of a large convention event, with perhaps hundreds of discs, and multiple computers. The user interface for encoding is designed to be as efficient as possible, letting you select parameters for one disc, and then rapid-fire repeating encodes on subsequent titles or discs using the same parameters, such as audio track, subtitle track, and aspect ratio. If you are encoding episodes of a series, a running episode counter even counts between titles and discs. Some TV series DVDs have multiple episodes on a disc consecutively all in the same title. The user interface makes it very fast and easy to define breakpoints for these episodes, consecutively numbering them. Setting up batch encodes of multiple episodes of a series, across multiple discs, is probably more efficient with ACMultiPlex, than with any other available tool. Almost all video options have a real-time preview.</p> <p>The video encoding is built around AviSynth, primarily because the best deinterlacing and video processing plugins are available on this platform. By default, ACMultiPlex uses the TDeint deinterlacer (an AviSynth plugin), encoding to 60 frames/second, preserving the full motion and fidelity of the range of content possible on DVD. TDeint, with the "tryweave" setting, supports inverse telecine with 3:2, 2:2, or any cadence (it actually uses solely field-matching, and not cadence detection at all, to do this). Field matching is performed by breaking the image into 16x16 squares and analyzing the comb factor in each square. TDeint, in the configuration used by ACMultiPlex, features motion adaptive deinterlacing with 4-field motion detection across a 7-field window, and the choice to weave forward or backward in time, or bob, made independently per-pixel. The needs of anime, with mixed interlaced, film-sourced, field-blended, and 60i CG, sometimes all in the same program, motivated this attention to deinterlacing. For most content, TDeint performs significantly better than high-end consumer video processors, better than computer live DVD players, and better than most Windows all-in-one ripping software.</p> <p>The video encoding retains the full DVD resolution (rescaling so that pixels are square) and aspect ratio, and does not transcode the audio. Thus, you can play the full original surround in AC3 or DTS format. ACMultiPlex supports AC3, DTS, and PCM DVD tracks. Currently, ACMultiPlex encodes using XviD at 5Mb/s to an MKV container. (H.264 support is likely in a future version, sooner rather than later.)</p> <p>The playback system in ACMultiPlex displays an on-screen countdown timer (implemented in a locally-stored web page displayed by FireFox in full-screen mode) announcing the time remaining until, and title of, the next program. This can be easily customized to add your event's logo or wallpaper, or change the appearance of the text.</p> <p>You don't need to use all the components of ACMultiPlex. You can use just the ripping and encoding portion, or just the playback portion.</p> <p>If you use all the components, you get a bit of a bonus. In the schedule editor, you can access metadata that was saved during the encoding stage. Unfortunately, if you use only the playback portion, there's a bit of a penalty, as you need to created a simple XML file for each video file that you "import" into the system (meaning, was not created in ACMultiPlex). This is one of the top project priorities to make easier in future versions.</p> <p>By default, encoded files are "packaged" in a folder with the same name as the video file, and an XML metadata file. You can freely move or copy these between computers after encoding. Thus, you can rip and encode on a different computer than the computer that might be eventually playing the file. If your event owns a set of playback computers, this makes it very easy to use them for ripping and encoding as well.</p> <p>ACMultiPlex does not make use of any network features, even though your event may have multiple theaters running simultaneously. No part of ACMultiPlex requires or expects that your computers are networked during the event. This may be a big advantage to you if acquiring such a network is difficult. However, on the other hand, if you can rely on computers being networked, ACMultiPlex does not currently provide any direct features to take advantage of this.</p> <p>ACMultiPlex requires setup, practice, and training. It is currently in alpha stage, and not all operations are available through the user interface. Most importantly, it is not at all foolproof. You probably won't be able to have results in 15 minutes. If your convention is 3 days away and you don't know how you are going to run your video rooms, it is probably too late. Aside from the actual time to rip and encode, you'll probably need to spend several hours with ACMultiPlex to become comfortable with it. There are times when you'll need to go into the folder structure, delete some folders, maybe peek into some XML files. It's a work in progress. But if your convention is 2 months away and you need to play 100 DVDs, and don't have the staff to change DVDs in several rooms all day long, ACMultiPlex will deliver.</p> <p>Ripping and encoding is a delicate process and about 5-10% of DVDs resist it. Be prepared to use alternate means to rip or analog-record occasional discs, or plan to play them manually at your event.</p> <p>Goals of this project:</p> <ul> <li>Focusing on the needs of large convention events</li> <li>Emphasis on video quality</li> <li>Emphasis on maximizing efficiency for large numbers of discs</li> </ul> <p>Non-goals of this project:</p> <ul> <li>Creating the best universal ripping and encoding tool</li> <li>Providing medleys of options for downscaling, or transcoding to codecs supported by other devices (it's expected you'll be playing these on PCs)</li> </ul> <h1>2. Requirements and Setup</h1> <h2>Software</h2> <p>ACMultiPlex requires Windows. It has been tested on Windows XP, Windows Vista, and Windows 7, and tested on both 32-bit and 64-bit Windows. However, not every version has been tested on every such permutation (possibly some permutations have not even been tested at all). It has not been tested on Server versions of Windows, so I have no firsthand information about such compatibility, although I speculate it would work. It requires the .NET Framework. It's best to have the latest version(s) installed from Windows Update or Microsoft Update.</p> <p>You do not need to be an Administrator user, or have any elevated privileges, to use ACMultiPlex. If this is the case, then it is a bug. I also believe that the third party software it requires, once installed, do not require Administrator permissions.</p> <p>ACMultiPlex also requires quite a large number of third-party software pieces, listed below. I cannot distribute, or provide assistance in obtaining, these software pieces.</p> <ul> <li>DVD Decrypter 3.5.4.0</li> <li>DGIndex (a component of DGMPGDec) (tested 1.5.8)</li> <li>VSRip</li> <li>AviSynth (tested 2.5.8) <ul> <li>plugins: <ul> <li>DGDecode (a component of DGMPGDec) (tested 1.5.8)</li> <li>TComb</li> <li>TDeint</li> <li>TIVTC</li> <li>VSFilter (tested 2.39.5.2)</li> </ul> </li> </ul> </li> <li>VirtualDubMod (tested 1.5.10.3)</li> <li>Koepi XviD binaries (tested 1.2.2)</li> <li>VLC (tested 1.0.5)</li> <li>Media Player Classic</li> <li>Microsoft Sysinternals suite (you need PsList and PsKill, specifically)</li> <li>Mozilla Firefox <ul> <li>extensions: <ul> <li>Autohide</li> </ul> </li> </ul> </li> </ul> <p>The first time you run DVD Decrypter, press "I" on the keyboard to switch it into IFO mode, which ACMultiPlex is designed to use.</p> <p>If DVD Decrypter displays "Failed to set data for 'DVDDecrypterPlayDVDMovieOnArrival'" when you exit, then you can prevent this by locating "Tools", "Settings…", "Registry", and unchecking "AutoPlay (XP / Server 2003)" and "DVD (Me / 2000 / XP / Server 2003)".</p> <p>After installing the XviD binaries, apply xvid.reg to configure the recommended encoding parameters for ACMultiPlex. This configures XviD for 5Mb/s bitrate, and single-pass. The reason single-pass is used is because the video processing chain, including deinterlacing, is executed for each pass, so single-pass is much faster. If you require greater video quality, consider raising the constant bitrate rather than changing to dual-pass.</p> <p>After installing VLC, you'll want to set the following settings. The latter two are required for use of the ACMultiPlex playback system. The first two are particularly important for ACMultiPlex usage, as they affect AC3 and DTS audio in particular, but aren't strictly required for ACMultiPlex users in particular, other than to the extent that I recommend all users everywhere set these settings, and think they ought to be the default for VLC (distorting the audio to facilitate playback in noisy environments should be the exceptional case, not the default). These are located under "Tools", "Preferences", then select "Show Settings: All":</p> <ul> <li>Under "Input / Codecs", "Audio codecs", "A/52", uncheck: "A/52 dynamic range compression"</li> <li>Under "Input / Codecs", "Audio codecs", "DCA", uncheck: "DTS dynamic range compression"</li> <li>Under "Playlist", select "Play and exit"</li> <li>Under "Video", select "Fullscreen video output"</li> </ul> <p>It is recommended, but not required, to change your environment's date and time format options to correspond to that of ISO-8601. This will ensure dates and times sort, appear aligned in a column, and avoids ambiguity with any date format in use in the world. Dates and times are used in the schedule editor, and are used in the filesnames in schedule.xml backups. To do this, use these strings in the Windows regional settings:</p> <p>yyyy-MM-dd<br /> HH:mm:ss</p> <h3>Optional software</h3> <ul> <li>AnyDVD (will eliminate problems with some DVDs)</li> <li>ffdshow-tryouts (tested beta7_rev3154_20091209) (required on some systems for previewing audio) (if you can preview 2.0 audio but not 5.1 tracks, or not DTS tracks, you might try also installing AC3Filter)</li> <li>Open/Close CD (tested 1.20) (the Rip component will eject the disc when done ripping, if you have this) (note: Windows Defender will alert you the first time you run or download this as it consider this a "joke" app, but it won't block it nor continually nag you.)</li> </ul> <h2>Settings</h2> <p>Configuration settings not accessible from the graphical user interfaces are stored in a file named settings.xml. All executables share a single settings file. The file must be in the same folder as the executable, or otherwise, the working directory.</p> <p>Also included with the package is a settings.default.xml file. This is identical to the included settings.xml file. This makes it easy to restore to default settings if you need to, or to find any settings that you are missing. (Please note, you must manually create settings.xml yourself. ACMultiPlex does not create a default one for you, if it does not exist.)</p> <p>Invalid settings may cause unexpected behavior, including program crashes. (Sorry.)</p> <p>You will <strong>need</strong> to review all of these settings before your first use. Defaults are placeholders, and it's unlikely they will all be correct for your system.</p> <p>All folder path settings must include the final \ character. (For example: C:\folder\ )</p> <p><strong>dvdDriveLetter:</strong> The drive letter of your DVD-ROM drive. Enter it in lowercase (not tested if this matters, sorry).</p> <p><strong>pathAudioMediaPlayerExecutable:</strong> The full path to the executable used for previewing AC3 and DTS audio tracks.</p> <p><strong>pathAviSynthPluginsFolder:</strong> Self-explanatory. It's probably best to keep this to AviSynth's preferred location. (Sorry, plugins cannot be split across more than one folder.)</p> <p><strong>pathAVSMediaPlayerExecutable:</strong> The full path to the executable used for previewing AviSynth renders. Recommended to be Media Player Classic.</p> <p><strong>pathBrowserExecutable:</strong> The full path to the Firefox executable.</p> <p><strong>pathDGIndexExecutable:</strong> The full path to the DGIndex executable.</p> <p><strong>pathDVDDecrypterExecutable:</strong> The full path to the DVD Decrypter executable.</p> <p><strong>pathOpenCDExecutable:</strong> The full path to the Open/Close CD executable. Leave blank if you don't have, or don't want to use, this software. In that case, a pop-up message informing you that ripping is complete will appear instead of ejecting the disc.</p> <p><strong>pathPlaybackExecutable:</strong> The full path to the media player you want to use for the Playback Controller system. Only VLC and Media Player Classic have been tested. The player must support exiting when the video finishes (this is how the controller detects to continue the next segment).</p> <p><strong>pathPsKillExecutable:</strong> The full path to the PsKill executable.</p> <p><strong>pathPsListExecutable:</strong> The full path to the PsList executable.</p> <p><strong>pathVideoEncodedFolder:</strong> The folder path you want to use to store encoded videos.</p> <p><strong>pathVideoFolder:</strong> The folder path you want to use to store ripped DVDs.</p> <p><strong>pathVideoScheduledFolder:</strong> The folder path you want to use to store the videos while building your schedule. (You might want this to be the same as the encoded folder. Or, you might prefer it not be.)</p> <p><strong>pathVirtualDubModExecutable:</strong> The full path to the VirtualDubMod executable.</p> <p><strong>pathVSRipExecutable:</strong> The full path to the VSRip executable.</p> <p><strong>playbackExecutableIsMPC:</strong> Set to "True" if you are using Media Player Classic with the Playback Controller, "False" otherwise. This sets the necessary command-line arguments to cause Media Player Classic to close on exit.</p> <p><strong>timeSimulate:</strong> This causes the Playback Controller to act as if this time, rather than the environment's current time, is the actual time. Is UTC. Indispensible for testing the playback system.</p> <p><strong>useFolderPackage:</strong> To place encoded videos in a folder "package" with the same name as the video file (including a random ID) and including an XML metadata file, set this to "True", otherwise "False". When false, only a single file will be created when encoding, and it will not contain an ID in the filename.</p> <h1>3. Usage</h1> <h2>Ripping</h2> <p>Ripping uses the component "Rip".</p> <p>If you have a copy of AnyDVD, launch it and just keep it running. It will silently perform its work as it's a pass-through driver.</p> <p>Start the Rip component, and then click "Rip DVD". DVD Decrypter will launch. You can now insert a DVD if you haven't already. Use the DVD Decrypter GUI to navigate the disc and find the segments to rip. Rather than starting the rip using the DVD Decrypter interface, use ACMultiPlex's Rip DVD interface to add segments by entering their VTS, PGC, and Angle numbers. You can enter ranges in any of these fields (such as "3-5"), including in more than one field at a time. The radio buttons for "even" and "odd" are also useful for certain discs due to the use of alternating, short "dummy" tracks.</p> <p>Enter the full program title into the series title box. If you are ripping more than one DVD of a series, then be sure to use a consistent name (including capitalization, and punctuation). A good guideline to using the "season" field is to increment the "season" when the episode numbering would reset to 1. A good guideline to using the "volume" field is to refer to retail SKUs. A retail SKU may have multiple discs in it. However, in some cases a title will have been re-released in more than one volume configuration, so the choice of volume numbering could be arbitrary.</p> <p>If your event is only showing a non-first season for a title, or aren't starting from the first episode, you may want to put the details in the series title because this will be displayed in the on-screen countdown timer, and your event's attendees might want to know that a series is not starting from the beginning.</p> <p>For single movies, you can just enter season 1, volume 1.</p> <p>The title and numeric info will be saved in the parameters.xml file, and the metadata "accompanies" the video along the encoding process.</p> <p>The name of the folder generated for the DVD will be an automatically sanitized form of the series title, truncated to 64 characters. Therefore, if multiple series have similar titles, they must vary within their first 64 characters. However, the full title, however long, will still be stored. All letters are converted to lowercase, and all non-alphanumeric characters, including spaces, are changed to single underscores. Hyphens are then used after the sanitized series title to show the numeric data.</p> <p>For example, this data will become:</p> <p>Series: Ah! My Goddess (TV)<br /> Season: 1<br /> Volume: 2<br /> Disc: 1</p> <p>folder name: ah_my_goddess_tv-s1-v2-d1</p> <p>Click "Rip Segments" to start, and you'll see DVD Decrypter get launched repeatedly while it rips each segment in sequence. If you have a copy of Open/Close CD, then the disc will eject when it's done. Otherwise, a pop-up message will be displayed.</p> <p><strong>After</strong> encoding, but not before (due to storing of filenames in encode scripts), you can rename the encoded file and folder at will (except for the ID appended to the end), and/or change the data directly in the XML files.</p> <p>The rip folder <strong>cannot</strong> be moved or renamed due to stored paths, but the data in the XML file <strong>can</strong> be changed—just don't rename the folder yet (you'll need to remember to do it later if you want the folder name to have "accurate" info). If you have already set up the encodes, then you must also change the XML data in the encode output folders.</p> <p>If the rip is interrupted, or there's a problem and you need to restart, manually kill the Rip tool, then exit or kill DVD Decrypter. Then manually delete the rip folder before starting over. (If you forget to delete it, ACMultiPlex will warn you.)</p> <p>Rip creates an empty text file "done-rip.txt" as a flag in the "dvd" folder in each named disc folder, when it is done ripping all the segments.</p> <h2>Indexing (unattended batch step)</h2> <p>When you have done all the ripping you're going to do for the moment, run Batch Index. This indexes, demuxes, and extracts subtitles from the ripped data. Occasionally, DGIndex or VSRip may interactively notify of errors, blocking the batch. Usually there's nothing you can do about these, so just acknowledge the errors to continue. When you set up the encodes, you'll see if there are any problems.</p> <p>This step of Batch Index only touches folders with the "done-rip.txt" file in them (see above). When done, it places the empty text file "done-index.txt" as a flag in the same location.</p> <p>This step usually takes only a tiny fraction of playback time for each title, so is pretty fast.</p> <h2>Encoding</h2> <p>Setting up the encodes uses the tool "Encode".</p> <p>Start the tool. Only discs which have completed indexing (the folders with the "done-index.txt" file in them) are shown.</p> <p>Select a disc and click "Encode". The encoding window lists the segments that were ripped from this DVD in the upper left. In the lower left, there is a list of time segments that you will define (obviously, initially empty). Here, we are using the informal, non-technical term "segment" to refer to tracks ripped from a DVD, and "time segment" to refer to a defined subset that is queued for encoding. You can have one or multiple time segments per DVD segment. But each instance of this window only works on one segment at a time. Often, you will define a single time segment per segment—the entire duration of the track. (The notice in the lower left explains this: Just leave all the start and end time fields "0" to indicate this.) But, sometimes, a DVD segment will have all the episodes in sequence. You will want to use the previewing functionality to find the episode breaks, and define multiple time segments, one per episode. When you add a time segment, the ordinal number is automatically incremented (though you can change it), and the values for the "end" time are moved to the "start" time. The "end" time values are zeroed to remind you to fill them in. Just find the next episode boundary in the preview window. For the last episode, just look at the video length in the preview window and enter that for the end.</p> <p>When you have defined the one, or all, time segments for a given DVD segment, don't just click the next DVD segment. Remember, each instance of this window only lets you work with one DVD segment at time. You must now click "Encode" and they are saved, queued for encoding. Select the same DVD again and click "Encode" to go back and work on additional segments. (You can actually create more time segments from the same segment, if you wish. To remind you which you last did, "(last encoded)" is displayed.) (<strong>Tip:</strong> To do another encode on the same DVD, just click "Encode" again. The same disc remains selected, even though because it does not have the focus, it does not appear selected.)</p> <p>If you need to remember what encodes you created, or delete one, enter the "encode" folder for that DVD. There is a separate folder for each encode. You can delete any of them. <strong>Also</strong>, you must enter the destination folder for the encodes and delete that folder per encode. <strong>Tip:</strong> If you close and re-open the encode details window, the number displayed in the "ordinal" field is the number <strong>after</strong> the last encode you <strong>saved</strong>.</p> <p>The file/folder name for the encoded file will include the series name, season number, type, and ordinal, but not the volume or disc. However, all of this data is still kept in the XML file that "accompanies" the encodes, if you have the useFolderPackage setting enabled.</p> <p>For example: ah_my_goddess_tv-s1-episode6-acmupx############ (or: ah_my_goddess_tv-s1-episode6 if you have useFolderPackage disabled)</p> <p>An ID number (48-bit (6-byte, 12 hex characters)) is appended to the filename. You can rename the folder and file at will <strong>except</strong> for the ID. You can even rename the folder and file differently so long as the ID is the same. (Though there's probably not a good reason to do this.) But the ID <strong>must</strong> remain the same once you start the scheduling process.</p> <p>You can "import" a file you create outside of ACMultiPlex by hand-writing your own XML file, and making up your own ID number. They are not stored in a database or anything; the "database" is the live enumeration of the folder containing folders with "acmupx" IDs in their name. (Sorry; this will be easier in future versions of ACMultiPlex.)</p> <p>Here are more details on the encoding interface:</p> <p>The settings in the right half, plus the next time segment "type" and "ordinal" are remembered from encode to encode, and even from disc to disc. Usually, within a series, you will use all the same parameters, including subtitle and audio track. Once you switch to a new series, you may want to click "Reset Settings" to return everything to the default.</p> <p>Usually, which segment corresponds to which episode, or episodes, will be obvious. But sometimes you have to work a bit to locate it. Sometimes there are apparent duplicates on the disc; if they really appear to be the same, just use one and don't worry about it. If content exists in two angles, this is usually for the purpose of rendering on-screen credits or other text in different languages. If this is the case, you may want to choose the angle that corresponds to the same language as the audio track you are playing. On some discs, this is what automatically happens when you select the audio language track in the menu (some discs of this type even prevent you from switching the audio or angle in the program to make sure they are linked correctly in this manner; others let you choose for the "power users" who want to change it). If there is a complex arrangement of episodes, or you suspect they're out of order, and you are lucky enough to be working with anime, then look for the title card near the beginning of each episode. Or, alternately, if they are in one title, look for the preview of the next episode near the end. Often, they are numbered. (If you are working with anime, there are web sites that index episode numbers and titles.) On very rare occasion, episodes which look "neatly" arranged on the DVD will, in fact, be out of order. Again, this is extremely rare; usually there will be "warning" of this because of weird arrangements of titles or lengths.</p> <p>The audio track descriptions indicate the number of channels and bitrate. You'll need to preview the audio to identify the language. However, you can use the video preview in most cases to also preview the audio. Sometimes, the same language is available in more than one track, in both 2.0 and 5.1 versions, or in both AC3 and DTS versions. You'll probably want to favor DTS over AC3, and favor 5.1 over 2.0. Another type of audio track you will sometimes find is commentary tracks.</p> <p>If you are working with anime, then if you are encoding an English dub, be sure to still select the subtitle track for song and sign translations, if one is available. Also, regarding the occasional problem with mistimed subtitle tracks noted below, you'll need to remember to especially beware of this with song and sign translation tracks.</p> <p>If you are encoding a subtitled track for a foreign language program, and see two seemingly identical (or close in number) tracks, beware: one may be a closed captioning track (with captions for off-screen speakers, and sounds). Check the preview in many places to compare the two tracks, to make sure you're selecting the track you intend.</p> <p>Occasionally, the ripping chain used by ACMultiPlex result in mistimed subtitles. Sometimes, this can be fixed by shifting the subtitles by a fixed amount. (Other times, the offset actually changes mid-video.) Enter the amount in these fields, tweaking by the video preview, to fix this. Please note, the audio is sometimes slightly desynced in the preview (by a fraction of a second). This particular effect does not carry over into the actual encode; just the preview. (Future versions of ACMultiPlex may fix this.) When timing a mistimed subtitle, adjust by the video if possible rather than the audio.</p> <p>The frame aspect ratio is automatically detected, rather than remembered. It is rarely wrong, if ever. Clicking "Reset Settings" also automatically detects it. However, in case it is wrong, you can change it.</p> <p>The active aspect ratio is used when the video is further letterboxed or pillarboxed in the video. You can enter the actual aspect ratio of the image, and it will be cropped by the appropriate amount (on either side). Make sure to check to be sure subtitles were not erroneously placed in the matte area by the DVD producers. This is a faux pas, but this error exists on DVDs so do some spot checks for subtitles that sit outside the video.</p> <p>Occasionally, DVDs will be "underscanned"—a fancy word that basically means they put black borders around ALL the edges—not because the aspect ratio is different than the frame aspect ratio, but because they don't want some viewers' overscanning TV sets to cut off some of the visible artwork. (Ironically, of course, this only serves to encourage the continued behavior of having TVs use overscan.) If you'd like, you can set an overscan on these titles to crop off the black area.</p> <p>The deinterlacing choice is tricky. For most titles, it's going to be TDeint, and keep the "Attempt inverse telecine" checkbox checked. But knowing when to use different settings is tricky.</p> <p>First, preview the video. If you see "combing" (alternating scanlines in a single frame that actually came from different film or camera frames--an ugly deinterlacing artifact), then it may be necessary to use a different method. But sometimes you won't know, and need to infer.</p> <p>A bit of background. Many or most titles are sourced from film, or "virtual film" if done on computers, or run through a film simulation filter. This means there are 24 camera shots per second (occasionally 30). Usually, when 24fps content is transferred to DVD, it is done in a manner known as "3:2 pulldown". This means film frames are alternatingly shown for 3 and then 2 TV fields (do the math and you'll see this expands 24 to 60). These fields are interlaced. Both TDeint and TIVTC analyze the image and "reconstruct" the original 24fps by weaving the scanlines with the appropriate fields to create back the original frames. After deinterlacing, there are 60 frames per second. If it is originally 24fps content encoded with 3:2 pulldown, this means the 60fps stream contains a film frame shown for 3 TV frames, then the next film frame for 2 TV frames, in an alternating pattern. This is ideal. Some programs, especially TV shows and anime also often contains CG and overlays at 60 fields per second. Some TV shows may have been shot with a video camera and be entirely 60 fields per second. TDeint preserves the 60 frames per second, keeping the full motion of this content. TIVTC does not, blending them together. For this content, you'll want to select TDeint, and keep "Attempt inverse telecine" checked.</p> <p>There's a different alternative though. Sometimes, for whatever reason, film-based anime is transferred to video using a cheap machine that "unlocks" the video recorder from the film projector, and does not use 3:2 pulldown. Instead, each TV field on the DVD contains a continuous blend of two adjacent film frames. Every single 60i field has a different blend composition. This has a softer look. You don't see the blends at full playback speed but it's easy to see if you pause the video. (This technique was quite common for 80s and 90s anime, but is rare for anime produced in the 00s.) The blends produced from using such a telecine machine have a very characteristic look. A good way to check for this is to pause the preview and frame advance. You will see the difference between the 3:2 pattern, and the blend pattern. If you see such a title, still select TDeint, but uncheck "Attempt inverse telecine". TIVTC is definitely inferior on these titles, but TDeint (with the checkbox unchecked) was built for this.</p> <p>So, when to select TIVTC? Two situations: (1) Once in a great while, TDeint will just find a title it doesn't work well on. If you get weird artifacts you can't explain with TDeint, with or without the "Attempt inverse telecine" checkbox, try TIVTC. (2) Another situation where you might want to use TIVTC is that TIVTC has significantly lower computation requirements so the encode will finish much faster. For pure 24fps movies, it will still look good, sometimes as good as TDeint. 60i segments will be a bit blurry though as the motion is reduced. TIVTC always produces a 24fps output.</p> <p>TDeint with "Attempt inverse telecine" selected occasionally causes credits that scroll at 60 fields per second to be incorrectly detected as 2:2 pulldown (original 30fps content). Whether you want to deselect "Attempt inverse telecine" to make the credits look better, perhaps at the expense of the main program, is up to you.</p> <p>The "Dot crawl and rainbow noise reduction" is not needed on most programs.</p> <p>Here is information that may be helpful to know what to look for:</p> <p><a href="http://en.wikipedia.org/wiki/Dot_crawl">http://en.wikipedia.org/wiki/Dot_crawl</a><br /> <a href="http://www.michaeldvd.com.au/Articles/VideoArtefacts/VideoArtefactsDotCrawl.html">http://www.michaeldvd.com.au/Articles/VideoArtefacts/VideoArtefactsDotCrawl.html</a></p> <p>This option is computationally expensive so only check it if you actually see the problem. Check the preview to see if it improves.</p> <p>The field order is automatically detected. On occasion, it may be wrong. There are two possible symptoms of this: (1) Fields will alternate in time, so fields that in time should be displayed like: 1, 2, 3, 4, 5, 6, 7, 8; will display as: 2, 1, 4, 3, 6, 5, 8, 7; This will look stuttery and also will look like deinterlacing combing artifacts. It will look like this regardless of whether "Attempt inverse telecine" is selected. Also, it will be throughout the length of the title, rather than at arbitrary or limited points, like deinterlacing artifacts would be. So if you resorted to selecting TIVTC as the deinterlacer because neither TDeint mode worked, first try flipping the field order and try with TDeint again, and see if that fixes it. The other symptom (2) is: You will not see an obvious stuttering or combing problem, but you will see little subtle combing effects in little places in the image that look subtly different than normal deinterlacing artifacts. If you see this, as with the first symptom, see if reversing the field order fixes it.</p> <p>Note: In case the field order checkbox auto-detection is not correct and you need to manually select the other setting, this is not "remembered" from segment to segment, disc to disc. You'll need to manually change it each time.</p> <p>Occasionally, when previewing, you will get an error relating to the audio. This may happen with 5.1 AC3 tracks (as opposed to 2.0), or with DTS tracks. You can still preview with the video in this case. The stand-alone audio preview uses a different method to playback the audio (the file plays directly rather than being decoded through AviSynth's DirectShow-based chain) so that should always work. To prevent the error, uncheck "Include audio preview with video".</p> <p>When previewing the video, here are a few tips that may help:</p> <p>When Media Player Classic is paused, you can frame step forward (but not backward) by pressing right-arrow. This frame-steps by the output deinterlaced frames. So if you are using TDeint, it is 1/60 of a second. (With TDeint, each frame always corresponds exactly to the visual content of its original DVD field, and possibly an adjacent field if it's weaving when it shouldn't due to erroneous inverse telecine detection (comb artifact).) If you are using TIVTC, it is 1/24 of a second. However, there seems to be a bug in Media Player Classic. Sometimes frame-stepping stops working. When that happens, it will jump by a second or so when you press right-arrow. This may not be obvious so you need to be aware of this bug and spot when it's happening. You may be able to fix this by seeking to another location in the file and back, but usually, just exit Media Player Classic and restart the preview.</p> <p>When Media Player Classic is either playing or paused, you can jump forward or backward 5 seconds at a time by pressing CTL+left-arrow and CTL+right-arrow. This never seems to break, unlike frame stepping. You'll use this constantly to find edit points.</p> <p>Press CTL+G to display the time jump dialog. This lets you see where you are, and enter a new time. Again, there seems to be a bug here. About 5% of the time, when you enter a new time, Media Player Classic will say you entered an invalid time or it can't parse it, even though you entered it perfectly. I have found no pattern or repro steps for this; it's seemingly at random. Just exit it and restart the preview. Another bug is that it will not give an error, but mis-parse what you entered as the wrong field; so if you enter 0:15:05 (0 hours, 15 minutes, 5 seconds), it will parse it as 15:5:0 (15 hours, 5 minutes, 0 seconds); you'll see this because it will just jump to the end of the file.</p> <p>There are a number of problems you may experience. Here are details and notes on some of them, and what to do if they can't be fixed (which they usually can't at this point):</p> <p>Sometimes, a subtitle track that was on the DVD will be missing. This usually corresponds to an error you may have seen during the first batch processing stage.</p> <p>On occasion, when you preview, Media Player Classic won't start, but if you check Task Manager, you'll see it's pegged at maximum CPU and rapidly allocating memory. This is an unknown problem, but is not random, but has something to do with that track. At this time I don't know of a solution.</p> <p>On occasion, the audio track will start after the start of the video. Currently, ACMultiPlex does not provide an interface to enter an audio delay offset. (You can do it by editing the VirtualDubMod script file.)</p> <p>When you are done creating all the encodes for a disc, click "Mark Done". Queued encodes won't be processed until the disc is marked done. Doing this places an empty text file "done-allqueued.txt" as a flag into the "dvd" folder for that disc.</p> <p>If you want to keep a disc but won't be encoding it for awhile and don't want it cluttering up the list, select "Skip". This places an empty text file "done-skipqueued.txt" as a flag into the "dvd" folder for that disc. When you're ready to encode it later, just delete this text file, restart the Encode tool, and it will reappear in the list.</p> <h2>Encoding (unattended batch step)</h2> <p>Once you have done all the encodes that you want to do for now, run Batch Encode. This launches VirtualDubMod for each title to actually create the final video files. Errors requiring your interactive attention are rare at this stage.</p> <p>Batch Encode only touches folders with the "done-allqueued.txt" file in them (see above). When done, it places an empty file "done-encode.txt" as a flag into the "dvd" folder for that disc.</p> <p>Encoding may take quite a bit of time depending on the speed of your computer.</p> <p>When you start the encoding, check the bitrate in the XviD status window. The configuration file xvid.reg included with ACMultiPlex sets up the encoding settings. If the bitrate hovers around 500Kb/s, then the settings in xvid.reg have probably not been applied. Kill Batch Encode, abort and exit VirtualDub, delete the incomplete video file, run "xvid.reg" to set the settings, and re-run Batch Processor. The bitrate should now roughly hover around 5Mb/s.</p> <p>If disk space is exhausted during encoding, you'll need to go in and delete the empty video files generated, and delete the "done-encode.txt" files so that the encodes are repeated. (Sorry.)</p> <h2>Verifying</h2> <p>When the encodes are finished, here is a checklist you might want to use to verify your videos:</p> <ul> <li>Confirm that the episodes you intended were encoded.</li> <li>Confirm that the language/audio track you intended was encoded.</li> <li>Confirm that the subtitle track you intended was encoded. Not just the language, but also subtitle vs. closed captions.</li> <li>Ensure that subtitles are timed properly. (Check near the beginning and end of the video.)</li> <li>Ensure that the audio and video are synchronized. Check a location with dialog or on-screen sound effects. (Tip: If you were configuring encodes over Remote Desktop, you likely could not have noticed such an error during encoding, so this is the only chance to catch it.)</li> <li>For titles with a non-default active aspect ratio, ensure the subtitles are not cut off and all within the video frame.</li> <li>Ensure that the episode numbers are the correct episodes (if you're lucky enough to be encoding anime, then check the title cards).</li> <li>Ensure that the file is trimmed properly. (Check video length for sanity, and near the beginning, and end.)</li> <li>Spot check in a couple of places (opening, main content, ending credits) for deinterlacing and/or field order artifacts.</li> </ul> <p>If any video needs a re-encode, make sure to go back and delete the "done-encode.txt" and "done-allqueued.txt" files, and delete the bad encode folder.</p> <h2>Scheduling</h2> <p>Each computer's playback schedule is stored in a single data file, schedule.xml, in the root of the folder containing the available encoded video files.</p> <p>The primary unit of the schedule is the "program". A program is a block of episodes or other types of segments which play back-to-back without pause, but whose start is announced by a program title and countdown timer. Each program starts at a specific time, and the segments it contains play back-to-back until the program is complete. Each segment in a program does not have its own individual scheduled start time, such being determined by the program's start time and how long it takes the prior segments to play.</p> <p>Each segment which has been scheduled in a program—a "scheduled segment"—corresponds to a single available encoded video file. A video file could be scheduled at more than one point in the schedule, in which case they are still considered distinct "scheduled segments". This is the reason that all schedule data is stored in a single location, rather than within each encoded video folder—because a video file may be scheduled at more than one point. It is also possible, in the case that a video folder is accidentally moved off of a computer or deleted, that a scheduled segment will point to a missing file. In this case, it will be skipped over during playback, but the fact that it was scheduled remains stored, so if the video folder is moved back, it will work no differently than if it had never been deleted. The Schedule Editor and Playback Controller will also display warnings if you launch them with a schedule that includes missing video segments.</p> <p>Schedule Editor will examine the info.xml file located within each video folder to determine the reported time of playback, and the details of the video files. Thus, the editor user interface will inform you, in the "balance" column, in minutes, how far behind (negative number) or ahead (positive number) each program is. A negative number indicates the program will start late; a positive number indicates how many minutes of gap time will be before it. It will <strong>not</strong> start early. This "balance" value <strong>does</strong> incorporate delay times entered for each program.</p> <p>The delay time for each program changes the effective start time, but does <strong>not</strong> change the program order. The program order is always determined by the primary schedule time. This fact is the reason there are two values for the start time. You would change the scheduled time only if there is an explicit change of order in your event's schedule—for example, two programs are swapped in time of day. If an automated theater room is merely running behind, or needs to be running behind to accomodate a pause (for example, somebody is speaking in the room, or a live playback DVD is going to go longer than expected), than change only the <strong>delay until</strong> time. For example: Even if the delay until time is set so late that it is after the scheduled start time of the next program, it will still play first. Whereas if you had changed the scheduled time in this manner, that would change the order of playback.</p> <p>The delay time cannot be set prior to the scheduled time.</p> <p>Thus, there are three cornerstones of the playback system in ACMultiPlex.</p> <p>1. The system will never cut off the previous program, even if the schedule is running behind and the scheduled or "delay until" time of the next program is reached.</p> <p>2. A program will never start before the later of its "scheduled" or "delay until" time.</p> <p>3. Programs will never play out of order based on their "scheduled" times. Changes to the "delay until" times cannot change the order.</p> <p>and, implied by the above, 4. A room running late will "catch up" during slack time.</p> <p>Even if the schedule is behind and a program is starting late, the countdown timer will still appear for 30 seconds, to announce the program's title to the audience.</p> <p>There is one exception to point (1) above. The checkbox for a program to force terminate the previous program <strong>only</strong> works in a specific case. It only applies to the situation where you manually start VLC or Media Player Classic, say, to play a DVD, or a just-received file that is not being set up in the schedule system. Normally, while the countdown timer is operating, the system will check if a copy of VLC or Media Player Classic is running, and delay a program start if so (even if you manually started them yourself). Once the start time of the next program is reached, it will start within a few seconds of you exiting either media program. But if you set this checkbox, then the media programs will be terminated at the appropriate time.</p> <p>Basically, you will hardly ever want to check the force terminate box, as it's "dangerous". If you need to manually play a DVD, it's better to plan on returning to a room to exit the DVD player (and if you forget, the next program won't start). This is also true because if you are only supposed to be playing a certain number of episodes, you can be there to manually exit the player at an episode break. Having it terminate in the middle of an episode, even an "extra" episode that is more than the schedule said would be playing, may be frustrating to the audience. However, if you are playing a movie feature, or all the episodes on a disc, and are <strong>certain</strong> there is adequate time before the next scheduled program start, you can check this box.</p> <p><strong>When editing the schedule, make sure to click "Save" if you modify a program setting, like the "force terminate" box or a delay time.</strong> Otherwise your changes will be lost without warning. (Sorry.)</p> <p>The functionality to disable "announce title" is not yet implemented. Thus, it has been grayed out for now, locked to its default "on" setting.</p> <p>ACMultiPlex tracks the "last played" segment. This is the last segment that <strong>finished</strong> playing. If you close Playback Controller while it's playing a segment, then the current segment won't be the "last played"—it will be the one before it. But if you close VLC first, then Playback Controller will immediately launch the next segment, thinking the current segment has finished, and the one you closed will not finish playing if you restart it. (Thus, close Playback Controller first if you need to edit or check the schedule!) You can reset or change the last played segment through Schedule Editor. Remember, if you clear it, <strong>the schedule will play from the beginning, even in the middle of your event</strong>. Basically, it thinks it is way "behind", and trying to catch up. This is a consequence of points (1) and (4) above.</p> <p>Schedule Editor also tracks the actual time it took to play each segment. (If you move the "last played" marker earlier, and segments repeat, it is the duration of the most recent playback instance that is reported.) This is very useful for troubleshooting at a live event if there is a report to your staff that an automated theater room did something wrong. Neither tool automatically behaves any differently if the actual playback duration is different (much more, or much less), than expected. (There is nothing it really could do—if a file is bad, or there is an unexpected bug, there is no way it could know what is wrong.) It does <strong>not</strong> wait extra time if a file takes less time to play than expected, but will just launch into the next segment. It will be up to people at your event to observe and report a problem in this case. (If ACMultiPlex ever implements network features, then this would be an opportunity to send an automated alert.)</p> <p>You cannot run Schedule Editor and Playback Controller at the same time. If you attempt to do so, either one will refuse to launch, and display an error. This is because both need constant read and write access to the schedule.xml file, and would otherwise corrupt each other's data if this safeguard were not implemented.</p> <p>Whenever either tool saves the schedule.xml file, it first renames the current one to a backup file, with the date and time in the filename. On rare occasion, a crash could happen during the save process. In this case, when you launch either tool next, there may not be a valid schedule at the filename schedule.xml. A warning is displayed in this case. In this case, you will need to copy one of the backups as schedule.xml.</p> <p>All times are stored internally as UTC. You will need to make sure that your computer is up-to-date on time zone definitions, is actually set to the proper time zone and has properly applied daylight saving time adjustment, and is set to the correct time. The user interface for Schedule Editor translates between local time and UTC. If you need to view or edit an XML file by hand, remember this. If your event is occurring over the transition out of daylight saving time and you need to enter an "ambiguous time", set your environment's time zone to UTC to input these times. You can then switch back to your local time, if you wish, and times in this window will be displayed ambiguously. Make sure not to save any programs with an ambiguous time or they may be changed. If you have scheduled times for your event, and then your jurisdiction changes daylight saving time rules crossing the boundary of your event dates, or decides to change time zone rules, but your event is pegged to local time, you need to understand that this causes the physical UTC times that your programs need to play at, to change. You will thus need to adjust the times for your entire schedule. (Don't you love daylight saving time, and frivolous changes to its schedule?)</p> <h2>Event Procedures</h2> <p>The information in this section may be particularly useful for situations you may encounter at your event.</p> <p>If you need to diagnose a video problem at your event, you may need to stop playback. Stop Playback Controller first, then stop the video. This is because, as described above, ACMultiPlex's Playback Controller stores a marker of the last segment to complete playing first, so if you stop VLC first, it thinks that that segment has successfully completed. If you make a mistake and disturb which segment should be playing, you can manually set the "last played" marker in Schedule Editor.</p> <p>Remember, as described above, Schedule Editor and Playback Controller cannot both be running at the same time.</p> <p>When restarting Playback Controller, to avoid screen clutter, minimize its console window once you observe it is running ok and hasn't reported any errors needing your attention. This presents a more professional experience for your event audience, as they will briefly see the computer's windows between segments and programs. It is better for them to see just an empty desktop.</p> <p>Position the mouse along the right edge of the screen, not near the bottom. The playback software will hide it after a few seconds anyway, but if your computer is sitting where the mouse can possibly be bumped, it will be less visible. Positioning it along the bottom may show the media software controls or the Windows taskbar, so don't do that.</p> <p>If by chance you encounter a playback problem, you have the option of changing the primary player to Media Player Classic instead of the default VLC. To do this, open settings.xml in and change the path in the attribute "pathPlaybackExecutable" to the Media Player Classic path, and make sure to set "playbackExecutableIsMPC" to "True". (If you don't, it won't exit properly and playback in the room will be stalled.) If you switch back to VLC, remember to set "playbackExecutableIsMPC" back to "False". Media Player Classic has undergone far less testing in ACMultiPlex than VLC, but the option is there if needed.</p> <p>One of the most common things you'll need to do is enter a room to playback a live DVD. This may happen either as planned, or to replace a wrongly-encoded file with a DVD instead if you are called in on a problem report.</p> <p>If you know you need to do this in advance, you can create a "dummy" video containing just a second of black screen, in the schedule in place of programs where you know you need to play a live DVD. The purpose of this is so the countdown timers indicate that that program is playing at that time. (Otherwise, they would say the program afterward, with a long countdown (including the length of the "live" program), which may falsely indicate to your event audience that the room is effectively "closed" for that long.) If you do this, then when planning to play a live DVD, wait until the timer reaches zero. The video will play for 1 second, then the countdown timer to the next program will start. At this point, insert the DVD, launch VLC, and play it. Be sure to return in advance of the time when it will end, and stop the playback at an appropriate location (like on an episode boundary). You can then exit VLC, and the countdown timer to the next program will remain on-screen.</p> <p>If you encounter an encoded file that is wrongly-encoded—for example, corrupt, wrong language, audio, video, or subtitle sync errors—you might need to play it back from its original DVD. If the file is watchable, but has minor errors, you might keep it going, and set the DVD to the same point in time. If it's unwatchable, you can pause it. When the live DVD becomes available, if the program is near the beginning, you can decide whether to restart it from the beginning or not. However, if this will too severely impact the schedule, you might decide not to do that. You can check Schedule Editor to see how behind you are. <strong>Hint:</strong> Enter the current time in the "delay until" field, and save the change, to get an instant view of how much the room will be delayed in the coming hours and for how long. When playing a live DVD unexpectedly in this manner, it will be easiest to just quit Playback Controller. Then, quit VLC, and restart it and play your DVD. As with the situation with a planned live DVD playback, be sure to return in advance of the time when it will end, and stop the playback in an appropriate location. When you restart Playback Controller, it will attempt to replay the "bad" video files. Exit VLC on each one where you actually played it from the DVD, in order to advance.</p> <h1>Appendix A: Revision History</h1> <ul> <li>2010-04-24 – v0.5.0.1: Bugfix release. <ul> <li>Included forgotten file: xvid.reg</li> <li>Fixed bug where some of the command-line tools would return a non-zero exit code even if there were no problems</li> <li>Slightly changed a few default settings in settings.xml to be more universal (you still need to review them)</li> <li>Documentation changes <ul> <li>Added important information about required and recommended configuration settings for VLC</li> <li>Added a tip for configuring DVD Decrypter for first-time use, and an instruction to disable the error every time it is exited</li> <li>Added ffdshow-tryouts to the list of optional third-party components as installing it seems to fix audio previewing problems</li> <li>Clarified the name of one of the required components (VSFilter), and indicated the latest version tested</li> <li>Noted updated compatibility with the latest versions of VirtualDubMod, DGIndex/DGDecode, and VSFilter</li> <li>Added information about not needing to be an Administrator user</li> <li>Added recommendation to change your environment to use ISO-8601 date and time formats</li> <li>Expanded "Known Issues" list</li> <li>Slightly edited a few sentences for clarity</li> </ul> </li> </ul> </li> <li>2010-04-12 – v0.5: First public version.</li> </ul> <h1>Appendix B: Known Issues</h1> <p>Coming in a future version(s):</p> <ul> <li>Many DVDs released from a certain anime publisher in the last year have a problem where they resist ripping; but when using AnyDVD, everything works <em>except</em> all episodes except for the first episode have an A/V sync offset of a couple of seconds. ACMultiPlex will hopefully have a simple fix for this.</li> <li>Will provide an automated tool to create the folder "wrapper" package and info.xml metadata file automatically, for video files you want to play back in ACMultiPlex, but that were not encoded in ACMultiPlex</li> <li>Investigating use of H.264 as the preferred codec instead of XviD</li> <li>Investigating additional deinterlacing and processing plugins to expose and offer in the user interface</li> <li>Investigating possibilities for audio volume normalization across title</li> <li>Explicit support in the schedule editor for programs where you know you will manually playback a title</li> <li>Will eliminate the slight audio/video de-sync on some titles when previewing audio and video together (this issue does not affect encoding, only previewing)</li> </ul> <h1>Appendix C: Project History</h1> <p>This project was born out of the need to run automated theater rooms at Sakura-Con in Seattle, WA, in 2006. Sakura-Con has used automated theater rooms ever since then, with 4 to 6 rooms (the number varied year-to-year) running 24 hours over the entire 3-day convention. Taking into account what was learned in 2006 from using Gordian Knot to rip and encode, ACMultiPlex was born in 2007 (though not yet named) to create a fast and easy way to rip and encode all the con's DVDs. The author has improved the software each year in preparation for each year's convention. 2010 was the first year that the playback "half" of ACMultiPlex existed in its current form. Prior to that, some combination of Windows scheduled tasks, or very hackish C# scripts that did not resemble the present form of ACMultiPlex, were used. The countdown timers have been used since 2007, controlled by the aforementioned hackish scripts prior to 2010.</p> <p>After the improvements to the software that were made for Sakura-Con 2010, the author felt that a qualitative milestone was reached. This belief was borne out at the 2010 convention with the almost perfect uptime, for the first time, of the automated theater rooms. The software has now been assigned a name and is being released to the world. Hopefully, other conventions and events can benefit from it.</p> <p>The "AC" in ACMultiPlex stands for, you guessed it, "anime convention". The "MultiPlex" part of the title emphasizes the scale and automation this software is designed to facilitate.</p> <h1>Appendix D: Credits and Contact</h1> <p>The author of ACMultiPlex is Jeff Tyrrill.</p> <p>Project web site: <a href="http://acmultiplex.sourceforge.net/">http://acmultiplex.sourceforge.net/</a> (or, if the latter has not been updated yet: <a href="http://sourceforge.net/projects/acmultiplex/">http://sourceforge.net/projects/acmultiplex/</a>)</p> <p>Author contact: <a href="mailto:mail@jeff-tyrrill.com">Jeff Tyrrill</a></p> <p>Support: I can provide support as time allows, however, cannot guarantee support in any particular form or in any specific case. This software is targeted toward advanced users, and therefore I cannot answer beginner computer questions, nor "teach" how to use this software (this documentation should provide a wealth of information), nor "teach" general knowledge about the video conversion realm. Specific and focused questions and comments are much more likely to receive an answer, or a detailed answer. If you are interested in using this software for your event or convention, I can answer questions extensively about my experience using it.</p> <p>If you are using, or have used, ACMultiPlex at your event, I'd love to hear from you about your experiences.</p> <p>I don't work on ACMultiPlex full time, and thus unfortunately cannot commit to specific timelines on improvements or future versions, but ACMultiPlex is very likely to receive some future enhancements.</p> <p>ACMultiPlex is not necessarily affiliated with or endorsed by other named persons, organizations, or pieces of software, including but not limited to references in the "Thanks" appendix, and any references to these do not imply, and are not intended to imply, such affiliation or endorsement.</p> <h1>Appendix E: Thanks</h1> <p>I'd like to thank ANCEA, the organization that produces Sakura-Con, for supporting the goal of top-notch audio/video quality, and top-notch automation, in its video theater rooms, and thereby providing an excellent environment for the development of this project and this software.</p> <p>I'd like to thank the developers of all the various tools that ACMultiPlex relies on. Also, I'd like to thank the developers of Gordian Knot for demonstrating the set of components for creating an end-to-end rip and encode chain; and tritical for creating TDeint, pushing the state-of-the-art in deinterlacing, unmatched in a single plugin or component as far as I know in any easily consumer-accessible software or device. TDeint has been used to encode almost every video shown at Sakura-Con from 2006 to 2010.</p> <h1>Appendix F: License</h1> <p>ACMultiPlex</p> <p>Copyright © 2007-2010 Jeff Tyrrill</p> <p>Permission is hereby granted, free of charge, to any person obtaining a copy<br /> of this software and associated documentation files (the "Software"), to deal<br /> in the Software without restriction, including without limitation the rights<br /> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br /> copies of the Software, and to permit persons to whom the Software is<br /> furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in<br /> all copies or substantial portions of the Software.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br /> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br /> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br /> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br /> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br /> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN<br /> THE SOFTWARE.</p> </body> </html>