Wiki Guides
|
KB /
The Art of Timingby QuarkboySummaryIn this short guide I will describe an efficient, accurate method of timing fansubs using Sabbu (although everything in this document can be applied to other timing programs as well). With the tips in this guide and a lot of practice you should have all the tools necessary to time just as good as anyone out there. OutlineA. Software 1. Timing Programs
a. Sabbu
b. AegiSub
c. Older Programs
2. Video Filters
a. Avisynth
b. VSFilter
c. Virtualdubmod
B. Getting started 1. Loading the Audio data
2. Timing Raws, Loading the Video, Keyframe data
3. Loading the Script
C. Rough Timing 1. Line Timing
a. Tips/tricks
2. Splitting Lines
3. Stylistic Concerns
a. Lead-in/Lead-out
b. Line linking
D. Fine Timing/Scene Timing 1. What is Scene Timing?
2. Second Pass Scene Timing
a. AegiSub's timing postprocessor
3. First Pass Scene Timing
4. Reverse Bleeds
5. Close Decisions
6. Frame timing manually
7. Other fine timing issues
E. Checking Your Work 1. Extremely Basic Avisynth usage
F. Timing Fast 1. Keyboard shortcuts
G. F.A.Q. A. SoftwareThere is a wealth of free software that is relatively easy to use and stable to time subtitles to video. In this section I'll go over the programs used in this guide as well as a few other, common programs that may be useful in more specialized circumstances. 1. Timing ProgramsThe timing program is where a timer spends most of his time (haha!). It can load an audio (and sometimes, video) file, display a waveform of the audio and lets you easily select a range of audio to play. Then it will copy the times of the range into a file that contains the subtitles. a. SabbuDownload sabbu at http://www.sabbu.com. Currently, the most recent released version is 0.3.0, however I strongly recommend downloading the beta 0.3.1 available at http://www.orcra.net/sabbu-0.3.1-BETA9.exe. This is a quite stable version. Sabbu is a fast, easy to use timing program, with the ability to load and display key frames from an avi file. It cannot do karaoke timing (which I am not covering in this guide) and it has only limited typesetting features, but it's currently my favorite for basic timing. b. AegiSubhttp://aegisub.cellosoft.com/ The newest of the timing programs, and also the most powerful. It can do karaoke, has many typesetting features, and also a powerful (but still buggy, IMO) timing post processor that can be a quick way of cleaning up messy scripts. The download link at the site is currently broken, but here is the latest version: http://malakith.net/amz/aegisub/ c. Older ProgramsThe oldest timing program, on whose file format most fansub scripts are based, is Substation Alpha v4.08. It's a rock solid little program that has stood the test of time despite being nearly 6 years old since the last update. Many older timers will use nothing else out of habit. It can do karaoke timing, although somewhat clumsily, but it has no feature for dealing with key frames, so fine timing is impossible with SSA alone. Another very annoying "feature" is that it only accepts mono wav files. Another useful program is Medusa 0.1.0.1, which for a long time had the best karaoke timing features, although AegiSub has it beat now, you may want to take a look at it. 2. Video FiltersAlthough this is a guide for timing subtitles to audio, it's important to be able to see the subtitles with the video to check your work. Therefore you'll need to know the basics behind how subtitle files are overlaid onto video. a. Avisynthhttp://www.avisynth.org This is a really amazing piece of software, which enables encoders to do their magic that they do. Although timers will use only a tiny sliver of its power. b. VSFilterhttp://sourceforge.net/project/showfiles.php?group_id=82303 This is a plugin for Avisynth. Make sure to use the latest version (2.37), and install by placing the .dll file (Unicode version) into the /plugins directory where Avisynth was installed. This is the software that actually renders the subtitles into graphics. c. Virtualdubmodhttp://virtualdubmod.sourceforge.net/ Maybe the most useful piece of free software ever, virtualdub (and its descendants like virtualdubmod) is a very powerful video editing tool for avi files. Although the timer will really only use it to help identify frame numbers and times for timing error correction. B. Getting startedFirst, install sabbu, and the three video programs listed in the above section. Next, make sure you have everything you need to time. 1. Loading the Audio dataThe first thing you'll need is the audio data. Sabbu can load .wav files of any sort, so we'll need to extract the audio from the video using virtualdubmod. Simply open up the video in virtualdubmod, go to Streams-Stream List, and then right click on the audio stream and select "Full Processing". Then click "Save WAV" and the program will extract the audio to a wavefile. When this doesn't work: sometimes your raw will by mp4 or mkv or have some odd audio encoding and virtualdubmod won't be able to extract the audio directly. But as long as you can play the file, you can extract the audio using avisynth. When opening the file in virtualdubmod, in the drop down box "Use Avisynth template", simply choose "DirectShowSource", and the audio should load and you can follow the steps above to save the wav. Now take the wav you created, and load it into sabbu (or the timing program of your choice) by going to Audio-Open. The audio waveform should appear, and you should be able to play and hear the sound of the show using the control buttons. 2. Timing Raws, Loading the Video, Keyframe dataA timing raw is a specially made encode for scene timing (See Section D, Fine Timing for what I mean by Scene Timing). To be able to scene time accurately, the video file needs to have key frames at all or most of the scene changes in the video. Normally, the best timing raw is a 1 pass constant quant xvid avi file, which can even be at half resolution to save on encoding time, and that will accurately pick out most of the scene changes as key frames. This is not an encoding guide, so for this part I would suggest asking the encoder in the group to make a timing raw for this purpose. Aside: Why can't I just use the raw itself, why do I have to reencode? Raws will often have strange key framing, and miss key frames at scene changes and/or add key frames in odd places, especially with wmv9 and certain older divx raws. It's faster to take 15 minutes to encode a special timing raw than just deal with those manually. Now open up the video in sabbu (or the program of your choice) by going to Video-Open and selecting the timing raw. You also have to load the key frames as well, so go to Video-Key frames-Load From Video, and they should appear as grey lines on the waveform. 3. Loading the ScriptThe final piece you'll need to time is the script itself. It can be an .ssa or .ass file with blank times, or a simple .txt file in a format like: Speaker 1: Hi! My name is speaker 1. Speaker 2: Well, I'll be darned, MY name is speaker 2! This will be imported into sabbu as two lines, with the "Speaker 1" and "Speaker 2" automatically placed in the name column. To import the script, go to Script-Open, and the lines of the script should appear in the grid below the waveform. C. Rough TimingNow, finally, we are ready to time! Let me review briefly the various buttons sabbu has below and to the left of the waveform, as they are the most important. The one with just an arrow is "play", and will play the audio from the start marker until you hit "stop", the box. The arrow between a red and yellow line will play only the current selection and then automatically stop. The arrow with only a red line will play the last 0.5 seconds of the correct selection. The check button will take the current audio selection, and place the start and end times into the current line of dialogue's start and end times on the grid below. The three buttons to the left of the script grid are also useful. They play the audio at the times of the currently selected line of dialogue, or the previous, or the next. They also automatically change the selected range to those times, so be careful. 1. Line TimingThe basic timing process is simple: find the audio that corresponds to a particular line, select that section of audio, use the "play selection" and "play last .5 seconds" buttons to check that you've selected the right part, and then hit the check button to place the time into the grid, and then repeat on the next line. To select a range of audio, left click to set the start, and right click to set the end. You can also click the start and end times and drag them to adjust. a. Tips/tricksTo make things easier to see, you can adjust the resolution of the waveform using the Zoom and Scale functions. Work wherever you feel comfortable. Because most timers cannot understand much Japanese, use the "Name" column in the script to help you if you get lost in the dialogue, so you don't end up getting off by a line. Be very careful of unvoiced sounds that start words like "Futari"... the Japanese will often almost completely omit the "fu", it will be very soft and not be visible on the waveform, so be careful when listening. Also be careful at the end of sentences, for example sentences that end in "desu", the "su" might be quite soft. Don't cut these lines short. 2. Splitting LinesOne kind of simple job the timer often needs to do is to split long lines of dialogue. If a line is very long and will spill into a 3 or more lined subtitle, it's important to split the line into two (or more). To split a line in sabbu, place the curser where you want the split to happen in the text, and then go to Event-Split at Cursor. A well done split will split at a pause in the speaking, although sometimes there is no pause and you'll have to split somewhere else. Make sure to leave enough time to read each part of the split separately. 3. Stylistic ConcernsSo far, we've covered the real basics, but there is a lot of room for interpretation. Here I'll go over a number of things which are more debatable, and more related to "Style" than, correctness. a. Lead-in/Lead-outSome people prefer to have subs appear exactly when someone says something, whereas other prefer to have the subtitle appear a little bit before the person actually speaks. On commercial DVDs, a lead-in is standard practice. Lead-in can range from 0 to .5 seconds, although I personally wouldn't recommend more than 0.3. Lead-out is the exact opposite, leaving the subtitle on screen for longer than the person actually speaks. There is a much higher tolerance for lead-out, and it is less noticeable than a lead-in. Plus, often the English translation will be more verbose than the original Japanese, so leaving a little more time to read the line is very useful. Lead-outs can range from 0-1 seconds, although I would recommend no more than .5, with exception below. b. Line linkingThis is intimately connected to lead-out above, but in a different context. When one line ends and another begins with a relatively short space between them (.5 seconds, say), some people prefer to link the subtitles, and extend the ending time (lead-out) of the first subtitle so that it ends exactly when the second begins. This is called line linking. Some people prefer line linking, others prefer no linking, it depends on taste. I would also say that it's more common to link lines if the lines are being spoken by the same person (monologue). These stylistic issues can be dealt with during the initial timing phase, once you get a little practice, and don't require a second pass D. Fine Timing/Scene TimingIf you only timed following the guide through section C, you'd already have a pretty decently timed script. But there are some more... subtle concerns that differentiate good timers from great timers, and I'll cover those in this section 1. What is Scene Timing?Scene timing is when you make sure that a subtitle doesn't "bleed" or extend over a scene change in the video. When I say "scene change" I don't mean something in the literary sense, but in the sense of a cut, or edit; where the entire frame of video changes in one frame. For example, in a conversation between two people, it might show one person's head when each person is talking, and there'd be a cut in between each line of dialogue. Stylistically, it is distracting to the viewer to see everything on screen change EXCEPT for the subtitle. So it is the job of the timer to make sure this doesn't happen. 2. Second Pass Scene TimingScene bleeds, i.e. when a subtitle extends across a scene change, are easy to spot in sabbu on the waveform. If you've loaded the video and the key frames as I explained in section B2, the key frames (i.e. scene changes, for the most part) will be displayed as grey lines on the waveform. So you just need to look for lines which end a little bit after a key frame, and correct their end times to match with the key frame exactly. Sabbu makes this easy, by snapping the end time to the key frame if you drag it nearby. (Note, it won't be EXACTLY on the grey line, due to the way VSfilter rounds times) a. AegiSub's timing postprocessorAnother, quicker, but less accurate method of scene timing is to use AegiSub’s timing post processor, which can essentially do the process I said above automatically. Please refer to an AegiSub guide as to how to use this method, but I've found it useful as a first pass. 3. First Pass Scene TimingOnce you are comfortable with scene timing, it's easy to do while you are doing rough timing. Simply adjust your end times' lead-out so that you don't have any scene bleeds to begin with. 4. Reverse bleedsLess noticeable, but also problematic is the "Reverse scene bleed". This is where a subtitle disappears right before a scene change, a few frames earlier. The process of fixing these is the same as it is for fixing normal scene bleeds, except this time you lengthen the end time to make the subtitle disappear right at the scene change. 5. Close DecisionsSometimes you'll have a situation where the dialogue ends JUST a little bit after a scene change. So if you snap to the Key frame you'll cut off a little early. In these cases you'll need to make a judgment call as to which is more noticeable, the scene bleed or the shortening. When the audio that bleeds over is an extended vowel like "desuu..." it's normally perfectly fine to cut off the "uu" a little bit. But if there is a hard consonant like "-shiTA" with the "ta" occurring after the scene change, shortchanging the time is a lot more noticeable. Sometimes it's a good idea to add extra lead out to make it look less like a scene bleed when that's the case. 6. Frame timing manuallySometimes you'll have to fix some scene bleeds manually, i.e. editing the times by hand, because there were missing key frames or some other issue. To do this, open up the video in virtualdubmod, find the frame you want the subtitle to start being displayed in, and look at the timestamp. Round the time DOWN (i.e. truncate the .00X) to hundredths of a second and enter that as the start time. Then, find the last frame you want the subtitle to be displayed in, look at the timestamp and round UP to the nearest hundredth of a second. Enter that as your end time for the subtitle. Then repeat as often as you want. 7. Other fine timing issuesBesides issues with scene changes, you should also avoid situations where there's only a short time between lines (less than .2 seconds), so-called "flashing", this is related to line linking above. Also make sure that very short lines are on screen long enough to read. No line should be less than about 0.5 seconds in duration except in special circumstances. E. Checking Your WorkA crucial final step is to be able to check your work. To do this correctly you need to overlay the subtitles on the video just like the encoder would, so you'll need to use avisynth. (Using older plugins for virtualdub is an outdated option, and using an auto loading filter doesn't guarantee that they'll be displayed frame accurately). 1. Extremely Basic Avisynth usageAvisynth is a special directshow wrapper for avi files. Our goal is to load the file and overlay the subtitles, so you'll need to make a text file with the extension ".avs", and put two lines in it: AviSource("name of timing raw.avi")
textsub("name of subtitle file.ass")
Now, you can open up this file using virtualdubmod and the timed subtitles should be displayed on the video correctly. Watch the video, identify any problems (scene bleeds, missed lines, incorrect timings, etc...), and correct the .ass file. Note that you can quickly reload the video by pressing F5 in virtualdubmod. F. Timing FastAt first, timing will take a long time. It's not uncommon for it to take 4-6 hours to time your first 30 minute show. But you'll quickly get faster with practice, and it's perfectly possible to completely time 350 lines of dialogue in 20 minutes. 1. Keyboard shortcutsThe best time saver is keyboard shortcuts. Each program has different ones, although they are configurable so you can adapt to whatever you feel most comfortable with. I personally use the "asdfg" keys in sabbu and my right hand on the mouse, to time. a and f scroll the waveform, s plays the selection, d plays the last .5 seconds, and g grabs the times. I use the mouse to make the selection on the waveform and drag/snap to frames. Line linking is done by looking ahead one line and pre-extending the lead-out of one line when I know it'll be joined to the next. I also know Japanese, which can help a lot :). 2. MacrosThe usage of macros can also be instrumental in reducing the amount of time required to time a standard 24-minute episode. With more and more unassigned mouse buttons and keys being introduced on input devices today, it is entirely feasible to to create macros bound to those keys that can execute certain actions in a sequence, such as autosaving, adjustment of start and end times, and the more complex ones can possibly aid in the selection of a time range itself. Programs such as AutoHotkey are examples of such macros. 3. Training your sightForcing yourself to time by listening puts a limit on how quickly you can work, as you absolutely cannot time any faster than the time required to listen to each line or syllable. However learning how sentences look on a waveform or spectrum analyzer can greatly reduce the amount of time you need to time an episode, especially with dialogue in quiet scenes. Additionally, learning how individual syllables look can help both timing and translation, as it is possible to clarify possible misheard syllables by merely looking at its shape on the audio display. By combining timing by eye and easily accessible controls whether by keyboard shortcuts or macros, it is entirely feasible to time an episode of dialogue in a shorter time than its runtime. G. F.A.QWhat is the difference between .ssa and .ass files? Which should I use? .ssa files are the file format originally used by Substation Alpha. All other timing programs except for AegiSub can also work with .ssa files. .ass is a modified version of .ssa files, which extends the format quite a bit. Sabbu, Aegissub, Medusa, and VSfilter, are the only pieces of software that can work with .ass files. The situation is complicated by the fact, however, that many .ass typesetting override commands can also be used in .ssa files. So there are some .ssa files which are not technically .ssa compliant. The best solution is to only use .ass files, unless you insist on using Substation Alpha as your timing program. My raw is variable frame rate! How do I deal with that? AegiSub is the only program able to deal with this at the moment. It will let you export your subs using a timecode file, which will automatically shift them to align to the raw when the frames are played at a constant frame rate (which will be the way it's encoded, i.e. before muxing into the final mkv). Another method is to time using a fake 120 fps avi file, although there you run into problems with VSfilter only being accurate to .01 seconds. Sabbu just crashed on me! What do I do? Sabbu makes periodic backup saves of your work at 5 minute intervals (by default). Just copy the backup and you should only lose at most 5 minutes of work. AegiSub also has backup features, but older programs do not, so be sure to save regularly. There are 5 people speaking at the same time, and I can't figure out who is who or what they're saying! Sometimes timing can be hard. If you can contact the translator to ask for help, do so. Otherwise do your best and listen to it over and over again until you think you get it. There's a line missing, what do I do? Sometimes the translator will skip or repeat lines. Time the missing section, and add in a large warning like "LINE MISSING", and make sure to tell the translator/project leader about it. What do I do with on screen text for signs? Consult with your typesetter. Some typesetters prefer to have the timer manually frame time the signs for them (this will need to be done using the "manual frame timing" method above, or equivalent.) Others will time those things themselves, and you can simply leave the times blank. I hate timing! It's so boring! I never want to time another show again! Let's face it, timing is the most boring part of fansubbing. There's the least room for creativity (although there is a little bit), and it is tedious. To help prevent timing burnout, don't take on too many projects at once. I would recommend against timing more than 3-4 shows a week, or you'll get really sick of it. Learn some other job like typesetting or even translation, to vary the work. Fansubbing should be fun, so if you're really getting sick of it, finish your commitments, and then take a break from it. H. ConclusionTiming is a necessary job in the world of fansubbing. Timing and Translation are, really, the two things most at the core of subtitling itself. But the job itself is boring, and tedious, so hopefully by reading this guide I've given you the tools you need to make it less painful, and less time consuming. |