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

Fathom provides a command line tool called InletASFDump that operates on a WMV file, allowing for the extraction of a video elementary stream (.ES file) from VC-1 Advanced Profile content (.WMV with 4cc of WVC1 or WMVA).

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 -Iframes -frames -attr -markers -script –profile -dump -elem -segment [start1, end1, start2, end2,...]

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

Microsoft implemented WVC1 to support the compression of interlaced content without first converting it to progressive and allowing the delivery of Windows Media files over systems that were not Windows Media-based. 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

AC-3 (Active Coding 3) is Dolby's third generation audio coding algorithm. AC-3 is more commonly known in the consumer space as Dolby Digital. Per the technical specifications for DVD creation, every disc must use at least one PCM or Dolby Digital soundtrack. One of the most frequently used versions of Dolby Digital is the 5.1 channel implementation. Dolby Digital 5.1 contains six total channels of sound, with five channels for normal-range speakers (Right Front, Center, Left Front, Right Rear and Left Rear) and one channel for the Low Frequency Effects (LFE), or subwoofer. The Dolby Digital format supports Mono and Stereo usages as well. Inlet's Fathom encoder outputs a WMV file, which does not support AC-3. In order to retain the multi-channel audio in your encoded output, the source audio file must be converted to WMA 5.1 audio during the encoding process. Below are instructions for how to easily make this conversion within Fathom: Open the Control Panel and select the AC-3 Filter icon.

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:

  1. Install AVISynth either during Fathom installation or from the Fathom CD (Fathom2.5 CDExtrasAVISynth [version 2.56 or later required]).
  2. 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.
  3. 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.
  4. 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

You’ve won the contract to broadcast real-time video streams over the Internet for a variety of live sporting events and concert venues. Now you need a live streaming encoder at each location, but you can’t station operators at every site just to start/stop each encoder locally. And you must ensure that each audio/video feed is running properly during the entire event.
Spinnaker units located anywhere in the world can be scheduled to start and stop whenever you require it. Not only can you bring up and shut down live streams remotely, over any IP network, you can monitor the system performance using Inlet’s Web GUI, Syslog, or SNMP interfaces.

How Spinnaker Remote Scheduling Works

The Master Scheduler in each Spinnaker, shown below, keeps track of all events by storing the start and stop date and time. Spinnaker also lets you define presets to support events with different video formats, resolutions and bit rates. All of this information is stored in Spinnaker’s internal database in non-volatile memory. So even if you shut down a unit for maintenance and then reboot, your programming information is preserved.

When a scheduled event starts, Spinnaker will load your selected preset – this includes settings such as resolution, NTSC/PAL, bit-rate, server location and frame rate. Streaming then begins and can be monitored from anywhere via our Web GUI, Front Panel Display, SNMP, or Syslog. When the event is finished, streaming stops automatically, and Spinnaker is ready for the next session.

Step-by-step

To create a scheduled event:
  1. Log into the Spinnaker Web GUI and click “Scheduling”
  2. Select the time and day to start
  3. Select the time and day to stop
  4. For recurring events, enter the days of the week and frequency
  5. Select your preset – with setting such as resolution, bit rate, etc.
  6. Enter a "Name" for your session
  7. Click "Add Event"

To examine completed and upcoming events, click on “Schedule Log.” The Scheduled Events section shows upcoming events, and lets you remove or edit them. Here “5pm Event for 1 hour” and "Weekly News" are set for June 10 and 18.
The Completed Events section shows a history of streamed events and any related incidents. The entire log can be exported to a file for reporting purposes.

NLE Workflow Automation: Fathom with Final Cut Pro

Inlet’s Fathom is an ideal encoding and transcoding solution for any studio environment that needs to deliver a variety of projects to different clients in different formats.

Fathom’s automated features allow all the editors to share one set of templates across the entire studio, making encoding as easy as copying files into a folder. Fathom even automates delivery, sending completed files to clients for approval or archiving them remotely on the local network.

Setting up Fathom to support a Final Cut Pro environment
  1. Set sharing for Network. Create a shared folder on Fathom that all the FCP edit stations can see. This is the folder editors will export sequences to while working.
  2. Set up a Watch Folder. Within Fathom, set up the shared folder as a Watch Folder. As you set this up, you will:
    • Choose a Naming Style - select how you would like Fathom to name your finished files. Do you need the job, file, data rates or other information in the name? Just choose or add your own custom naming to the field
    • Choose Templates - pick from the preinstalled templates that ship with Fathom, or create your own custom templates. You can choose as many templates as you need – any content added to the folder will be encoded to the specs of all the templates
    • Choose Destination - choose where you want completed files to be stored locally. Remember that as part of each template you may also assign a remote or local FTP server where finished content is copied once it is done.
  3. Click OK. Now you are ready to go. As long as Fathom is running it is actively looking in this folder for any new content from the editors. As soon as content received it gets added to the queue, transcoded and exported to the appropriate destination folder
  4.  Multiple watch folders. Since not all content is sent to the same location, nor needs the same settings, Fathom allows you to assign up to 3 different watch folders on any system.
Free Semaphore Download Where to Buy Inlet Brochure

© 2007 Inlet Technologies. Legal Sitemap