ILMH264Encoder Interface (3.0)

This is the interface for the LEAD H264 Encoder.

Interface Properties:

Type

Property name

Description

VARIANT_BOOL

EnableRateControl

Indicates whether the H264 encoder Also known as compressor Also known as an encoder, this is a module or algorithm to compress data. Playing that data back requires a decompressor, or decoder., this is a module or algorithm to compress data. Playing that data back requires a decompressor, or decoder. uses Rate Driven compression or Quality Driven compression. It this property is TRUE, Rate Driven compression is used and the rate is set in the BitRate property. If this is FALSE, Quality Driven compression is used and the quality factor is set in the QualityFactor property.

long

BitRate

The bitrate, in bits per second, when the EnableRateControl value is TRUE.

long

QualityFactor

Contains the video quality factor. A quality factor of 1 gives the highest quality and the largest video file size. A quality factor of 49 gives the lowest quality and smallest file size. This property is valid only if the EnableRateControl property is FALSE.

long

IFrameInterval

Specifies the number of P frames between two successive I frames plus one. A value of zero means there is only one I in the whole video and all the other frames are either P or B. If this value is one there will be NO P frame between any two I frames. If the value is 2 there will be ONE P frame between any two I frames and so on.

long

PFrameInterval

Specifies the number of B frames between two successive P frames.  Note that all the frames between successive P frames are B frames.

eH264SYMBOLMODE

SymbolMode

Flag that indicates the type of entropy coding to be used. For a list of possible values, refer to eH264SYMBOLMODE.

VARIANT_BOOL

EnableSuperCompression

Flag that indicates whether super compression is enabled. If TRUE, then LEAD's improvement to the H264 compression is enabled. If FALSE, LEAD's improvement to the H264 compression is not used. Files generated using super compression, will not be H264 compliant and can only be decoded by the LEAD H264 LEAD H264 is a DirectShow filter for compressing and decompressing Video data using the H264/AVC standard. H264 is the latest video standard developed jointly by ITUand MPEG. H264/AVC provides a far more efficient algorithm for compressing video.It typically outperforms all existing standards by a factor of three to four especiallyin comparison to MPEG-2.DirectShow filter for compressing and decompressing Video data using the H264/AVC standard. H264 is the latest video standard developed jointly by ITUand MPEG. H264/AVC provides a far more efficient algorithm for compressing video.It typically outperforms all existing standards by a factor of three to four especiallyin comparison to MPEG-2. decoder Also known as a decompressor, this is a module or algorithm to decompress data.. This option produces very high compression and makes the encoding and decoding processes very fast. If high quality video is desired, it is recommended to disable this option, otherwise the output video quality will not be as good as the original.

This property is only available if the output is LEAD (L264).

float

 

FrameRate

Sets the playback frame rate, in frames per second, of the compressed video, regardless of the rate of the input stream frames. The LEAD H264 Encoder Also known as compressor, this is a module or algorithm to compress data. Playing that data back requires a decompressor, or decoder. automatically adjusts the input video to match the desired frame rate. The rate is adjusted by dropping or duplicating input frames. If the selected frame rate is lower than the original framerate, the compression will be higher.

Use the value -1 if the output frame rate needs to be the same as the input frame rate.

BSTR

TimeQualityFactorFileName

Sets the name of the file that has a set of time stamps and the desired quality factors to be used by the encoder.

To create such a file just open a regular text file and start writing the time stamps and each corresponding quality factor.
The format of the time stamps and quality factor should appears as follows:

#00:00:00:000-00:00:01:000 26
#00:00:02:000-00:01:03:000 40

The above two lines mean:
between 0 seconds and one second, use Quality Factor of 26.
between 1 second and 2 seconds, use the default Quality Factor.
between 2 seconds and 1 minute and 3 seconds, use Quality Factor of 40.

You can put as many time stamps-quality factors as needed. They must be within the video clip time span to be considered by the encoder.

eH264OUTPUTFORMAT

OutputFormat

Value that specifies the output format. For a list of possible values, refer to eH264OUTPUTFORMAT.

eH264ENCODINGSPEED

EncodingSpeed

Sets the speed of the encoding based on the motion estimation algorithm option.. Possible values are:

1: Very Fast, suitable for Capturing or Converting

2: Fast, suitable for Capturing or Converting

3: Slow, suitable for Converting

4: Very Slow, suitable for Converting  only

Option 4 gives the highest compression while Option 3 gives the second highest compression. Option 1 gives the smallest compression while Option 2 gives slightly better compression than Option 1 but less than Option 3.

eH264ENCODINGTHREADS

EncodingThreads

The number of threads used during encoding. The maximum number of threads that can be used is 2. Using two threads with a dual core machine or 2 CPUs will increase the encoding speed significantly. Possible values are:

Auto: Have the LEAD H264 Encoder determine the appropriate number of threads.

1: Use 1 thread during encoding

2: Use 2 threads during encoding

 

 

Interface Methods:

HRESULT WriteToRegistry ()

Description

Writes the values of all of the properties listed above to the system registry, so that the encoder will remember these settings the next time it is used.

Return

S_OK if successful, S_FALSE otherwise.

 

Data Types:

1. eH264SYMBOLMODE:

typedef enum
{
   H264SYMBOL_CAVLC = 0,
   H264SYMBOL_CABAC = 1
} eH264SYMBOLMODE;

Describes possible values for the entropy coding mode, set in the SymbolMode property.

 

2. eH264OUTPUTFORMAT:

typedef enum
{
   H264FORMAT_AUTO = 0,
   H264FORMAT_STANDARD_H264 = 1,
   H264FORMAT_STANDARD_AVC1 = 2,
   H264FORMAT_LEAD = 3,
   H264FORMAT_IPOD = 4,
   H264FORMAT_PSP = 5
} eH264OUTPUTFORMAT;

Describes possible values for the output mode, set in the OutputFormat property.

 

3. eH264ENCODINGSPEED

typedef enum
{
   H264SPEED_1 = 1,
   H264SPEED_2 = 2,
   H264SPEED_3 = 3,
   H264SPEED_4 = 4,
} eH264OUTPUTFORMAT;

Sets the speed of encoding, set in the EncodingSpeed property.

4. eH264ENCODINGTHREADS

typedef enum
{
   H264THREAD_AUTO = 0,
 H264THREAD_1 = 1,
   H264THREAD_2 = 2,
   H264THREAD_3 = 3,
   H264THREAD_4 = 4,
} eH264ENCODINGTHREADS;

Describes possible values for the number of encoding threads, set in the EncodingThreads property.