This document contains notes related to video tutorials development on PVT. It is designed to help new tutorial producers get started. Note that in practice, the video tutorial production steps overlap somewhat.
1. Production Method
This section describes the production method I use for producing video tutorials on PVT. The MVT method (Motionless Video Tutorial) contains six steps: outline, script, examples, snapshots, audio, and compilation. The first step is done once for every tutorial and the five following steps are repeated in order to produce each video section in the tutorial.
1.1 Work Environment – Hardware
Before attempting to produce a video tutorial it is important to first have the correct work environment setup. When it comes to hardware I prefer to work with two computer monitors installed. The secondary monitor (without the task bar) is set to 640×480 pixels during production, since this is the resolution used for the video tutorials. This is the “recording” monitor where I set up and capture snapshots or video for a tutorial. When working on a computer with one monitor I only lower the resolution to 640×480 when I capture the snapshots/video. I also set the task bar to auto-hide in order to get more screen real estate.
Another piece of hardware that is required is a microphone in order to record the audio. This does not have to be an expensive studio microphone, but it should not be the cheapest one either. I currently record using a Sennheiser PC-151 Headset. When recording audio it is important to first remove as much background noise as possible. Although a noise reduction filter can be applied to the audio after the recording is done too much filtering will significantly reduce the audio quality.
In terms of software the following kinds of applications are required: a text editor, a presentation program, a video editing program, a graphics editing program, and a digital audio editor. It is also recommended that the producer has a screenshot program, such as Techsmith Corporation’s SnagIT. The applications I prefer to use in the listed categories are:
- Work environment – Microsoft Visual Studio 2010
- Presentation – Microsoft PowerPoint (Part of Office)
- Video editing – Techsmith’s Camtasia Studio 7
- Image editing – Adobe Photoshop CS5 or the light version Adobe Photoshop Elements 9
- Audio editing – Adobe Audition 3
- Snapshots – Techsmith’s Snagit 10
Freeware alternatives would be for example:
1.2 Outline
The first step in producing a tutorial is to make an outline for it as a text file. I prefer to do this in Visual Studio because it allows me to collapse the text using the #region directive. What I do in this step is simply to name and order every section that the tutorial will contain. Each section name should describe a very specific area of the tutorial, because this will make it easier for the students to search through the tutorial. It is also important that the sections are placed in an order such that they do not have to refer to later sections to explain something. To organize the large number of sections that a tutorial can contain I prefer to visually group every ten or so sections into a region called a part. At the bottom of the text file I keep another region containing mistakes and updates to sections that I am already done producing. Whenever enough of these fixes are found, either by me or by other, then that section will be scheduled for an update.
1.3 Script
Once the outline is complete I start working on the sections one at a time. The first step in this cycle is to write the audio script. This script is compiled from one’s experiences and from sources all over the web that are summarized in the outlined text file. The script is then rewritten extensively to make it readable and easier to understand. My goal is to cover everything important about the section in less than 500 words. The reason for this limit is twofold. First, it forces me to come up with simpler ways to explain everything. And second, it only allows me to keep what is important to the section. I chose 500 words because I have found that it is very rare that a section cannot be explained within this limit. If despite my best efforts I am unable to explain a section in 500 words, then I will split that section into two parts rather than go past the word limit, because in my experience this tends to be faster than producing a single longer section.
1.4 Examples
The third step is to produce programming examples for the concepts I talk about in the audio script. These examples are created and tried out in the development program used for that tutorial, and then copied into the script where they can be organized. Storing the code in the script file also makes it easier to reproduce the snapshots if any changes needed to be made later. If the section contains elements that would be useful to have as a quick reference a Microsoft PowerPoint slide of those elements is created as well. This slide will be used as the first frame of the video section. If needed, other slides will also be created to present tables and other information rich content in the section.
1.5 Snapshots
When the code examples for a section are done they are used to create the snapshots. The key here is to only change what the student should focus on from one frame to the next. It is also important that the snapshots closely match what is talked about in the audio script (or vice versa, adjusting the script to match the snapshots). The snapshots used are 640×480 pixels. For capturing the snapshots I use SnagIT, because it is the only program I have found that is able to capture and save a fixed region of the screen with the press of a single button. The snapshot pictures are losslessly stored in the PNG format (.png). When the snapshots are complete I prefer to rename the ones I want to keep with a number and a letter, where the numbers correspond to paragraphs in the audio script. This way new snapshots can be added without having to rename every single file to maintain the order. Finally, when the pictures are named and placed in that section’s folder a graphical editor is used to fix any small mistakes or distractions in the images.
1.6 Audio
Before recording the audio it is important to first read the script out loud a couple of times to make it sound more natural and not as if a script is being read. While it is possible to record the audio without any preparation this form of rehearsal does in my personal experience significantly improve the quality of the final result. The rehearsal also allows me to make any final adjustments to the script in order to improve its readability. These improvements can be very difficult to discover before the script is read out loud. Once I can read the script smoothly I record the audio with a 44kHz sampling rate. If I make a mistake when recording the audio I will just speak that sentence again until the entire script has been recorded. Mistakes are then edited out and the pauses are adjusted as needed. Any pause in the beginning of the audio is removed so that all videos will start immediately when they begin playing. A one second pause is also added at the end of the audio to mark the end of the section. This pause provides a much needed break before the next section begins. When the editing is done the file is saved in the lossless wave format (.wav). The audio is then finalized by running a script that does noise reduction, normalization, and downsampling the file to 22kHz. This final version is saved under another filename in case a different set of filters are to be used in the future.
1.7 Compilation
With both the snapshots and audio now completed it is time to produce the video. For this step the files are added to the timeline in a Camtasia Studio project and a one second fade-in transition is applied between all clips. This slow transition is important in order to direct the students focus and to make it easier for them to distinguish what changes are taking place. The snapshots are then carefully synchronized to the audio. This is mainly achieved by moving the beginning of each video fade to the start of the audio that corresponds to the snapshot following that fade. When all snapshots are synchronized the last frame is extended so that it ends at the same time as the audio file ends. Once this is done the video is ready to be produced as an AVI file. The video is compressed with the Techsmith Screen Capture Codec (TSCC). This codec was chosen because it is a freely available lossless video codec optimized for compressing screen recordings. As for the audio it is compressed as 22kHz LAME encoded MP3 at 32kbit/s. The MP3 format was chosen because it is a popular compressed audio format that most video players support without having to install additional codecs. When the AVI file is completed it is reviewed a final time to make sure there are no obvious mistakes. Finally, the video is uploaded to the site.
Summary
| Step | Description |
| 1. Outline | Creating an outline |
| 2. Script | Gathering information Rewriting script |
| 3. Examples | Creating examples Organizing examples |
| 4. Snapshots | Taking snapshots Editing snapshots |
| 5. Audio | Recording Audio Editing Audio |
| 6. Production | Synchronize Producing/Uploading |
Snapshots or Live Video
Personally, I prefer to make tutorials using a series of snapshots (rather than by recording live video), because this allows me to record and edit the video and audio separate from each other. Still, if I wanted to make a tutorial where live video recording would be better suited (for instance demonstrating GUI building) I would use that approach instead. In my experience, separating the video and audio has a number of benefits:
- Less mistakes – Recording audio and video separately is not error prone like the live approach and thus requires no retakes and preparation in order to get a high quality result.
- Updatability – The separate video/audio makes it easier to update/fix tutorial sections if necessary.
- Professional – A producer may take their time editing the snapshots and audio to remove any mistakes. These steps are unpractical with live video, which is very unforgiving to mistakes.
- Relevance – The video sections become shorter and more focused than corresponding live video tutorials, mainly because this approach relies on a script rather than on improvisation.
Producer Guidelines
- Tutorial Introduction – Each tutorial should start by introducing the name of the author and title of the tutorial. For example: “Hello, this is Mike from PVT. In this tutorial I’m going to show you…”
- Section Introduction – Each section should start with a short introduction of the section and preferably a powerpoint slide summarizing that section.
- Lossless – All media files should be stored lossless to make updating the tutorials easier.
- Relevance – Each section should cover only what is relevant to that section. The student is responsible for repeating previous sections if necessary.
- Simple Examples – When demonstrating something the basic rule is: the simpler the better. At the very least try to fit each example on one screen.
- Summary – Where possible a section should start with a written summary of what it will cover to give the student a quick overview.
- Theory slides – The summary, any tables and other information rich content should be displayed as snapshots of PowerPoint slides. A PowerPoint template is available here.
Producer Tips
- Single Handling – It’s usually faster to produce videos if you focus on a single video section at a time until it’s complete (rather than working on several sections simultaneously). The exception is if you’re stuck on a section. Then, taking your mind off that section and onto another one may break your creative block.
- Independence – Try to make each video section independent from the others in the tutorial if possible. This makes them easier to update and improve.
Tutorial Organization
To allow different team members to produce videos on the same programming language our tutorials are divided into 4 separate categories:
- Level 1 – Syntax
- Level 2 – Libraries
- Level 3 – GUI
- Level 4 – Practical Examples


![[Affiliate link] Total Training]( http://d3qzmfcxsyv953.cloudfront.net/images/pvt-affiliates/totaltraining.png)
![[Affiliate link] Lynda](http://d3qzmfcxsyv953.cloudfront.net/images/pvt-affiliates/lynda.png)