Encoding Tips
If you are encoding content with Fathom, streaming with Spinnaker, or simply are interested in general encoding and streaming techniques, this section will provide some tips, some tricks and some background information.
If you have a specific question about working with Inlet Technologies' advanced encoding and streaming solutions, please click here to reach our Customer Support team.
Topics:
Creating Elementary Video Streams
While all Blu-ray players and HD-DVD recorders will support playback of the VC-1 codec, it is up to the content providers to decide which video codec(s) they use for their releases. It is also important to note that the players will support the VC-1 video format but not the VC-1 audio format. Therefore, in order to import your content into an authoring program for HD DVD or Blu-ray, it may be necessary to extract the video into an elementary stream without any header or audio stream.
As an example, the following command will extract the video elementary streams from the WMV file named ‘test.wmv’ to create an .ES file to be named ‘test.es.’
InletASFDump test.wmv -elem test.es
Below are the steps required to generate .ES files with InletASFDump. Please note that the Advanced Profile (AP) is the only VC-1 profile that can be utilized with InletASFDump to generate an .ES file.
Step 1 – Create a Job in Fathom, making sure that you select the Advanced Profile codec within the compression section.
Step 2 – Encode the Job
Step 3 – Once the Job is complete you can utilize the video analysis and analysis timeline to play back and scrutinize the encoded output. If you have any frames that need to be re-encoded you can utilize the Seen by Scene™ feature available within Fathom. Seen by Scene segment re-encoding allows a critical or problematic scene to be re-encoded, without re-encoding the entire clip.
Step 4 – Once you are satisfied with the quality of your encoded output you can utilize the InletASFDump tool by entering a command using the format in the example above. InletASFDump will extract the video elementary streams from the WMV file to create an .ES file.
Step 5 – Import the .ES file into your HD DVD or Blu-ray authoring program.
The following options are provided in ASFDump:
• (-Iframes) List all I frames with time codes
• (-frames) List all frames with times codes and frame sizes
• (-attr) List all the attributes of the file
• (-markers) List all markers found in the file
• (-scripts) List all script commands found in the file
• (-profile) List profile information gathered from the file
• (-dump) Dump all compressed frames to individual files
• (-elem filename.es) Extract the video elementary stream and save to a single output file
• (-segment [start1, end1, start2, end2, ….]) Extract compressed segments to binary files
Usage
InletASFDump
The default installation location for InletASFDump is c:Program FilesInlet TechnologiesFathom.
Understanding VC-1 and FourCC
Fathom 2.5 and Semaphore 1.5 support the following video profiles:
- VC-1 Main Profile (WMV3)
- VC-1 Advanced Profile (WMVA)
- VC-1 Advanced Profile (WVC1)
Files encoded according to these profiles are identified by their Four Character Code (FourCC). The FourCC identifier is located at the beginning of a media file and tells the system what codec to utilize form decoding the file. The VC-1 video codec specification (also known as SMPTE 421M), which is being standardized by the Society of Motion Picture and Television Engineers (SMPTE), utilizes all three of these profiles. Understanding the differences between these profiles can help you decide which profile best fits your delivery stream.
VC-1 Codec Specification
VC-1 (Windows Media Video (WMV) 9 Advanced Profile) is a video codec specification implemented by Microsoft to define a standardized specification that is transport and container independent and supports both progressive and interlaced content. This allows content to be delivered "over MPEG-2 and RTP systems as well as ASF, which enables device manufacturers and content services to create interoperable solutions. Windows Media Video 9 Advanced Profile implements these features, making it much easier to deliver Windows Media content over traditional broadcast and wireless infrastructures."
Microsoft:
http://www.microsoft.com/windows/windowsmedia/forpros/events/NAB2005/VC-1.aspx
WMV3
Before Microsoft implemented VC-1, the WMV3 profile was implemented to allow progressive encoding for computer displays. In WMV3, interlaced video content was always de-interlaced before encoding. The Windows Media Video 9 (WMV3) codec implements the Simple and Main modes of the VC-1 codec standard, providing high-quality video for streaming and downloading. "It provides support for a wide range of bit rates, from high-definition content at one-half to one-third the bit rate of MPEG-2, to low-bit-rate Internet video delivered over a dial-up modem. This codec also supports professional-quality downloadable video with two-pass and variable bit rate (VBR) encoding. Windows Media Video 9 is already supported by a wide variety of players and devices."
Microsoft:
www.microsoft.com/windows/windowsmedia/9series/codecs/video.aspx
The professional video market, however, needs to support progressive and interlaced content, as well as being transport independent. The VC-1 spec as implemented in the WMVA and WVC-1 profiles, provides this support. The VC-1 spec still utilizes the WMV3 codec.
WVC1
also known as Windows Media Video 9 Advanced Profile, 37 "implements the Advanced mode of the proposed VC-1 codec standard. It offers support for interlaced content and is transport independent. With the previous version of the Windows Media Video 9 Series codec, users could deliver progressive content at data rates as low as one-third that of the MPEG-2 codec and still get the same quality as MPEG-2. The Windows Media Video 9 Advanced Profile codec also offers this same improvement in encoding efficiency with interlaced content."
Microsoft:
www.microsoft.com/windows/windowsmedia/9series/codecs/video.aspx
WMVA
WMVA was the draft version of WVC1 during the acceptance of the VC-1 spec. There are slight bit stream mods between the WMVA and WVC1. WMVA is handled by a different DirectShow decoder than WVC1. Additionally, decoders for some 3rd party hardware and software companies (whether hardware Set Top Boxes, software STBs, etc) will only decode WMVA based content.
Earlier releases of Fathom and Semaphore only supported WMV3 and WMVA based content. With the Semaphore 1.5 and Fathom 2.5 releases, both products now support WMV3, WMVA and WVC1. The continued support for WMVA is because the decoder solution of some customers may not yet be WVC1 aware and will continue to encode with WMVA. From Inlet's perspective, Both applications support VC-1 Main Profile (WMV3), VC-1 Advanced Profile (WVC1) and VC-1 Advanced Profile (WMVA).
With the introduction of VC-1 Microsoft created the notion of profiles and levels.
- The Simple profile targets low-rate internet streaming and low-complexity applications such as mobile communications, or playback of media in personal digital assistants. There are two levels in this profile.
- The Main profile targets high-rate internet applications such as streaming, movie delivery via IP, or TV/VOD over IP. This profile contains three levels.
- The Advanced profile targets broadcast applications, such as digital TV, HD DVD for PC playback, or HDTV. It is the only profile that supports interlaced content. In addition, this profile contains the required syntax elements to transmit video bitstreams conformant to this standard into generic systems, such as MPEG-2 Transport or Program Streams (ISO/IEC 13818-2). This profile contains five levels.
Converting AC-3 to WMA 5.1 Audio, Using Inlet's Fathom Encoder
From the Properties page, click on the pull-down menu under Output: Speakers. Select 3/2+SW 5.1 channels. Verify that you have selected this option and not 3/2 5 channel, as the 3/2 5 channel will not work with Fathom.
After selecting this output, close the AC-3 Properties page and open Fathom. If the source file includes AC-3 multi-channel audio, the input screen within Fathom will show six channels of audio as opposed to the default of two.
At this point, step through your job settings until you reach the Compression screen. When selecting the audio compression format, you should only have 5.1 selections available. After making this selection you can continue with your job settings and queue the job. The output file will be a WMV file with 5.1 audio.
AVISynth and Fathom
AVISynth is a powerful tool for video post-production, providing a multitude of video processing options. AVISynth works as a frameserver, performing processing functions instantly, without the need for temporary files.
AVISynth does not have a graphical user interface (GUI) but instead relies on a script system that allows advanced video processing. While this may at first seem tedious and unintuitive, it is remarkably powerful and is a very good way to manage projects in a precise, consistent and reproducible manner. Because text-based scripts are human readable, projects are inherently self-documenting. The scripting language can be used to create complex filters from basic operations, to develop a sophisticated palette of useful and unique effects.
To enhance Fathom’s capabilities, features and overall value, Inlet has designed Fathom™ 2.5 to recognize AVISynth scripts (.avs files). Some useful implementations of AVISynth scripts include:
Inverse telecine
Source file concatenation
Noise reduction
Advanced resizing filters
Image color correction
To use AVISynth with Fathom (2.5 required), you must first install AVISynth and the appropriate filter(s) to enable within Fathom. AVISynth is available at www.avisynth.org, or from the Fathom 2.5 or higher installation CD and can be installed when installing Fathom. The Fathom 2.5 CD also includes a set of filters to enhance Fathom’s capabilities.
Fathom will recognize and handle most AVISynth .avs scripting files, so the integration of Fathom and AVISynth is as simple as using a file-based asset.
To use Fathom and AVISynth, follow these steps:
- Install AVISynth either during Fathom installation or from the Fathom CD (Fathom2.5 CDExtrasAVISynth [version 2.56 or later required]).
- Write the AVISynth script to use in Fathom. A few example scripts are provided on the CD (Fathom2.5 CDExtrasAVISynthScripts) and common scripts can also be easily found by doing a web search. (If using an Inlet-provided decoder, such as with QuickTime and GXF files, you will need to use some special AVISynth commands to get proper recognition with Fathom. If you are not using an Inlet decoder, such as when using a standard uncompressed AVI file, you do not have to enter a special tag.) To write a script, open NotePad or WordPad from your StartAll ProgramsAccessories menu and enter the AVISynth commands.
- Save the file as an .AVS. Fathom 2.5 also includes a new Batch Utility app in which you can open, edit, write, and save AVISynth scripts.
- Select the .AVS file from the Fathom input tab as you would a file-based source.
Here is an example script using a single AVI file without any pre-processing:
DirectShowSource("D:AVIAVI_Source_File.avi")
Example using an AVI file and applying a contrast/brightness filter:
DirectShowSource("D:AVIAVI_Source_File.avi")
Tweak(cont=1.2,sat=1.0,bright=10,hue=0)
Another example using the same AVI file with a fast resizing filter:
DirectShowSource("D:AVIAVI_Source_File.avi")
BilinearResize(528,480,0,0,0,0)
Another example using the same AVI file with a more advanced resize and crop filter:
DirectShowSource("D:AVIAVI_Source_File.avi")
Crop(8, 8, -8, -8)
LanczosResize(640, 360, taps=4)
Example joining (concatenating) two AVI files:
clip1=DirectShowSource("D:AVIAVI_Source_File.avi")
clip1=DirectShowSource("D:AVIAVI_Source_File.avi")
clip1 ++ clip2
Here is a complex example using two GXF files (via Inlet’s GXF decoder):
# Test GXF inverse telecine encode, joining files
clip1=DirectShowSource(MakeGXFGraph("D:GXF.gxf"),pixel_type="YUY2")
clip2=DirectShowSource(MakeGXFGraph("D:GXF.GXF"),pixel_type="YUY2")
# Do an "aligned" join
clip1 ++ clip2
AssumeTFF()
Telecide(guide=1,post=2,vthresh=30)
Decimate()
BilinearResize(528,480,0,32,0,0)
ConvertToYV12()
This script is performing 4 functions. First it will concatenate two 720x512 telecined GXF files, then apply an inverse telecine from 29.97fps to 23.98fps, followed by a crop of the image 32 pixels from the top, and finally scale the output to 528x480.
Recommended AVISynth filters (included with Fathom install unless otherwise noted):
- For resizing: BilinearResize {for downscaling (fastest)}; BicubicResize {for upscaling}; LanczosResize {for downscaling (slower but better)}
- For grain reduction: Deen (http://ziquash.chez-alice.fr/)
- For IVT: Telecide (guide=1, post=2, vthresh=30) {this may differ depending on telecine process used in source}
- For file joining: clip1=DirectShowSource(“file1.avi”)
clip2=DirectShowSource(“file2.avi”)
Do an “aligned” join
clip1 ++ clip2 - For image adjustments: Tweak(cont=1.0,sat=1.0,bright=0,hue=0) {default settings}
Generating trick streams:
Tricks streams are traditionally used in Video-on-Demand applications and enable fast forwarding and rewinding at rates greater than 1x speed. Trick streams are generated from previously encoded files, and therefore the process is different than normal encoding. The following guide describes the process required by Fathom for trick stream generation:
Fathom 2.5 includes a Batch Job processing application to help create VC-1 fast forward trick stream files more efficiently. To use the Batch Job processing application:
1. Encode a WMV file with Fathom.
2. Open the job settings used for the previously encoded file that will be the source for the trick stream generation.
3. At the Input tab, adjust the source pixel aspect ratio to the output aspect ratio of the original encode (*this can easily be determined if you go to the Sizing tab and note the Pixel Aspect Ratio under the Output area in the upper right corner). You should also change the Audio Sources parameter to “None”.
4. At the Sizing tab, verify that the Cropping and Resizing parameters are set to “None”.
5. At the Compression tab, it is generally best to disable Two pass encoding if previously enabled (unnecessary for generating trick streams), and beneficial to change the Scene change threshold to a high value (~75 recommended).
6. At the Processing tab, check to make sure that the Interlace Processing option is set to “None” and that Pre-Processing is set to Smooth (for better quality encodes).
7. Once you have selected appropriate settings for trick stream generation, choose the “Save as Template…” button in the lower left corner of the job settings window.
8. After saving a template for your trick stream generation, Enable Watch Folders in Fathom under the Tools menu (Tools ? Watch Folder…). Also be certain to enable the option “Watch for job files only”.
9. Next, open the Fathom Batch Job Utility from the Tools menu (Tools?Batch Job Utility…) or by pressing Ctrl+B
10. Locate your encoded WMV file and add that as a source in the Source Files bin.
11. In the Fathom Jobs bin from the Batch Utility, select the saved Fathom Job Template you created for trick streams and alter any other settings you may wish to customize. Under both of the “filenames” input, Inlet recommends: %SOURCEFILEBASE%_%TRICKSTREAM%. Also, it is critical here to make sure that your “Output directory for jobs and scripts:” is set to the same directory as the folder you set to watch in Fathom.
12. In the AVISynth Script bin, open the included script from the following directory: “C:Program FilesInlet TechnologiesFathomAVS Examples” titled “trick_template_2997.avs”. If your source WMV’s frame rate is not 29.97, then make sure you edit the “AssumeFPS(29.97)” line in the script box to your appropriate frame rate by changing the frame per second value and choosing to do a “Save As…” for the updated script.
13. Once the script has been set, return to the Fathom Jobs bin and check the Enable box under “Trick Stream Settings.” Enter a number in the “Add Speed” value box and click the button once the desired value has been entered. The trick stream speed is now entered in the “Current Speeds:” field, and you can view other speeds that have been entered by scrolling through the values here.
14. *The AVISynth Script bin can also be used to create new or modify existing AVS files for non-trick stream scripts. If you do make a change to any of the Inlet supplied AVS scripts, we recommend that you should do a “Save As” to the script, so as to not overwrite the original script.
15. Click the “Create Jobs” button and your jobs should automatically be imported and queued for encoding into Fathom.
By integrating AVISynth and Fathom, you can fully extend the power of the Fathom software and hardware into an efficient encoding workstation, capable of handling a broad spectrum of video processing projects.
Known issues/caveats with AVISynth and Fathom:
- It is always best to use the command “DirectShowSource(“”)” for serving files with AVISynth into Fathom.
- The scripting MakeGXFGraph or MakeQTGraph must be used when using AVISynth to serve Quicktime or General Exchange Format files into Fathom. These file types are not generally supported by DirectShow plugins and therefore Inlet’s included decoders for each format are used to link with DirectShow. Proper usage for a QT file with AVISynth would be: DirectShowSource(MakeQTGraph(”D:Sourcesexample.mov”))
- It is always best to use the command “seekzero=true” when serving MPEG-2 files or any other similar format that does not offer proper seeking on the decoding. An example of this usage: DirectShowSource(“D:Sourcesexample.mpg”, seekzero=true).
- When using any script that will filter or pre-process the image, it is best to include the scripting “ConvertToYV12” after the sourcing line.
- If you will be using AVISynth to serve a file into Fathom, and you will be scaling the source to a different output resolution upon the encode, it may be best to apply the scaling in the AVISynth script. This will allow Fathom to concentrate only on encoding and therefore no cycles will be taken away for scaling during encoding. Note however, that scaling with AVISynth may put a greater hit on your computer’s main processor(s).
- A great web site for the explanation and usage of various AVISynth filters is located at:
http://www.animemusicvideos.org/guides/avtech/avspostqual.html - A good resource for downloading the many available AVISynth filters is located at:
http://www.avisynth.org/warpenterprises/
Schedule Live Streams with Spinnaker
How Spinnaker Remote Scheduling Works
Step-by-step
- Log into the Spinnaker Web GUI and click “Scheduling”
- Select the time and day to start
- Select the time and day to stop
- For recurring events, enter the days of the week and frequency
- Select your preset – with setting such as resolution, bit rate, etc.
- Enter a "Name" for your session
- Click "Add Event"



