Documentation

This is where you'll find tutorials and other instructional documentation to get you started with the DivX tools we provide to help you tweak your DivX video. Info is organized by the technologies we support, so choose from the list below.

HEVC

HEVC video support is coming soon to DivX software, and this is where we'll publish our documentation so you can be among the first to learn about DivX HEVC video in HD and 4K resolutions.

Stay tuned for upcoming releases and remember, we want to hear what you think.

DivX HEVC Video Profile

Last updated on Wed, 10/16/2013

It wasn't just hype when we said earlier this year that DivX is among the first to deliver tools for HEVC content and playback. And it all starts with this first look at the new DivX HEVC 4K, 1080p and 720p profiles our team is developing. Keep in mind it only defines the VIDEO portion of the profiles at this time. Audio, features and everything else that make up a DivX profile are still in the works, so check back often or sign up for email alerts when we have something big to announce.

If you’re reading this and excited to start testing out the profiles, you already understand that HEVC, or H.265, is the next big thing in video technology. With the promise of up to 50% compression efficiency compared to today’s best encoding tools (AVC/H.264), we believe HEVC can help to drastically improve video streaming capabilities, particularly in a mobile environment, and facilitate 4K content production and delivery to new Ultra HD displays.

HEVC is a game changer, and we're heavily invested in its adoption across the video industry. To kick it off, over the next few months we'll release DivX HEVC Muxer, Player and Encoder tools right here on Labs to anyone who wants to check them out. The draft profiles we're posting today form the core of this toolset, and should be viewed as a starting point for a range of software and hardware implementations that enable DivX HEVC video creation and playback across multiple platforms and devices.

Still here? Go download the profiles, take them for a spin, and make sure you share your feedback with us. We have a really smart group of people waiting to hear what you think and answer any questions you may have.

AttachmentSize
DivX_HEVC_Profiles.pdf367.26 KB

Using DivX HEVC Community Encoder

The DivX HEVC encoder is a command line tool that is capable of creating HEVC bitstreams. Download the binaries here.

Usage

DivX H.265/HEVC Encoder

Usage: DivX265 -i <infile> -o <outfile> -br <bitrate> -s <w>x<h> (for raw infile)

or: DivX265 -i <infile> -o <outfile> -br <bitrate> (for .avs|.avi infile)

or: DivX265 -h (for help)

Example Usage

from a raw file (yuv/raw, assumes IYUV/I420 colorspace):

  • DivX265.exe -i content_in.yuv -o content_out.hevc -br 3000 -s 1280x720

Piping from stdin through another command line tool:

  • ffmpeg.exe -i content_in.avi -f rawvideo -pix_fmt yuv420p pipe:1 | DivX265.exe -s 1280x720 -br 4000 -i - -o content.hevc
    10 bit raw input format
  • ffmpeg.exe -i content_in.avi -f rawvideo -pix_fmt yuv420p10le pipe:1 | DivX265.exe -s 1280x720 -br 4000 -i - -o content.hevc --format yuv420p10le [ --main10 ]

from an AVS file (make sure AVISynth is installed):

  • DivX265.exe -i content_in.avs -o content_out.hevc -br 3000

from an AVI file:

  • DivX265.exe -i content_in.avi -o content_out.hevc -br 3000

Dual frame rate stream (temporal scalability):

  • DivX265.exe -i content_in.avi -o content_out.hevc -br 3000 --temporal-scalability

Options

Flag Description
-h, --help Help
-v, --verbose Verbose mode, detailed messages output.
-q, --quiet Quiet mode, no messages output.
-i, --input <Input file> Required. (For raw stream from stdin, use -i -)
-F, --fixed-gop-length Disable scene change detection, results in fixed gop intervals
-aqo <1-5> Algorithm quality optimized for:
  • 1: fastest speed
  • 2: faster
  • 3: balanced (default)
  • 4: higher quality
  • 5: highest quality
-10, --main10 Enables Main 10 (10 bit) profile
--no-wpp Disable Wavefront Parallel Processing
-ts, --temporal-scalability Enable two layer temporal scalability, where the frame rate of the baselayer is reduced by 2
-709Selects 709 for colour-primaries, transfer-characteristics and matrix coefficients
--colour-primaries, --transfer-characteristics, --matrix-coefficients Signaling colorspace properties: 709, 2020, ...
-o, --output <Output file> Required.
--format <yuv420p, yuv420p10le, yuv422p10le, I420, V210 > Raw pixel format
-s, --size <height>x<width> Required for raw files. Frame dimensions (e.g. 1920x1080)
-br, --bitrate <bitrate> Target bitrate in kbps
-qp <qp> Constant Quantizer, creates potential non-compliant DivX HEVC Profile streams
-I, --interval <interval> Keyframe interval. 1 to 6 seconds. Default=5
-n, --frames <number> Maximum number of frames to encode
--start <number> Start encode from specified frame
-fps, --framerate <Frame rate> Frame rate. Default=24 Hz (raw files) or derived from file (.avs/.avi)
  • 60 Hz
  • 60000/1001 Hz
  • 50 Hz
  • 48 Hz
  • 30 Hz
  • 30000/1001 Hz
  • 25 Hz
  • 24 Hz
  • 24000/1001 Hz
    --psnr Calculates PSNR metrics

    Notes

    • For more information on bitrate, keyframe intervals, etc., please refer to the DivX HEVC Video Profiles (July 2014).
    • The default colorspace for encoding is assumed to be IYUV or I420 (YUV 4:2:0 planar)

    Playing HEVC in DivX Player (Mac)

    UPDATE: You no longer need to use the special plug-in below to play DivX HEVC. Simply get the latest DivX Player!

    The time has come for ... [drum roll] ... real-time 1080p HEVC video playback in DivX Player for Mac!

    Prerequisites

    • Download and install DivX Player 9.1.3
    • Download our HEVC Plugin v1.1 for DivX Player
    • Verify that the below files are present in the DivXHEVC_Plugins_v1.1_OSX.zip file you downloaded
      • DivXHEVCDecode.bundle
      • DivXMKVSource.bundle
      • ReadMe_forMac.txt
      • WEBM_LICENSE.TXT

      Installing HEVC Support

      • Unzip the contents of the zip file into Applications>DivX Player.app>Contents>Plugins directory
      • Restart DivX Player

      Uninstalling HEVC Support

      • Navigate to Applications>DivX Player.app>Contents>Plugins directory
      • Delete these files:
        • DivXHEVCDecode.bundle
        • DivXMKVSource.bundle
        • ReadMe_forMac.txt
        • WEBM_LICENSE.TXT
      • Restart DivX Player
      Once you're all set up, cruise over to our showcase page to download Tears of Steel film in DivX HEVC.

      Notes

      • This release includes HEVC decoder plugins, for the DivX player 9.1.3, which are HM-11.0 compliant
      • Seeking is now supported during playback
      • We've tested and confirmed real time 1080p playback of the content Tears of Steel. on the below MAC hardware:
        • MacBook Pro w/ Intel Core i7 @ 2.7 GHz, 8 GB RAM running OSX 10.8.3
        • Mac Mini w/ Intel Core i5 @ 2.5 GHz, 4 GB RAM running OSX 10.8.4
        • iMac w/ Intel Core 2 Duo @ 2.8 GHz, 2 GB RAM running OSX 10.7
        • iMac w/ Intel Core 2 Duo @ 2.8 GHz, 2 GB RAM running OSX 10.6.8
      When you're done, share your feedback. We look forward to hearing what you think!

    Playing HEVC in DivX Player (Windows)

    UPDATE: You no longer need to use the special plug-in below to play DivX HEVC. Simply get the latest DivX Player!

    The time has come for real-time up to 1080p HEVC video playback in DivX Player!

    Prerequisites

    • Download and install DivX Player 9.1.3
    • Download our HEVC Plugin v1.1 for DivX Web Player
    • Verify that the below files are present in the DivXHEVC_Plugins_v1.1_Windows.zip file you downloaded
      • DivXHEVCDecode.dll
      • DivXHEVCDecode.xml
      • DivXMKVSource.dll
      • DivXMKVSource.xml

    Installing HEVC Support

    • Unzip the contents of the zip file into C:\Program Files (x86)\DivX\DivX Plus Player\DSEPlugins directory
    • Uninstalling HEVC Support

      • Navigate to C:\Program Files (x86)\DivX\DivX Plus Player\DSEPlugins directory
      • Delete these files:
        • DivXHEVCDecode.dll
        • DivXHEVCDecode.xml
        • DivXMKVSource.dll
        • DivXMKVSource.xml

      Notes

      • This release includes HEVC decoder plugins,for the DivX player 9.1.3, which are HM-11.0 compliant
      • Seeking is now supported during playback
      • We've tested and confirmed real time 1080p playback on a 4-Core i5 with 4GB RAM with content Tears of Steel.
      • Instructions above are based on Windows 7 64 bit operating system. 32 bit Windows operating systems will use "C:\Program Files\..."
      When you're done, share your feedback. We look forward to hearing what you think!

    Using MKVToolNix for HEVC Muxing

    Who's ready to mux? To get started, visit the HEVC Support in MKV page to download the toolset you need to start muxing DivX HEVC video into MKV (binaries and our patched source code). By the time you get through this page, you should have a good understanding of how to use MKVToolNix to make it happen.

    Download HEVC Bitstreams

    First, you'll need some video streams:

    Now let's see MKVToolNix in action!

    Merge HEVC into MKV

    After you download some of the streams (above), then...

    mkvmerge --default-duration 0:24fps --aac-is-sbr 0:1 myVideoIn.hevc myAudioIn.aac -o myMuxedMovie.mkv

    Extract to MKV

    mkvextract tracks myMuxedMovie.mkv 0:myVideoOut.hevc 1:myAudioOut.aac

    The above example is for one of the sample 720p showcase content, whose frame rate is 24. If you use mkvmerge with any other content, use the above command with corresponding file names and parameters.

    Technical Details

    The following section provides some technical details to help you understand our thinking around how HEVC could be stored within the Matroska multimedia container. Consider it a proposal and not a final spec, and please weigh in on our forums or join the discussion over on the Matroska Dev List.

    Normative Reference(s)

    Informative Reference(s)

    Article Conventions

    • An Element will contain children and an Attribute will contain a data
    • ELEM(“name”) – Is used to explicitly denote as an element. e.g. ELEM(“Segment”)
    • ATTR(“name”) – Is used to explicitly denote as an attribute. e.g. ATTR(“CodecPrivate”)

    How it is marked as HEVC?

    The Matroska multimedia container contains the ATTR("CodecID") a child of the ELEM("TrackEntry") that defines the codec used to encode the data of the track.


    The value of ATTR("CodecID") for HEVC is V_MPEGH/ISO/HEVC following the same convention used with AVC that is defined as V_MPEG4/ISO/AVC.

    CodecID Description
    V_MPEGH/ISO/HEVC MPEG-H Part 2 (ISO/IEC 23008-2)

    What is the Codec Specific Information?

    The Matroska multimedia container also contains codec initialization data, ATTR("CodecPrivate") in the ELEM("TrackEntry"). The format of the ATTR("CodecPrivate") has been extended to add HEVC support.


    The format of the ATTR("CodecPrivate") has been modified to include the new video parameter set (VPS) defined in the HEVC standard. The VPS will be included in the ATTR("CodecPrivate") if and only if available in the HEVC stream. The table below defines the format of the ATTR("CodecPrivate") if the ATTR("CodecID") is equal to V_MPEGH/ISO/HEVC.

    Value Bits Description
    configuration_version 8 The value should be 0 until the format has been finalized. Thereafter is should have the specified value (probably 1). This allows us to recognize (and ignore) non-standard CodecPrivate
    general_profile_space 2 Specifies the context for the interpretation of general_profile_idc and general_profile_compatibility_flag
    general_tier_flag 1 Specifies the context for the interpretation of general_level_idc
    general_profile_idc 5 Defines the profile of the bitstream
    general_profile_compatibility_flag 32 Defines profile compatibility, see [HEVC] for interpretation
    general_progressive_source_flag 1 Source is progressive, see [HEVC] for interpretation
    general_interlace_source_flag 1 Source is interlaced, see [HEVC] for interpretation
    general_non-packed_constraint_flag 1 If 1 then no frame packing arrangement SEI messages
    general_frame_only_constraint_flag 1 If 1 then no fields, see [HEVC] for interpretation
    Reserved 44 Reserved Field, Value TBD 0
    general_level_idc 8 Defines the level of the bitstream
    Reserved 4 Reserved Field, value '1111'b
    min_spatial_segmentation_idc 12 Maximum possible size of distinct coded spatial segmentation regions in the pictures of the CVS
    Reserved 6 Reserved Field, value '111111'b
    Parallelism_type 2 0=unknown, 1=slices, 2=tiles, 3=WPP
    Reserved 6 Reserved Field, value '111111'b
    chroma_format_idc 2 See [HEVC] spec for details, table 6-1
    Reserved 5 Reserved Field, value '11111'b
    bit_depth_luma_minus8 3 Bit depth luma minus 8
    Reserved 5 Reserved Field, value '11111'b
    bit_depth_chroma_minus8 3 Bit depth chroma minus 8
    Reserved 16 Reserved Field, value 0
    Reserved 2 Reserved Field, value 0
    max_sub_layers 3 maximum number of temporal sub-layers
    temporal_id_nesting_flag 1 Specifies whether inter prediction is additionally restricted. see [HEVC] for interpretation.
    size_nalu_minus_one 2 Size of field NALU Length – 1
    num_parameter_sets 8 Number of parameter sets
    for (i=0;i<num_parameter_sets;i++) {
    array_completeness 1 1 when there is no duplicate parameter set with same id in the stream, 0 otherwise or unknown
    Reserved 1 Reserved field, Value '1'b
    nal_unit_type 6 Nal unit type, restricted to VPS, SPS, PPS and SEI, SEI must be of declarative nature which applies to the whole stream such as user data sei.
    nal_unit_count 16 Number of nal units
    for (j=0;j<nalu_unit_count;j++) {
    size 16 Size of nal unit
    for(k=0;k < size;k++) {
    data[k] 8 nalu data
      }
     }
    }

    Above table references official [HEVC] spec documents

    How is the HEVC Stream Stored?

    The stream data in Matroska is stored within blocks, either a ATTR("Block") or ATTR("SimpleBlock").


    See the Matroska specification for details on this structure:

    The HEVC stream is stored within MKV using the same convention as AVC with each NAL unit having a 4-byte unsigned integer that precedes the NAL. The value of the unsigned integer is the size of the NAL unit that follows. In contrast the value of the 4-byte unsigned integer with a stream stored using the Annex B syntax does not use a 4-byte size prefix but instead uses a constant 4-byte start code of 0x00000001.

    A HEVC block is considered a keyframe if the HEVC sample is an Instantaneous Decoding Refresh (IDR) picture, a Clean Random Access (CRA) picture, or a Broken Link Access (BLA) picture.

    H.264

    DivX Plus HD is our video profile based on the H.264 standard. Below you'll find some guides to help you encode to this profile and add features to your DivX MKV video.

    Encoding with x264

    Encoding DivX Plus HD video bitstreams using x264

    x264 is a popular H.264 encoder whose source is freely available under GNU General Public License (GPL).1 It can be used to encode video bitstreams for DivX Plus HD MKV files which are later combined (muxed) with other assets such as audio tracks and metadata.

    The DivX Plus HD format is designed to bridge the gap between desktop computers and consumer electronics (CE) devices such as DVD players, set-top boxes, connected devices, and portable media players. Wheras desktop systems can play media with a wide variety of characteristics so long as they are powerful enough, playback support and experience on CE devices is constrained by numerous factors: the capabilities of the decoder hardware, network bandwidth, drive read rate, memory I/O performance, renderer capabilities and display properties.

    The DivX Plus HD profile establishes capabilities that will be met by all DivX Plus HD certified devices. By configuring an encoder accordingly, you can be assured that your content will play well wherever the DivX Plus logo appears.

     

    Builds Tested

    The information in this article was derived using x264 builds up to version 1301, but should also apply to later versions. Read our recommendations below to find important information for particular ranges of builds.  If you have feedback or suggestions please let us know via the DivX Plus HD forum.

     

    Bitstream Properties

    Here we describe key arguments that you should pass on the x264 command line to produce a fully DivX Plus HD compliant video bitstream.

    --vbv-maxrate=20000 --vbv-bufsize=25000
    

    These arguments inform x264 about the data rates supported by all certified devices. During encoding, the data rate fluctuates as the complexity of the video changes over time and an encoder must manage the data rate so that video does not temporarily slow or stall during playback.

    --level 40

    This argument tells x264 to mark the video bitstream as conforming to level 4.0. From this, decoders can understand certain requirements about the memory and processing rates required to decode the bitstream.

    --qpmax 51

    This value allows x264 to use the highest possible quantizer if under exceptional circumstances it is necessary to meet data rate constraints.

    Note that the default value for qpmax is 51 and therefore it is not necessary to explicitly specify it, only to avoid overriding it.

    --bframes 3

    Frames with bi-directional prediction assemble the picture texture from both past and future frames. Devices certified for DivX Plus HD are tested to decode up to three consecutive bi-directionally predicted frames.

    --keyint <4*FPS>
    

    This argument ensures that there is at least one keyframe every four seconds. This improves the navigation experience on consumer electronics devices that may display only keyframes during fast-forward and rewind. Note that the value is given in frames, therefore multiply the frame rate of the input file by 4 and take the integer part. For example, when encoding a 24fps clip use --keyint 96, and for a 23.976 NTSC clip use --keyint 95. Although it is possible to use longer or shorter intervals we have found four seconds to be a good trade-off between navigation experience and compression efficiency.

    Thus, a fully compliant x264 command line would contain at minimum the following arguments:

    x264 --vbv-maxrate=20000 --vbv-bufsize=25000 --level 40 --bframes 3 --keyint <4*FPS> -o <output file> <input file>

    The same arguments can be combined with the --preset and --tune arguments in recent versions of x264 as follows:

    x264 --preset <…> --tune <…> --vbv-maxrate=20000 --vbv-bufsize=25000 --level 40 --bframes 3 --keyint <4*FPS> -o <output file> <input file>
    

     

    Video Properties

    DivX Plus devices fall into many categories with varying scaler capabilities and a range of supported display types. To ensure the correct presentation in all playback scenarios, it is important that the input video adheres to some key constraints.

    Video frame rates should match those listed in the table below, which cover common video formats and enable robust display timing implementations. Maximum and minimum picture dimensions for each valid frame rate are also given.

    Rate
    (Numerator)
    Scale
    (Denominator)
    Approximate FPS
    = Rate / Scale
    Max Dimensions Min Dimensions
    60 1 60 1280x720 320x240
    60000 1001 59.940 1280x720 320x240
    50 1 50 1280x720 320x240
    30 1 30 1920x1080 320x240
    30000 1001 29.970 1920x1080 320x240
    25 1 25 1920x1080 320x240
    24 1 24 1920x1080 320x240
    24000 1001 23.976 1920x1080 320x240
    Width and height must each be multiples of 8.
    Width and height are tested independently for minimums and maximums.
    Any alternative rate/scale representations must evaluate to exact equivalents.

     

    Toolchains that leverage AVISynth, a frame-serving toolkit  freely available under GNU General Public License (GPL)2, can use AssumeFPS() to force the correct numerator and denominator for input files with frame rates that are insignificantly different or any of the FPS functions otherwise, e.g. ChangeFPS().

    If the pixels in the input video are non-square samples of the original video you can specify the correct sample aspect ratio using x264's --sar argument. For progressive video any Sample Aspect Ratio (SAR) present in Table E-1 of the H.264 specification with aspect_ratio_idc in the range one  through sixteen is permitted, including in order of tallest to widest:

    10:11, 1:1, 12:11, 40:33, 4:3, 15:11, 16:11, 3:2, 160:99, 18:11, 20:11, 64:33, 2:1, 24:11, 80:33, 32:11

    Depending on the playback environment, decoder and display devices will have specific methods of handling interlaced content. Some devices may de-interlace internally, while others may output interlaced video for an external display to present as appropriate.  In order that interlaced material is displayed correctly stricter rules apply during encoding, and in the video bitstream only the following combinations of resolution and SAR are permitted:

    Interlaced resolution Support SARs
    1920x1080i60 1:1 (16:9 frame)
    1920x1080i50 1:1 (16:9 frame)
    1440x1080i60 1:1 (4:3 frame), 4:3 (16:9 frame)
    1440x1080i50 1:1 (4:3 frame), 4:3 (16:9 frame)
    720x480i60 1:1, 40:33 (16:9 frame), 10:11 (4:3 frame)
    720x576i50 1:1, 16:11 (16:9 frame), 12:11 (4:3 frame)
    704x480i60 1:1, 40:33 (16:9 frame), 10:11 (4:3 frame)
    704x576i50 1:1, 16:11 (16:9 frame), 12:11 (4:3 frame)
    640x480i60 1:1 (4:3 frame)
    480x480i60 1:1, 20:11 (16:9 frame), 15:11 (4:3 frame)
    480x576i50 1:1, 24:11 (16:9 frame), 18:11 (4:3 frame)
    352x480i60 1:1, 80:33 (16:9 frame), 20:11 (4:3 frame)
    352x576i50 1:1, 32:11 (16:9 frame), 24:11 (4:3 frame)

    There are extensive tutorials on using x264 on their official website, but we invite you to discuss settings or your applications in our developer forum if you need help creating DivX Plus compatible files.

     

    Recommendations and Points of Interest

    Over time x264's developers have provided feature enhancements and bug fixes as well as changes to command line setings. Some of these changes affect x264's behavior and how closely its output complies with the settings specified. We make the following notes and recommendations to ensure good interoperability with DivX Plus devices. We continue to research recent changes in x264 and this page may be updated periodically as appropriate.

    Rate control

    • You should not use any build of x264 prior to 861 because VBV was not fully implemented prior to this. Without buffer management there is a high risk that content will stutter during playback on devices.
    • VBV implementation was improved in builds 977 and later leading to smaller buffer underflows.
    • We recommend using builds 1287 or later due to important fixes for VBV conformance.
    • 1-pass rate control tends to allow more buffer underflows than 2-pass rate control. 2-pass encoding is therefore recommended for the most reliable playback experience. You must use the same target rates during both passes to maintain VBV compliance.

    Profile selection

    • x264 builds prior to 1179 default to outputting bitstreams compliant with H.264 Main profile.
    • x264 builds builds 1179 and later default to outputting bitstreams compliant with H.264 High profile.

    DivX Plus HD supports both Main profile and High profile bitstreams. You can cause builds prior to 1179 to output High profile bitstreams by adding the argument --8x8dct to the x264 command line.

     

    Footnotes:

    1. x264's Project Home Page
    2. AVISynth's Project Home Page

    Smooth FF/RW

    DivX Plus MKV extension: Smooth FF/RW

    Have you ever been frustrated when trying to fast-forward or rewind a video because your player becomes unresponsive and the video skips large chunks of time unpredictably making it hard to quickly find the scene you're looking for? Rewinding can be particularly infuriating using CDs or DVDs, and with downloaded video even faster media can still be problematic due to the long and irregular gaps between keyframes.

    DivX Plus offers an extension to the MKV container called Smooth FF/RW that helps to solve this experience problem by including a special navigation track in your MKV file during authoring. This extension is supported by all DivX Plus devices and gives you the option to trade a small filesize overhead for a much better navigation experience. This article shows how you can try this new feature with the easy-to-use DivX Plus Converter as well as providing information and sample tools that you can use to author this feature manually or to add support in your own encoding tool chain.

     

    See it in action

    We took a regular DivX Plus HD .mkv video, added the Smooth FF/RW extension, then filmed it playing it in a DivX Plus HD device:


    No video? Get the DivX Web Player for Windows or Mac

    You can also download this file and play it in the DivX Plus Player.

     

     

    Clicking the fast-forward and rewind buttons in DivX Plus Player multiple times increases the playback rate, shown in the lower-left hand corner of the video area. For files that include a Smooth FF/RW track the following behavior is typical:

    Mode Rate What's displayed
    Rewind 16x-32x Smooth FF/RW track at several fps for easy viewing
    Rewind 2x-8x Smooth FF/RW at full speed for precise navigation
    Play 1x Normal playback
    Fast-forward 2x-4x
    • Main video track if CPU is fast enough, otherwise..
    • Smooth FF/RW track at full speed for precise navigation
    Fast-forward 8x Smooth FF/RW track at full speed for precise navigation
    Fast-forward 16x-32x Smooth FF/RW track at several fps for easy viewing

    When a file contains a Smooth FF/RW track DivX Plus Player can also update the picture instantly as you click and drag the scrub control at the bottom of the window.

    Keep in mind that although DivX Plus Player can somewhat simulate the navigation experience on your desktop the biggest improvement can be seen when you're sitting back on the couch using a real device with a remote control in your hand. Without the Smooth FF/RW extension it is impossible to deliver this level of control with internet-based content. That's because in order to achieve such high compression modern encoders use delta frames that mostly depend on being decoded in sequence. To display a specific picture during FF/RW a player has to find the nearest past key frame, which acts as a restart point, then decode from there forward until the desired picture is reached. This is generally infeasible during fast-forward and especially so during rewind because keyframes are often irregularly spaced and can be up to several hundred frames apart.

     

    How it works

    The Smooth FF/RW extension adds a subsampled copy of the main video track to the .mkv file where the pictures are all key frames. Both the picture resolution and frame rate are substantially reduced, and the Smooth FF/RW track typically adds 10-15% to the overall file-size.

     

    Special backwards references are also added so that players can rapidly traverse the Smooth FF/RW track in both directions.

     

    Creating a Smooth FF/RW track manually

    You can manually author a Smooth FF/RW track that will work on any DivX Plus HD device so long as you:

    1. Respect the video constraints of DivX Plus HD profile, and..
    2. Follow the additional requirements for the Smooth FF/RW track.
    3. Add the Smooth FF/RW track to your video using a mux supporting the correct Smooth FF/RW track extension syntax.

    The next sections of this article are more technical and walk through the Smooth FF/RW track requirements, encoding such a track, and adding the encoded track to an existing .mkv file.

     

    Smooth FF/RW track requirements

    In order to guarantee playback on DivX Plus devices, observe these additional restrictions when encoding Smooth FF/RW tracks:

    Property Requirements
    Frame types IDR only
    Frame rate

    One of the following decimations of the main video track rate:

    • 5/1 fps
    • 5/1.001 fps
    • 4/1 fps
    • 4/1.001 fps
    • 1/1 fps
    • 1/1.001 fps

    The rate denominator for the Smooth FF/RW track must match that of the main video track. E.g. if the main video is at 23.976 (24/1.001) fps the Smooth FF/RW track can be at 3.996 (4/1.001) fps.

    Picture timing SEI No conveyance of telecine or interlaced modes, e.g. pic_struct = 0
    Field types Progressive only
    Picture resolution 1/2 or 1/4 of main video track resolution
    Picture width 160-960 pixels, modulus 8
    Picture height 120-544 pixels, modulus 8
    Sample aspect Must match aspect of the main video track
    NAL bitrate Maximum 2Mbps
    CPB size 25 Mbit

     

    Encoding a Smooth FF/RW track manually

    Let's work through an example of encoding a Smooth FF/RW track using x264, a popular open-source H.264 encoder. Imagine we have a 1080p (1920x1080) main video track at 23.976fps encoded at around 8Mbps average, and we want to create a Smooth FF/RW track at around 1/4 resolution.

    1. Calculate the resolution of the Smooth FF/RW track.

      Width = 1920 / 4 = 480 pixels
      Height = 1080 / 4 = 270 pixels

      Note that the height is not evenly divisible by 8. We can correct that by rounding up:

      270 / 8 = 33.75
      Height = 34 * 8 = 272 pixels (rounding up)

      Final dimensions for the Smooth FF/RW track are 480x272.

    2. Choose a frame rate to decimate to. The main track is at 23.976fps, which is actually 24/1.001, so consulting the table above we will choose 4/1.001fps because 4 goes into 24 evenly.

      Now we know our Smooth FF/RW video will be 480x272@4fps.

    3. Choose a data rate for the Smooth FF/RW track

      Typically a good choice will be around 10-15% of the average data data rate of the main video track. In this example the main video track was encoded at 8Mbps, which gives a range of:

      8000 * 0.10 = 800 kbps
      8000 * 0.15 = 1200 kbps

      For this example we'll choose 1000kbps (12.5%)

    4. Create the Smooth FF/RW video track.

      One way to create such a clip from the main video track is to use AVISynth. A suitable script might look like this:

      # Load the main track (you might use another source filter)
      DirectShowSource("MainTrack.mkv", audio=false)

      # Force the correct frame rate numerator/denominator
      AssumeFPS(24000,1001)

      # Drop frames and force the new rate
      ChangeFPS(4000,1001)

      # Downsample. A sharp/slow resizer is not necessary
      BilinearResize(480,272)
    5. Pass the AVISynth script to x264 for encoding:

      x264 --level 40 --keyint 1 --vbv-maxrate=2000 --vbv-bufsize=25000 --bitrate 1000 -o SmoothFFRWTrack.264 SmoothFFRWTrack.avs

      Arguments in blue are derived from the master DivX Plus HD requirements, and arguments in green are derived from the Smooth FF/RW track requirements.

      After encoding is complete we have a valid .264 elementary stream ready for muxing.

     

    Adding the Smooth FF/RW track to an MKV file

    To add a Smooth FF/RW track to an .mkv file you need to use a mux utility that understands the syntax of the extension. DivX provides a reference implementation in the DivXMKVMux sample tool. Begin by downloading and installing the DivXMKVMux package.

     

    For easy access to DivXMKVMux launch a command console via the shortcut provided in the DivX Plus programs group on your Start menu. The console will start in the installation directory and the installation directory is automatically added to the PATH environment variable for the console session so that you can type "DivXMKVMux" from any other directory.

    You can access the full list of arguments for DivXMKVMux using:

    DivXMKVMux --help

    The help output is lengthy because DivXMKVMux is fairly flexible, but the required syntax is actually quite straightforward. To use DivXMKVMux to add a Smooth FF/RW track to an existing .mkv file as a post-processing simply step specify an input file with the -r argument:

    DivXMKVMux -o Complete.mkv -r MainTitle.mkv -tt SmoothFFRWTrack.264

    You can view the output file including the Smooth FF/RW track in DivX Plus Player.

     

    Let us know what you think

    Please send us your comments and questions on this feature via the DivX Plus (.mkv) forum (requires sign-in).



    Technical description

    This section of the article describes the technical implementation of the Smooth FF/RW track and assumes the reader is familiar with MKV EBML structure. Less technical readers may wish to skip this section.

    The following diagrams illustrate how Smooth FF/RW tracks are represented in DivX Plus HD .mkv files. Note that during development this feature has been referred to as TrickTrack. For the purposes of consistency that nomenclature is retained in this technical description. At a high level:

    • The Smooth FF/RW track is contained in a separate EBML structure following the EBML structure for the main video.
    • Each video TrackEntry has a TrickTrackFlag indicating whether or not the track is a Smooth FF/RW track.
    • In each video TrackEntry there is a cross-reference to the related SegmentUID and TrackUID in the corresponding EBML structure. Note that the EBML class IDs for these cross-references differ depending on TrickTrackFlag.
    • Only when all expected elements are present and all cross-references between master and Smooth FF/RW track segment and track UIDs are succesfully resolved is a valid relationship established

     

    Additionally, backwards references are written into BlockGroups for the Smooth FF/RW track that allow fast traversal of the Smooth FF/RW track in both directions. The illustration below shows how these references are written for the first Cluster. For files with multiple Clusters references will also exist from the first BlockGroup for the Smooth FF/RW track in each new cluster to the last BlockGroup for the Smooth FF/RW track in the previous cluster.

     

    The EBML elements for the Smooth FF/RW extension are:

    [+] Click to expand Key

    Element Name Lvl EBML ID Ma Mu Rng Def Type D+ Description
    Segment->Track->TrackEntry
    TrickTrackUID 3 [C0] - - >0 - u * The TrackUID of the Smooth FF/RW video in the paired EBML structure corresponding to this video track.
    TrickTrackSegUID 3 [C1] - - - - b * The SegmentUID of the Segment containing the track identified by TrickTrackUID.
    TrickTrackFlag 3 [C6] - - 0-1 0 u * Set to 1 if this video track is a Smooth FF/RW track. If set to 1, MasterTrackUID and MasterTrackSegUID should must be present and BlockGroups for this track must contain ReferenceFrame structures. Otherwise, TrickTrackUID and TrickTrackSegUID must be present if this track has a corresponding Smooth FF/RW track.
    MasterTrackUID 3 [C7] - - >0 - u * The TrackUID of the video track in the paired EBML structure that corresponds to this Smooth FF/RW track.
    MasterTrackSegUID 3 [C4] - - - - b * The SegmentUID of the Segment containing the track identified by MasterTrackUID.
    Segment->Cluster->BlockGroup
    ReferenceFrame 3 [C8] - - - - c * Contains information about the last reference frame.
    ReferenceOffset 4 [C9] * - - - u * The relative offset, in bytes, from the previous BlockGroup element for this Smooth FF/RW video track to the containing BlockGroup element.
    ReferenceTimeCode 4 [CA] * - - - u * The timecode of the BlockGroup pointed to by ReferenceOffset.

    Additional details:

    • All of the above elements are mandatory for a valid implementation of the Smooth FF/RW extension.
    • Lacing is not supported for the Smooth FF/RW video track.

    Recommendations:

    • Players that do not yet support the Smooth FF/RW extensions can avoid playing the Smooth FF/RW track as a title by detecting a TrickTrackFlag element whose value is 1.

    World Fonts

    DivX Plus MKV extension: World Fonts

    One of the benefits of authoring content in MKV is the ability to include multiple subtitle tracks so viewers in different geographies can enjoy your work. Some uncertainties accompanying multilingual subtitle tracks include whether viewers will have suitable fonts installed to view the content, whether the subtitles will appear stylistically correct on every system, and what happens when someone tries to play the file on a device that may not be capable of displaying all the languages you've included?

    DivX Plus offers an extension to the MKV container called World Fonts that solves these problems by authoring appropriate TrueType fonts into the file in a manner such that all players can reliably load them and display subtitles for every language. A special optimization technique is used to significantly reduce the size of the font data so fonts can be loaded not only by desktop players but also by DivX Plus Web Player and hardware devices with limited memory.

     

    See it in action

    We encoded Blender Foundation's Sintel trailer with four subtitle languages, including complex east-asian languages like Chinese, each version with and without the World Fonts extension. The subtitles that include World Fonts will be displayed correctly even if your local system or player does not support them. Note that DivX Web Player 2.0.2 contains preliminary support for this feature and this will become more optimal in future.


    No video? Get the DivX Web Player for Windows or Mac

    The available subtitles are:

    1. French
    2. French with World Fonts
    3. Chinese (Not yet natively supported)
    4. Chinese with World Fonts
    5. Japanese (Not yet natively supported)
    6. Japanese with World Fonts
    7. Russian
    8. Russian with World Fonts

    Select a subtitle by right-clicking the video as it plays. Notice that even though Chinese and Japanese are not yet natively supported by DivX Plus Web Player they display correctly when World Fonts are applied.

    You can also download this file and play it in the DivX Plus Player.

     

    How it works

    The World Fonts extension allows the content author to associate a specific TrueType font with each individual subtitle track. The font data is then optimized by scanning through each subtitle track and identifying all of the characters and symbols that need to be displayed, then removing anything unnecesary. Each font is then embedded in the .mkv file and associated with the subtitle track that it has been optimized for. The reduced data size means that World Fonts can be used with DivX Plus Web Player without causing lengthy buffering and by devices with limited memory.

     

    How effective is optimization?

    Subtitles in most Western European languages that use a latin alphabet (e.g. English, French, German, Italian, Spanish and so on) typically require between 60 to 110 glyphs after optimization. One font often used by desktop software to render subtitles is Arial, and by comparison it contains well over 1600 glyphs. Optimizing Arial for a Western European language subtitle typically yields data savings of 86-92%.

     

    Asian languages use a far larger number of glyphs and fonts supporting these languages can be massive. For example, Arphic's "PL KaitiM" for Traditional Chinese is nearly 10MB large with over 14,000 glyphs. Fonts this large simply can't be loaded by many devices. However, only a fraction of these glyphs are necessary to display subtitle tracks for languages like Chinese and Japanese.

     

    Complete Unicode fonts, i.e. those that support all languages, are larger still. For example, the well-known Arial Unicode contains more than 50,000 glyphs comprising over 22MB of data. In these cases optimization for many languages will yield savings of more than 99%.

     

    Adding World Fonts to a .mkv file

    To add a World Fonts to an .mkv file you need a utility to perform the font optimization and a file writer that fully implements the requirements of the extension. DivX provides a reference implementation in the DivXMKVMux sample tool. Begin by downloading and installing the DivXMKVMux package.

     

    For easy access to DivXMKVMux launch a command console via the shortcut provided in the DivX Plus programs group on your Start menu. The console will start in the installation directory and the installation directory is automatically added to the PATH environment variable for the console session so that you can type "DivXMKVMux" from any other directory.

    You can access the full list of arguments for DivXMKVMux using:

    DivXMKVMux --help

    The help output is lengthy because DivXMKVMux is fairly flexible, but the required syntax is actually quite straightforward. There are several different ways DivXMKVMux can be used to add an optimized font to an .mkv file. If you haven't already added subtitles to your .mkv file it's easy to add the tracks and optimized fonts in one straightforward operation. Use -r to indicate you're remuxing an existing .mkv file and then specify subtitle files and associated font files with -s:

    DivXMKVMux -o MyOutput.mkv -r MyInput.mkv -s font:MyEnglishFont.ttf lang:eng name:English English.srt -s font:MyFrenchFont.ttf lang:fre name:French French.srt -s font:MyGermanFont.ttf lang:ger name:German German.srt

    Specifying names for the subtitle tracks is optional but you must specify the correct language code or the tracks may not be listed correctly in some players. You can lookup valid alpha-3 language codes in the ISO 639.2 code-list. Remember to quote ("") any filenames containing spaces.

    If you are starting with a .mkv file that already contains subtitle tracks first list the existing tracks so that you can see the list of track numbers as interpreted by DivXMKVMux:

    DivXMKVMux -l MyInput.mkv
    Track language info:

    Title 0:

        Vid: 1 video stream(s)
            0 - master video track

        Aud: 1 audio streams(s)
            0 - eng

        Sub: 3 subtitle stream(s)
            0 - eng
            1 - fre
            2 - ger

    Then use -r to remux the file, specifying an appropriate font for each subtitle track with -f:

    DivXMKVMux -o MyOutput.mkv -r MyInput.mkv -f add:MyEnglishFont.ttf outtrack:0 -f add:MyFrenchFont.ttf outtrack:1 -f add:MyGermanFont.ttf outtrack:2

    For each subtitle track in the input .mkv file DivXMKVMux will optimize the specified font and then add it to the output .mkv file.

    Note that it is strongly recommended to pass only UTF-8 encoded .srt files to DivXMKVMux, especially for non-Latin languages, because this prevents the risk that other encodings are not transformed to UTF-8 correctly internally. If you pass .srt files to DivXMKVMux that don't have a unicode BOM they are assumed to be ANSI and the active system codepage will be used to convert them to UTF-8 unless you explicitly override the codepage number using the -s codepage: option. Generally, if the SRT does not display correctly when opened in Notepad the file is probably not UTF-8 and the active codepage is unsuitable for the conversion.

    You can easily convert the encoding of any input .srt file to UTF-8 using Notepad++, a free text editor, by performing these steps:

    1. Open your .srt file.
    2. Check if the highlighted option in the "Encoding" menu is "Encode in UTF-8". If it is then the file is already UTF-8.
    3. From the Encoding menu choose an appropriate character set, verify the text is displayed correctly, then choose "Convert To UTF-8".
    4. Save your .srt file.

    You can also avoid this process by creating your .srt files with UTF-8 encoding originally.

     

    Support for World Fonts

    Initial support of the World Fonts extension is included in DivX Plus Player and DivX Web Plus Player with these known-issues:

    • In DivX Plus Webplayer 2.0.2 you may be unable to select the first subtitle track. You can work around this problem by choosing any other subtitle and then change to the first subtitle track, or by using the JavaScript API.
    • In the DivX Plus Player 8.1 an attached font may not be loaded if its face style is different than the style set in the player preferences. For example, your preferences are to use an italic face but the attached font has a regular face.

    World Fonts are supported in all DivX Plus HD devices.

     

    Let us know what you think

    Please send us your comments and questions on this feature via the DivX Plus (.mkv) forum (requires sign-in).



    Technical description

    This section of the article describes the technical implementation of the World Fonts feature and assumes the reader is familiar with MKV EBML structure. Less technical readers may wish to skip this section.

    The following diagrams illustrate how World Fonts are represented in DivX Plus HD .mkv files. At a high level:

    • The extension uses various pre-existing MKV EBML element IDs.
    • Some of these elements must take on specific values. Consult the syntax table below for further detail.
    • Fonts are stored as attachments, and must be explicitly associated with the specific subtitle TrackEntry for which they have been optimized by use of an AttachmentLink element in the TrackEntry that references the Attachment FileUID. Only once this reference is successfully resolved is a relationship established.

    Additionally, the following restrictions apply to fonts:

    • The font must be a TrueType (.ttf) font type.
    • The font must contain a table with a Microsoft Unicode character map ("cmap" table entry with Platform ID=1, Encoding ID=3).

     

    The EBML elements for World Fonts are:

    [+] Click to expand Key

    Element Name Lvl EBML ID Ma Mu Rng Def Type D+ Description
    Segment->Track->TrackEntry
    TrackType 3 [83] * - 1-254 - u - The type of this track. Value must be 0x11 for subtitles.
    AttachmentLink 3 [74][46] - - >0 - u - The FileUID of the AttachedFile that contains the TrueType font that has been optimized for this subtitle track.
    Segment->Attachments->AttachedFile
    FileDescription 3 [46][7E] - - - - 8 - For this extension must be "true type font".
    FileName 3 [46][6E] * - - - 8 - The file name of the original TTF font file.
    FileMimeType 3 [46][60] * - - - s - For this extension must be "application/x-truetype-font".
    FileData 3 [46][5C] * - - - b - The binary contents of the optimized TrueType font.
    FileUID 3 [46][AE] * - >0 - u - A unique ID for this attachment. This ID must be referenced by the AttachmentLink element of the subtitle TrackEntry for which this TrueType font file has been optimized.
    FileUsedStartTime 3 [46][61] - - - - u * The timecode at which this optimized font attachment comes into context, based on the Segment TimecodeScale. This element is reserved for future use and if written must be the segment start time.
    FileUsedEndTime 3 [46][62] - - - - u * The timecode at which this optimized font attachment goes out of context, based on the Segment TimecodeScale. This element is reserved for future use and if written must be the segment end time.

    DivX 7 Playback Preview

    Our third Project Rémoulade release is a preview of the new playback components from the upcoming DivX 7 bundle. Building upon past releases, DivX Player 7.0 Beta 1 now features support for MKV files containing high definition H.264 video and surround sound AAC audio! The preview also includes components that extend support for the MKV container and H.264 video to most Windows media players.



    Update: The DivX 7 Playback Preview has been superseded by the release of DivX 7. Click here to read the complete original article.


    Contents

    1. What's in DivX 7 Playback Preview?
    2. What's new in DivX Player 7.0 Beta 1?
    3. Known issues in this preview
    4. Downloading DivX 7 Playback Preview
    5. Uninstalling DivX Playback Preview
    6. How you can help us

    What is in the DivX 7 Playback Preview?

    With the DivX 7 Playback Preview we bring new technologies to DivX Player and other DirectShow-based media players that enable playback of DivX Plus videos. DivX Plus HD is a new DivX video profile that will bring the following formats into the DivX ecosystem when DivX 7 is launched:


    • H.264 video

      A new standard for video compression that is more technically complex than the standard used by DivX 6. H.264 provides better compression and picture quality at the expense of higher system requirements for content creation and playback. Related releases from Project Rémoulade include the DivX H.264 Decoder (Beta 1, Beta 2, Beta 3) and the DivX H.264 Encoder (Alpha 1).

    • AAC audio

      A high-efficiency audio coding standard natively supporting multichannel audio and studio-quality sample rates for crystal clear theatrical surround sound. AAC audio suffers fewer audible artifacts than MP3 at very low bitrates and also requires less bitrate to achieve transparency. MP3 is the audio standard for previous versions of DivX video.

    • MKV container format

      MKV files will be used to contain the H.264 video and AAC audio tracks. The format is feature-extensible by design and supports many audio and subtitle streams within a single file.


    The DivX 7 Playback Preview also includes the DivX H.264 Decoder filter and the DivX MKV Demux filter*. These DirectShow filters extend playback support for MKV files with H.264 video streams to all DirectShow-based media players.

    * The DivX MKV Demux filter does not override any other MKV file splitters you have installed.


    What's new in DivX Player 7.0 Beta 1?



    DivX Player has been extensively upgraded in preparation for some of the exciting new features that will be released with DivX 7 for Windows! Some of the major changes include:


    • High-performance H.264 video decoding with support for Baseline, Main, High, High 10, and High 4:2:2 profiles, full interlace support, multithreaded decoding on up to 8 CPU cores and optimizations for MMX, SSE and SSE2 instruction sets.

    • Multichannel AAC (LC/HE) decoding

    • Support for MKV files including:
      • Multiple audio tracks for multilingual audio, directors commentary or isolated musical scores
      • Multiple subtitle tracks for multilingual subtitles
      • Ordered chapters for chaining MKV files together during playback

    • Initial support for SSA and ASS subtitles which can either be stored within the MKV file or externally

    • Fast frame-accurate seeking

    • Real-time handling of interlaced H.264 video:
      • Bob de-interlace
      • Display top field only
      • Display bottom field only
      • Display weave

    We have also made several other general improvements since DivX Player 6.8.2:


    • The Direct3D renderer is compatible with a wider range of video cards and has improved performance when video is rendered on a secondary display (except where the video area crosses a display boundary). The Direct3D renderer became the default in DivX Player 6.8.1 for systems supporting DirectX 9 with Pixel Shader 2.

    • The GDI renderer has returned and allows DivX Player to display video in circumstances where no hardware acceleration is available, e.g. when the video hardware is in use or over remote desktop.

    • Better handling of AVI files that have a broken index. It is now possible to seek inside the file where a partial index exists and warnings are no longer displayed as soon as the file is opened.

    • Better support for media created using the DivX Author application.


    Known issues in this preview

    This non-exhaustive list of known-issues summarizes some important points you should be aware of when using DivX Player 7 Beta 1:


    • Formatting information is currently stripped from SSA and ASS subtitles

    • When playing AAC HEv2 streams only one channel may be audible

    • For some H.264 files encoded with MBAFF the field order may be detected incorrectly. This may cause the video to flicker during playback. You can work around this issue by temporarily selecting to display top field only.

    • Audio synchronization may be lost on systems using Realtek HD Audio adapters. This appears to be a problem in the Realtek drivers, a workaround is to open the Sounds and Audio Devices control panel to reduce the hardware acceleration for playback to the "Basic acceleration" level.

    • DivX Player may crash while fast-forwarding H.264 video at high speed.

    • There are various known issues for the OpenGL renderer. This renderer is neither the default or fall-back renderer on any system.

    • It is possible to select the DirectDraw renderer when DivX Player is running under the Vista Aero UI. This combination is unsupported and will currently result in a misleading error message stating the video format is invalid. Do not use the DirectDraw renderer if you are using the Vista Aero UI.

    When you play MKV files in third-party media players you may also encounter these known issues relating to the DivX MKV Demux filter:


    • Files that do not contain a video track are not yet supported.

    • Loss of audio synchronization may occur when playing MKV files containing DivX 6 content (ASP video, MP3 audio).

    • After seeking or unpausing the video may briefly play faster or slower than normal while resuming.


    Downloading DivX 7 Playback Preview

    The DivX 7 Playback Preview has been superseded by the release of DivX 7. You can now download everything that was included in this preview for free as part of the DivX for Windows bundle.


    Uninstalling DivX 7 Playback Preview

    If for any reason you wish to uninstall this beta please use the shortcut in the DivX programs group of your Start menu to "Remove the DivX Media Pack", and complete the installation process before re-installing any older version of the DivX software. Only this uninstaller will cleanly remove the DivX 7 Playback Preview components.


    How you can help us

    We want to hear from you! Did you experience any problems using this beta software? Did the player perform well on your system? Did you find a bug? Give us your feedback via the DivX Labs forums!



    If your feedback relates to performance issues you can also email us some of the following information to help us diagnose the problem:


    • Screenshots from CPU-Z that show your CPU, memory and mainboard configuration.

    • Screenshots from DXDiag, which you can launch by simply typing DXDiag into the Run box on your Start menu, so that we can see information about your graphics card (e.g. vendor/model/memory/driver revision).

    • Screenshots of any crash dialogs, including the details view if available.

    • In the case of crashes, an export from MSInfo32, which you can launch by simply typing MSInfo32 into the Run box on your Start menu, so that we can see information about the operating system, running software and application errors.

    If you email us please include your DivX Labs user name and links to any forum threads that further describe the issue.


    DivX H.264 Decoder Beta 1


    Features of the DivX H.264 Decoder

     
    • H.264 Main, High, High 10, High 4:2:2 profiles
    • Full interlace support (MBAFF, PAFF, mixed)
    • Multithreading supporting up to 8 CPUs
    • Optimizations for MMX, SSE, SSE2

    Configuring the decoder

    Once installed the decoder can be configured either by accessing the filter property page from a host application (i.e. a media player), or by selecting the H.264 Decoder Config link in the DivX programs group on your Start menu:



    Click to enlarge

    The options that can be set include:

     
    • Deblocking

      Deblocking should normally be on for H.264 video because the encoder assumes that the decoder will perform in-loop deblocking in accordance with the format specification and codes the video accordingly. Turning off deblocking will therefore introduce artifacts during playback, but because deblocking is computationally expensive this option can be desirable for low-powered systems that could not normally decode H.264 or where battery life is at a premium. Disabling deblocking does not look too bad with most content. Deblocking is enabled by default.

    • Multithreading

      When enabled, this option allows the decoder to subdivide the decoding process across multiple CPUs or cores to accelerate decoding and provide a smoother playback experience. Multithreading is enabled by default.

    • Low latency

      This is an experimental feature that may increase the frame rate for more basic bitstreams at lower resolutions, or on systems with larger CPU cache. Low latency is enabled by default.

    • Disable logo

      Turns off the small DivX logo that appears in the lower-right of the picture for a few seconds at the start of playback. Disable logo is disabled by default.

    • Use default encoding settings in this application When this decoder filter property page is accessed from within a host application, this setting instructs the decoder to turn off features such as color correction and the logo overlay and turn on features such as deblocking to ensure that DivX video sources are processed in their original form without any adjustments applied. This is important when transcoding for example. This option is disabled by default and is set on a per-application basis.

    • Brightness, Contrast, and Saturation

      These sliders enable image adjustments that may improve the appearance of H.264 video on your computer. Each slider is centered by default.

    Creating our test clips

    To test the new decoder we encoded a 12 minute long video sequence from Last Man Standing, a very sharp source clip combining high texture detail, fast motion, strong color contrast, flashing lights, frequent scene changes, computer graphics, indoor and outdoor scenes, and smoke and particles. It was encoded using x264 version 0.59.807 08b5132 with the following options:

     
    --keyint 250 --bframes 4 --b-pyramid --ref 4 --aq-strength 0 --partitions "all" --8x8dct --direct "auto" --weightb --me "umh" --merange 32 --subme 7 --b-rdo --mixed-refs --trellis 2 --no-fast-pskip --no-dct-decimate --sar 1:1

    We ran one encoding using --qp 16, resulting in output with an average data rate of 45.57Mbps, and another with --bitrate 15000 --pass <1,2>. The 45 Mbps stream is extremely high quality and the high data rate ensures that during benchmarks the majority of the CPU time is spent in the decoder (as opposed to the file splitter, renderer, or host application). The 15 Mbps stream represents a rate more typical of common 1080p material.

    Our test clips are too large to post but you can view some representative sample images:



    Click to view slideshow


    Results of our own initial testing

    In order to provide some insight into Beta 1 we ran a few benchmarks against some mature third-party H.264 decoder filters, namely CoreAVC 1.7.0 and FFDShow-tryouts rev 1945 CLSID build, dated 2008-04-17. For each decoder we used GraphEdit to create a filter graph comprising the Haali splitter, the H.264 decoder and the default video renderer filter. The graph configuration looked like this:



    Click to enlarge

    We disabled the clock for the graph, displayed the properties for the renderer filter, used Process Explorer to measure the total CPU time required to decode each clip subtracting any CPU time accumulated until the graph was run, and also noted the average frames per second achieved. We decoded each clip with every decoder three times for all of our dual core benchmarks but only twice for our single CPU benchmarks because these take much longer and the dual core tests had showed almost no deviation across multiple repetitions for any decoder on our test machine. For fairness, for every decoder we chose the result with the highest average frame rate per second of CPU time.

    Our test system used an Intel Core 2 Extreme X6800 (Conroe) CPU @ 2.93Ghz, 1066Mhz FSB, 4MB of L2 cache, 4GB of DDR2 RAM, and a PCI-Express NVIDIA Quadro FX 3550/4000 SDI video card with 256MB of memory, a 256-bit bus, and ForceWare version 6.14.11.6265.



    Click to enlarge

    To begin, these charts show the average frames per second per decoder according to the renderer filter:



    Click to view charts

    You can see that on our test system Beta 1 already achieves far more frames per second (average) than FFDShow-tryouts, and also bests CoreAVC in three out of four cases. But how much CPU time was used by each decoder to obtain these results? A fast decoder is not necessarily performing well if it consumes too much CPU time. To further investigate the performance of each decoder we also charted the total CPU time used in each case:



    Click to view charts

    Once again the decoder performs extremely well for it's first beta release! The charts clearly show that the DivX H.264 decoder is not simply achieving high frame rates at the expense of excessive CPU time. Performance will be further enhanced as we roll out more beta releases at DivX Labs. Stay tuned ;)


    An update on performance

    Since releasing Beta 1 we have gathered a lot of information from members of the beta group including performance statistics for many more CPU types. Although we can consistently reproduce the above illustrated performance on our test system which was not specially selected, proving the high efficiency of the decoder core, third-party performance tests on other processors have shown some variance - particularly those performed with CPUs that have less L2 cache. This is somewhat expected as early versions of the decoder are tested for the first time on a wider range of hardware and the current beta version generally performs to within 10% of the frame rate achieved by CoreAVC on the same system. We are actively working to ensure that the decoder performs equally well across all common processor configurations.


    Downloading DivX H.264 Decoder Beta 1

    This version of the H.264 Decoder has been superseded by the release of DivX 7. You can now download the DivX H.264 Decoder for free as part of the DivX for Windows bundle.

    DivX H.264 Decoder Beta 3


    The third beta release of the DivX H.264 Decoder improves performance for older AMD CPUs, introduces preliminary support for DVB applications, adds support for baseline profile, and greatly improves stability of the decoder.



    Update: This version of the H.264 Decoder has been superseded by the release of DivX 7. Click here to read the complete original article.


    What's new in Beta 3

    The following changes have been made to the decoder:

    • A problem writing to video memory on systems using older AMD CPUs that reduced performance by as much as 60 percent has been addressed. Beta 3 is also slightly faster than Beta 2 on all of our test systems.

    • Support has been added for packetized NAL bitstreams and the decoder can now be used with DVB applications. Preliminary testing included:

      • DVBViewer
      • DVBDream*
      • TerraTec Home Cinema

      * This currently requires you to manually add the DivX H.264 Decoder GUID to the [H264_CODECS] section of guids.ini in the DVBDream installation folder immediately after installation and to select the DivX H.264 Decoder on first run. The GUID is {6F513D27-97C3-453C-87FE-B24AE50B1601}.

    • New support for dynamic format changes enables DVB applications to switch between live streams of different resolutions.

    • H.264 baseline profile streams can be decoded thanks to support for flexible macroblock ordering and arbitrary slice ordering.

    • Error resilience has been significantly improved, providing better stability during playback of defective and damaged bitstreams.

    • The decoder accurately handles DirectShow timestamps to minimize jitter.

    • Full support for H.264 streams read from MKV containers.

    Known issues for Beta 3

    This non-exhaustive list of known-issues summarizes some important points you should be aware of when using Beta 3:

    • The decoder does not yet include built-in deinterlacing. When viewing interlaced material you may see horizontal lines and jagged edges around objects during motion if your media player does not deinterlace. We recommend viewing interlaced content at it's native resolution or larger to minimize undesirable artifacts caused by downsampling.

    • ReClock users may find that the ReClock Audio Renderer filter cannot determine the video frame rate of streams decoded by the DivX H.264 Decoder filter.

    Downloading Beta 3

    This version of the H.264 Decoder has been superseded by the release of DivX 7. You can now download the DivX H.264 Decoder for free as part of the DivX for Windows bundle.


    How you can help us

    We want to hear from you! Did you experience any problems using Beta 3? Did the decoder perform well on your system? Did you find a bug? Send us your feedback.

    If your feedback relates to performance issues or software stability please consider attaching some of the following to your email:

    • Screenshots from CPU-Z that show your CPU, memory and mainboard configuration.

    • A screenshot from GraphStudio after dragging and dropping your media file onto the application so that we can see how DirectShow attempts to render the media on your system.

    • Screenshots from DXDiag, which you can launch by simply typing DXDiag into the Run box on your Start menu, so that we can see information about your graphics card (e.g. vendor/model/memory/driver revision).

    • Screenshots of any crash dialogs, including the details view if available.

    • In the case of crashes, an export from MSInfo32, which you can launch by simply typing MSInfo32 into the Run box on your Start menu, so that we can see information about the operating system, running software and application errors.

    DivX H.264 Encoder Beta 1 & Tutorial

    UPDATED - 03/12/2009

    The latest package to be released from Project Rémoulade is a beta version of the DivX H.264 Encoder. This multithreaded encoder produces high definition H.264 video bitstreams that are compatible with the draft profile for DivX 7 H.264 HD video. The encoder is a command line utility and accepts input from raw AVI files as well as the AVISynth frameserver.

    View our tutorial for the DivX H.264 Encoder


    An introduction to the DivX H.264 Encoder

    In this article we'll start with a walk-through of using the command line encoder. We'll cover everything from encoder installation to the third-party software needed to create and play MKV files, tools for video processing, some of the constraints in the draft DivX 7 H.264 HD video profile and some tips on customizing your experience with the encoder for easier, more automated multipass encoding. Our guide should be very easy to follow so grab a cup of tea and let us teach you the basics! In the near future we'll also discuss the draft profile in more detail for those who are interested.


    Contents


    1. Installing the DivX H.264 Encoder Beta 1

    Setting up the encoder is very straightforward. Members of the Project Rémoulade or Project Rémoulade Apps groups who are signed in to their DivX Labs accounts can download the installation package. If you're not yet a group member please create a DivX Labs account and then subscribe to the Project Rémoulade Apps group to gain access to this download.

    After downloading and launching the installation package you should see the following screen:



    Click to enlarge

    You should note the installation folder location because this is where the command line utility will be installed. A shortcut named Encoder Console that opens a command window at this location is automatically added to your Start menu Programs folder under DivX\DivX H.264 Codec CLI . Launch the Encoder Console and type divx264 -help to see the list of arguments that can be passed to the encoder. If you aren't used to working with command line utilities don't worry if it looks a little complicated. We'll walk you through it in a moment, but first let's also install a few other components you'll need.


    2. Installing third-party software

    This beta version of the encoder outputs raw H.264 video bitstreams. To transform these bitstreams into video files that will play in your favorite media players you'll need some additional software to write them into an MKV container after encoding, and then during playback something to read the bitstream back out of the container and an H.264 decoder to transform the bitstream back into actual video. We also recommend additional software to serve video into the encoder; we'll explain that more in step 3. First, let's get everything installed!

    • AVISynth 2.57 [Homepage]

      AVISynth is a script-based frame server. You will use it to prepare your source video for encoding and to serve it as input to the H.264 encoder. During the AVISynth installation it is convenient (but not required) to associate .avs files with Notepad via the option on the component selection screen.

    • VirtualDub [Homepage]

      VirtualDub is a video processing application. You will use it to preview the output of your AVISynth scripts. Simply extract the .zip archive into any new folder. No installation process is required.

    • MKVToolnix [Homepage]

      MKVToolnix is a package of tools for working with MKV containers. You will use it to write the raw H.264 bitstream that the encoder creates into an MKV file.

      Note: You may want to jot down the installation path for MKVToolnix that displays during installation. Later we'll explain how to use this information to make MKVToolnix more convenient to use.

    • Haali Media Splitter [Homepage]

      Haali Media Splitter is a DirectShow filter capable of parsing MKV containers. Once installed it can be used automatically by any DirectShow media player to read data streams from MKV files. This includes most players for Windows.

    • DivX H.264 Decoder Beta 2 [Homepage]

      The DivX H.264 Decoder is a DirectShow filter that decodes H.264 video streams. Once installed it can be used automatically by any DirectShow media player to decode H.264 video bitstreams ready for display.

      Note: To download the DivX H.264 Decoder you must be a member of the Project Rémoulade group and signed into your DivX Labs account. The download link will then appear on the Project Rémoulade homepage.

    • MONOGRAM GraphStudio [Homepage]

      MONOGRAM GraphStudio allows you to build, view, edit and run DirectShow filter graphs. We'll use it to examine how the MKV files we create are rendered and to access settings for the DivX H.264 Decoder. No installation of GraphStudio is required. Simply save the file to disk.

    3. Creating an AVISynth script

    The first step in encoding H.264 video is to prepare the input for the encoder. It's best to use AVISynth because we can easily work with various file types including compressed AVI files which the beta encoder does not support natively, and make any necessary adjustments to the video before encoding it.

    AVISynth is a scripted frame-serving engine. When an application that supports AVI files, such as VirtualDub, opens an .avs file (.avs is the file extension for AVISynth scripts) the AVISynth engine loads and creates the source video on the fly according to the script you've written to generate it. AVISynth scripts can be as simple as a single line that loads a single source file, or as complex as necessary to produce professional-grade video effects using multiple sources and dozens of freely available plugins. Let's start with a very simple script to check that AVISynth is installed correctly.

    Start Notepad and enter the following:

    Save this file with a .avs extension instead of the default .txt extension. If you can't see the file extension when you save the file turn off the option to "Hide extensions for known file types" in the Windows Folder Options control panel under the View tab. Next, start VirtualDub and drag your .avs file onto the VirtualDub program window. You should see a video that is ten seconds long displaying information about the installed version of AVISynth:



    Click to enlarge

    This video has been generated by AVISynth's internal filter named Version, which you used in your .avs script. Find information about all of AVISynth's built-in filters on the avisynth.org Internal Filters wiki page if you're interested or need help. We'll briefly cover each of the filters that are key to getting started in this guide. Don't worry about the second video display that appears in the VirtualDub window for now, it's only useful when you apply additional processing in VirtualDub and that's not part of this tutorial.

    AVISynth has several source filters built-in that allow it to input many file types. We'll use either AVISource or DirectShowSource. Modify the following script by uncommenting one (and only one) of the "source" lines and changing the filename to the name of your input file:



    Click to enlarge
    Download this sample script
    (Note: After downloading change the file extension to .avs)


    Notice in the screenshot that we've turned off Word Wrap and enabled the Status Bar using Notepad's Format and View menus respectively. Should AVISynth report an error on any particular line, this can make finding the problem easier. Also notice that this time around we're using the "return" instruction to explicitly instruct the AVISynth engine to pass our clip MySource to VirtualDub. Because we're assigning our source to the clip variable MySource AVISynth doesn't implicitly know that this is what we want to return to the host application.

    As before, drag the .avs file onto the VirtualDub program window to test the script. If all is working you should see your source video!

    The next thing we need to know is the frame rate of the video and picture dimensions. To ensure reliable playback on a wide range of consumer electronics devices the draft profile for DivX 7 places constraints on these properties, requiring that the picture dimensions be at least 320x240 pixels with width and height each being multiples of eight, that the picture dimensions do not exceed 1280x720 if the frame rate is greater than 30hz, and that the video has the exact equivalent of one of the following Rate/Scale combinations:

    Rate
    (Numerator)
    Scale
    (Denominator)
    Approximate FPS
    = Rate / Scale
    Max Dimensions Min Dimensions
    60 1 60 1280x720 320x240
    60000 1001 59.940 1280x720 320x240
    50 1 50 1280x720 320x240
    30 1 30 1920x1080 320x240
    30000 1001 29.970 1920x1080 320x240
    25 1 25 1920x1080 320x240
    24 1 24 1920x1080 320x240
    24000 1001 23.976 1920x1080 320x240
    Width and height are tested independently for minimums and maximums.
    Width and height must each be multiples of 8.
    Any rate/scale substitutions must evaluate to exact equivalents.

    Let's go back to our first .avs script that simply used the built-in Version filter to display the version of AVISynth that is installed. Because everyone following this tutorial has access to the same Version filter we'll use this as a video source for the next few examples. Of course you could substitute any AVISource or DirectShowSource that you like.

    Open the simple Version() script again with VirtualDub and choose File information... from the File menu. Notice that the frame size is 436x80. This gives us two problems to deal with: The width is not a multiple of eight (436 divided by 8 is not a whole number) and the height is less than 240 pixels. If we divide the width by eight we get 436 / 8 = 54.5 . Rounding up to the nearest whole number and multiplying by eight gives us the nearest larger resolution: 55 * 8 = 440 pixels. So we need to add 4 pixels to the height of the clip and 160 pixels to the width to meet the profile constraints. We can use AVISynth's built-in AddBorders filter to pad the frame with a black border. Let's add 2 pixels to the top and bottom and 80 pixels to the left and right of the frame using the color black:

    If you drag this new script onto VirtualDub you can see how AddBorders has changed the video:



    Click to enlarge

    Note that if we had wanted to avoid adding pillarboxing AVISynth gives us several alternatives including cropping and resizing. You can see examples of these in the following sample:



    Click to enlarge
    Download this sample script
    (Note: After downloading change the file extension to .avs)

    Okay, so now we know several methods of manipulating the picture dimensions to fit our needs. What about taking care of the frame rate? The approximate frame rate of the video is calculated as a fraction, or in other words ~fps = numerator/denominator. The numerator is also referred to as the "rate" and the denominator as the "scale". Certain rates are easy to specify exactly. For example, 24fps can simply be given as 24/1. Others are trickier depending on the precision required. For example, you might find that a source loaded with AVISource or DirectShowSource has a frame rate of 29.97 fps calculated from a rate/scale of 5000000/166833 = 29.970089[...] fps which is actually different to the DivX 7 profile constraint of 30000/1001 = 29.970029[...] fps. The draft profile is strict in this regard so as to ensure accurate presentation of content across many device types. Note that equivalent substitutions are permitted, for example 120000/4004 = 30000/1001 = 29.970089[...] fps.

    Sound tricky? It really isn't. Let's examine the frame rate of Version() by applying AVISynth's internal Info filter:



    Click to enlarge
    Download this sample script
    (Note: After downloading change the file extension to .avs)



    Click to enlarge


    As you can see from the screenshot, Version() already has a valid rate/scale of 24/1 = 24.0000 fps so there's no need to make any changes. However, what if you have to deal with an incompatible rate?

    Let's think back to our earlier example of a source at 29.97 fps using a rate/scale of 5000000/166833 instead of the profile requirement of 30000/1001. That's a difference of only (5000000/166833) - (30000/1001)= ~0.00006 fps, and over the length of a two hour long video it results in a difference in duration of only 0.00006 fps * 7200 seconds = ~0.436 frames, or approximately 0.463 frames * (1 second / 29.97fps) = ~15ms total, which is probably not even worth worrying about. You could simply override the rate/scale in AVISynth without adjusting the audio or video at all. But what if the source frame rate was not close to one of the rates in the spec, or you wanted to ensure "perfect" sync over a very long video? AVISynth provides a few of ways to handle this. Let's look at two of them:

    • ChangeFPS duplicates or removes frames as necessary to attain the new frame rate without changing the clip duration. This is the easiest and, in many cases, the cleanest way to change the frame rate because no adjustment to the audio is necessary. There are no changes in pitch, sample rate, duration or sync to worry about. Keep in mind that in our example, adapting the rate/scale resulted in less than half of one frame of skew over two hours, so if you are simply adapting for a permitted rate/scale it is unlikely that many frames will be duplicated or removed. Duplicate frames can also be processed extremely efficiently by the encoder.

    • AssumeFPS simply speeds up or slows down the video. This technique is more complex in that it actually affects the duration of the video. If you are also processing audio through AVISynth, either as part of the original video source or by using some combination like WAVSource and AudioDub then AVISynth will also raise or lower the audio sampling rate as necessary to maintain sync. This implies a change in pitch and the audio may end up at a non-standard sampling rate. You can later use ResampleAudio later to resample the audio back to a standard rate (e.g. 44.1Khz or 48Khz), or instead use TimeStretch to stretch the audio clip to the new video duration without changing the pitch. If you were not passing audio through AVISynth, which is sometimes the case, you would have to manually adapt the audio before encoding it to ensure it remained in sync.

    Both ChangeFPS and AssumeFPS accept a numerator (rate) and denominator (scale) as arguments. The following sample script shows some examples of changing the frame rate. As you can see using ChangeFPS() is very simple:



    Click to enlarge
    Download this sample script
    (Note: After downloading change the file extension to .avs)

    Now you know how to adapt any source to become valid input for the encoder and you can see why even though the DivX H.264 Encoder can encode raw AVI files directly, it's still very handy to be familiar with the basics of AVISynth. It offers such useful functionality that you may always want to feed AVS files to the encoder (this is exactly what many of the community-created graphical user interfaces do). To complete this part of the tutorial, create an .avs script for a source file of your choosing that returns a video with frame rate and picture dimensions that fall within the constraints of the draft DivX 7 HD profile. Audio is optional because the H.264 encoder is not directly concerned with it.


    4. Using the DivX H.264 Encoder with your AVS script

    Launch the Encoder Console shortcut that was created in you Start menu Programs group under DivX\DivX H.264 Codec CLI when you installed this beta software. You'll see the following:



    Click to enlarge


    The shortcut runs a batch script that automatically adds the installation folder to the PATH environment variable for this particular console window, allowing you to run the encoder conveniently from any directory. Later we'll explain how to do the same for MKVToolnix. Although this tutorial isn't intended as a guide to the Windows command interpreter here are a few essentials to help you navigate the file system just in case you aren't already familiar with it:

    Command Meaning
    CD ..Go up one directory
    CD \Go up to the root of the drive
    CD \WindowsGo to the root directory, then into the Windows directory
    CD "\Program Files\DivX"Go to the root directory, then into the Program Files\DivX directory. Notice that whenever a filename contains spaces you should quote it, otherwise the command interpreter doesn't know to treat it as a single command argument. This is also important when specifying paths and file names to the DivX H.264 encoder and other tools. You can quote filenames without spaces, but it is not necessary.
    D:Change context to the D drive (if you have one). The command interpreter remembers the current directory on each drive individually.
    CD D:\ExampleChanges the current directory on the D drive to D:\Example . Note that if you are currently working on the C drive this doesn't automatically switch your context. You will remain in the current directory on the default drive (normally C:) until you type D: to change drive contexts.
    DirList the contents of the current directory
    Dir "C:\Program Files"List the contents of C:\Program Files , without actually changing to that directory.
    Dir /?Get help for the Dir command. Most commands will give help when you specify /? as the only argument. Note that the beta encoder is an exception, and will give you help if you specify -help as the only argument.
    Help|MoreSee a list of valid commands. Adding "|More" makes the console pause after each screen of output.
    ExitExit the command interpreter. You can also use the close button on the console window.

    Change directory to the location where you stored the .avs script that you want to encode or alternatively your raw AVI file if you chose not to make an AVISynth script for it. Type the following command to see the form of the DivX H.264 Encoder command line:

    DivX264 -help

    You can also download -help as a text file for easier viewing. In command line documentation it's convention to use square brackets to indicate parts of the command line that are optional, and angular brackets to indicate parts of the command line that are mandatory. You can see that the basic usage is as follows:

    Usage: [options] -i <input file> -o <output file>

    You must specify the name of the input and output file using -i and -o respectively, otherwise you'll get an error. You can also precede the -i and -o arguments with one or more options as detailed by -help. For example, we could prefix them with the -br argument to specify "Target bitrate in kbps". Because -br is documented as "-br <int>" if we specify -br we must also specify an integer value following it, which will be the target bitrate.

    Let's start with something simple: a one pass encoding using the default options. The encoder will automatically choose a reasonable bitrate based on the resolution and frame rate of the source file unless we specify one, which is fine for our initial experiment. Enter the following, substituting the name of your source file and the output filename that you want:

    DivX264 -frames 100 -i "MySource.avs" -o "Output.264"

    The encoder should start running. If you get an error message check that the frame rate and picture dimensions meet the draft DivX 7 profile constraints. The file extension ".264" is commonly used to denote raw H.264 video bitstream, which is what the beta encoder outputs. We will later use MKVToolnix to write this bitstream into an MKV container file to allow DirectShow media players to play it back. Notice that we've added the option "-frames 100" to the command line. This tells the encoder to stop after it has encoded the first 100 frames from the source file, which is useful when you're first experimenting because you don't have to wait for it to finish encoding an entire file. When you have a command line you are happy with simply remove this argument.


    5. Bitrate, rate control, encoding modes, and more

    Before moving on to the topic of writing MKV containers, let's cover a few of the encoder's important options. We've already mentioned use of -br for setting the bitrate, but let's elaborate further because it's critical for balancing quality against file size. The bitrate tells the encoder how much data it can use per second of video on average, over the entire duration of the video. This means that if you specify a bitrate of 4000kbps, for example, the encoder may use more than 4000kbps for some parts of the video and less for others depending on the relative complexity of any particular sequence of frames, but on average it will aim to spend 4000kbps over the entire file. Keep in mind that the rate is given in bits per second, not in bytes per second, which is what you're likely used to dealing with. There are 8 bits in every byte, so you can simply divide and multiply by 8 if you need to convert between the two. For example, if you have a video that is an hour and a half long and you encode it at 2000kbps the final size of the raw bitstream will be approximately 1.5 hours * 60 minutes * 60 seconds * (2000,000 / 8) = 1,350,000,000 bytes, or approximately 1287MB (there are 1,048,576 bytes in one megabyte). The MKV container will add a small overhead on top of this rate, as will any accompanying audio.

    There are many bitrate calculators available online for free. Use your favorite search engine to find one. Let's work through one example to illustrate the mathematics. In our example we want to encode an hour long video in 720p @ 25fps with 128kbps audio and fit everything inside a 1GB file. Which bitrate should we use?

    • The first thing to realize is that bitrate calculations for target file size care only about two things: How long is our video, and how much storage capacity do we have? The fact that the video is 720p and 25fps is irrelevant to hitting a target file size, although using a bitrate that is too low for the video in question will of course result in degraded quality.

    • Start by calculating the duration of the file: 60 minutes * 60 seconds = 3600 seconds.

    • Next, calculate how much storage is available: 1GB = 1,073,741,824 bytes * 8 bits = 8,589,934,592 bits / 1000 = ~8,589,934 kilobits.

    • Then subtract the storage that will be used by audio (@128kbps): We have 3600 seconds * 128 kilobits = 460,800 kilobits of audio to store. That leaves us with 8,589,934 kilobits - 460,800 kilobits = 8,129,134 kilobits for video.

    • The video bitrate will therefor be 8,129,134 kilobits / 3600 seconds = ~2258kbps, minus a very small amount for the overhead of the MKV container we will later store everything in.

    Our command line might look like this:

    DivX264 -br 2258 -i "MySource.avs" -o "Output.264"

    When it comes to creating high-quality video bitrate is only one part of the equation. In our example the encoder has an average bitrate of 2258kbps to work with, but we know that depending on how the picture complexity varies throughout the file it may allocate more bits to some frames than to others. The algorithm that makes such allocations must therefore affect the overall quality of the video. This algorithm is called the rate control, and there are two rate control modes available in the beta encoder: 1-pass and Multipass.

    1-pass mode is the default and causes the encoder to manage data allocation based on the complexity of the incoming sequence of frames. This allows the rate-control to spend bits fairly appropriately as long as the video complexity remains fairly consistent.However, because the encoder can't look ahead (it's making only one pass over the video), rapid changes in video complexity can lead it to speculate about the rate allocation in a suboptimal manner. For example, imagine a situation in which the encoder is processing a panning shot of a landscape. This is probably a low-motion sequence that is very easy to motion compensate leading to high picture quality with only an average bitspend. Then imagine an action scene immediately following. The image texture is now changing extensively from frame to frame and motion compensation becomes more difficult. After encoding one or two frames of this new sequence at the same quality as the landscape sequence the data rate has spiked due to the increased video complexity. The encoder knows it only has a certain average bitrate to work with and that it must also limit rate spikes so that the output bitstream can be played back smoothly by decoders in consumer electronics devices. As the encoder is still unable to predict what will happen in upcoming frames, it may have to react by reducing the data rate sharply in order to avoid rate spikes and to maintain its bitrate budget, in turn causing noticeable variations in the picture quality.

    Multipass mode attemps to work around this lack of foresight by breaking the encoding process down into at least two passes. During the first pass the encoder analyzes the source video complexity and stores this information in a statistics file. No video is output during the first pass. Later, the encoder is started again to perform the actual encoding. During this second pass the statistics file that was created on the first pass is loaded to inform the rate control algorithm of the complexity of every frame of video that it should expect to encode, and this enables the rate control to efficiently distribute the available bits throughout the video in a manner that improves quality consistency. The downside to multipass encoding, of course, is that you have to pass the video through the encoder at least twice, which can take a long time, depending on your source file and encoder settings.

    There is nothing special to do to perform a 1-pass encoding. Let's look at the command line for a 2-pass encode using our previous example again. To run the first pass we could use:

    DivX264 -br 2258 -npass 1 -sf "MyStats.dat" -i "MySource.avs" -o "Output.264"

    Immediately following the completion of this first pass we could then use:

    DivX264 -br 2258 -npass 2 -sf "MyStats.dat" -i "MySource.avs" -o "Output.264"

    As you can see, multipass encoding is no harder than 1-pass encoding, it just takes longer.

    One of the most frustrating aspects of performing a multipass encoding can be waiting for the first pass to finish so that you can start the second pass, and an easy way to solve this problem is to use batch scripts to do this work for you. A batch script is simply a plain text file (as Notepad would create) with a .bat file extension instead of a .txt extension. By entering both commands into a batch file and then typing the name of the batch file into the console window the commands will be executed automatically one after the other by the command interpreter. You can easily create batch scripts that are reusable. For example, take a look at the following batch script:



    Click to enlarge
    Download this sample script
    (Note: After downloading change the file extension to .bat)


    This script makes use of the way the command interpreter passes command line arguments into the batch script so that you can pass the script any bitrate and any source file name on the command line instead of editing the script for every encoding. Inside the script the first argument becomes %1, the second argument becomes %2, and so forth. So if you called the batch script this way:

    MultipassSample.bat 2258 Sample

    .. the command interpreter would run the following DivX264 commands:

    DivX264 -br 2258 -npass 1 -sf "Sample.dat" -i "Sample.avs" -o "Sample264"

    DivX264 -br 2258 -npass 2 -sf "Sample.dat" -i "Sample.avs" -o "Sample.264"

    You can create a second batch script that calls the MultipassSample.bat script for many source files in a row using the Call command. If you're interested, you can also look at a more advanced sample that handles both one pass and multipass encoding, prints some status information to the console and does some basic error checking. The syntax for the advanced sample is:

    AdvancedEncodingSample.bat <passes> <bitrate> <filename>

    Of course, batch scripts are just one way to make use of the encoder. You could also design a graphical front-end application using anything from VisualBasic to C to .Net.

    The last encoder option that we'll cover in this tutorial is the algorithm quality optimization mode. Variations on the algorithms and bitstream features in use can exist inside the encoder, as well as settings that control how much effort the encoder expends trading off the efficiency of the many decisions it can make while encoding. The -aqo option controls whether the encoder is configured to be faster at some expense of efficiency or vice versa. Remember that the bitrate is the largest factor when it comes to quality and the rate control method determines how the available bits are allocated. The -aqo mode determines how much time the encoder spends ensuring it is making the most efficient use of those bits. In the beta encoder there are three -aqo modes available:

    • -aqo 0
      Fastest mode, least efficient.

    • -aqo 1
      Balanced mode, best trade-off of speed versus efficiency. This is the default mode.

    • -aqo 2
      Highest quality mode, slowest but most efficient.

    For example, to use the highest -aqo mode you could write:

    DivX264 -br 2258 -aqo 2 -i "Sample.avs" -o "Sample.264"


    6. Preparing MKVMerge

    The last two steps of this tutorial will explain how to write our raw H.264 video bitstream into an MKV container. This is necessary because in order for DirectShow media players to play the video they need to recognize the media type, stream properties such as resolution and frame rate and other information that makes navigation possible. This information is all provided by the source splitter (in our case the Haali Media Splitter), which parses the information from the MKV container file when DirectShow calls upon it to do so, enabling the DirectShow media system to construct a filter graph that contains all the decoders and transforms necessary to render the file. Most players won't play the raw bitstream directly. We can also add audio to the MKV container file if we want. But first, we have a small problem to overcome.

    Earlier in the tutorial, we explained that the batch script responsible for running the Encoder Console you've been using adds the encoder installation directory to the PATH environment variable so that you can run the encoder from any directory. Let's now explain what that means.

    Every running process under Windows (and DOS, for that matter) has a set of "environment variables" associated with it. These are just string variables that contain information that let applications understand the environment they're running in. In the console window, type the following command:

    Set

    You will see a long list of variable names and their associated data appear on screen. Some of these are set by Windows as global environment settings, others are specific to the user currently logged into the system, and some may be set by applications or batch scripts. If you looked at the advanced batch script in section 4 you may have noticed it uses the Set command to temporarily store information about the number of passes remaining in an environment variable while the script runs. The environment variable we're interested in right now is called PATH. Type the following to see the value of the PATH environment variable:

    Echo %PATH%

    You will notice that PATH is a long list of directory names separated by semicolons. If you're running the command from the Encoder Console window, you'll also see that the first folder name is where the encoder was installed to. The batch script that runs the Encoder Console adds this automatically when it runs. The command interpreter uses this list of directories to look for programs and scripts when you type the name of a program as a command and it can't be found in the current directory. This is why you can type the command divx264 from any directory when you are using the Encoder Console; the interpreter searches for it using the PATH list and locates the program. But try running MKVMerge, the utility from MKVToolnix that we want to use:

    MKVMerge

    You'll receive an error message because the interpreter doesn't find MKVMerge in the current directory, nor can it locate it on the PATH list. There are two ways to solve this problem:

    1. Prefix the MKVMerge command with the complete installation path for MKVToolnix every time we want to use it.

    2. Add the installation folder for MKVToolnix to the PATH environment variable.

    Explicitly specifying the full path to MKVMerge on every use is cumbersome and tedious. Instead, we can automatically add this folder to the PATH variable when the Encoder Console starts, just as the path to divx264 is also added. To do so, we'll edit the batch script that was installed along with the beta encoder. Use Windows Explorer to navigate to the DivX264 installation folder. This is the folder that is the current working directory when you first open an Encoder Console window. You will see a batch script there named Encoder Console.bat. This is the script that is run when you launch the Encoder Console from the Start menu. Right-click the batch script and choose Edit from the context menu. Windows Vista users only: Due to security restrictions you may need to right-click Notepad on your Start menu and choose "Run as administrator", then drag and drop the batch file onto the Notepad window. Once the file is open in Notepad you should see the following:



    Click to enlarge


    On the first line you can see that the script modifies the PATH variable by prefixing it with %CD%, a reference to the current directory (i.e. the folder the script is started in, which is the installation folder in our case). During installation we suggested that you note down the installation folder of the MKVToolnix package. If you don't know it, find it using Windows Explorer now. The default installation folder is C:\Program Files\MKVToolnix . Add the MKVToolnix path to the Encoder Console batch script as follows:



    Click to enlarge


    Don't forget to separate everything using semicolons. Close any open Encoder Console windows before saving your changes, then open a new Encoder Console window from the Start menu and type the following again:

    MKVMerge

    If everything worked, you should see MKVMerge run, although it won't do anything meaningful because we didn't pass any valid arguments. Let's do that now.


    7. Writing the H.264 video bitstream into an MKV container

    MKVMerge has an extensive list of arguments that can be used to write various stream types into MKV containers including many types of audio and video, and to set metadata records such as content titles and language information. The HTML documentation that is installed as part of the MKVToolnix package is more verbose than the command line help and more convenient for reading. Open it now. You'll find it on your Start menu Programs folder under MKVToolnix\Documentation\Command line reference .

    As you can see, there's far too much information here for us to cover in this tutorial so we'll focus on the arguments necessary to write the video bitstream you've created into an MKV container. We'll use the global options --title <title> to set the content title and -o <outfile> to specify the name of the MKV file to write, as well as the per-track options --default-track <TID[:bool]> to mark this track as the default video track and --default-duration <TID:x> to indicate the default frame duration.

    The basic syntax of MKVMerge is:

    MKVMerge [global options] -o out [options1] [[options2] ...] [@optionsfile]

    There are only two pieces of information we really need to complete the process. The first is the track ID (or TID). The TID refers to the track number in each input file that we want MKVMerge to import. Type the following to see the list of TID's that MKVMerge assigns to the raw H.264 bitstream:

    MKVMerge -i "Sample.264"

    You should see that the video stream is assigned Track ID 0. If we had multiple input files it's possible that each of them contains a track with ID 0. MKVMerge won't mix them up because the command syntax says that the options for each file always appear before the filename.

    The second is frame rate of the video, i.e., the value for --default-duration. The documentation states that the value must be postfixed with s, ms, us, ns or fps to specify the default duration in seconds, milliseconds, microseconds, nanoseconds or "frames per second" respectively. The number x itself can be a floating point number or a fraction. So we could pass the frame rate, e.g. --default-duration 29.970fps, or for improved accuracy the rate/scale (inverting them to get the actual duration of a frame in seconds), e.g. --default-duration 1001/30000s.

    Your command line may look something like this:

    MKVMerge --title "My sample video" -o "Sample.mkv" --default-track 0:true --default-duration 0:1001/30000s "Sample.264"

    You may also wish to add an audio track, e.g. an accompanying MP3 file. Audio encoding is outside the scope of this tutorial, but if you want to experiment, try a command line similar to this one:

    MKVMerge --title "My sample video" -o "Sample.mkv" --default-track 0:true --default-duration 0:1001/30000s "Sample.264" --language 0:eng "Sample.mp3"


    8. Playing the MKV file

    You should now be able to play the MKV file using any DirectShow-based media player, e.g. Windows Media Player. Note that the first time you try to open an MKV file in later editions of Windows Media Player it will warn you that it does not recognize the file extension. Simply ignore this message by selecting the option to play the file anyway.

    A more interesting way to see what's going on behind the scenes of the DirectShow media system is to use GraphStudio to render the file. GraphStudio displays the DirectShow filters that are combined to form the filter graph in order to render a file. You can examine which filters are being loaded on your system and some of the information that is being passed between them. While the graph is stopped you can also disconnect some filters and manually insert others to see the result of using alternative decoders and renderers. Here's what a typical graph might look like for an MKV file containing both video and audio:



    Click to enlarge


    Note that by right-clicking on the DivX H.264 Decoder Filter, you can access its property page to change various settings for decoding:



    Click to enlarge


    Such property pages are also common for other DirectShow filters.


    Known issues for DivX H.264 Encoder Alpha 1

    The following are known issues in DivX H.264 Encoder Alpha 1:

    • The encoder does not provide a method to flag SAR in the bitstream. You can correct sources that are not 1:1 SAR to 1:1 using a resize transform in AVISynth. There is an example using LanczosResize in the downloadable ResoulutionSample.avs script.

    • It's not possible to stop the encoder using either Ctrl+C or Ctrl+Break.

    • The encoder doesn't support input from compressed AVI files. Create an AVISynth script using the AVISource filter to process such files.

    • The second pass of a multipass encoding may run slowly if the target average bitrate is extremely high (e.g. approaching 20Mbps).

    • The error message displayed when the width or height of the input video is not a multiple of eight pixels is incorrect.

    • The components screen in the installation package refers to "Beta 1". This is a mistake.

    How you can help us

    We want to hear from you! Did you find our tutorial helpful? Which additional options would you like to see available in the encoder and why? Did the encoder perform well on your system? Did you find a bug? Send us your feedback.

    If your feedback relates to performance issues or software stability please consider attaching some of the following to your email:

    • Screenshots from CPU-Z that show your CPU, memory and mainboard configuration.

    • Screenshots from DXDiag, which you can launch by simply typing DXDiag into the Run box on your Start menu, so that we can see information about your graphics card (e.g. vendor/model/memory/driver revision).

    • Screenshots of any crash dialogs, including the details view if available.

    • In the case of crashes, an export from MSInfo32, which you can launch by simply typing MSInfo32 into the Run box on your Start menu, so that we can see information about the operating system, running software and application errors.

    DivX MKV Mux Beta 1


    For easy access to DivXMKVMux launch a command console via the shortcut provided in the DivX Plus programs group on your Start menu after installation. The console will start in the installation directory and the installation directory is automatically added to the PATH environment variable for the console session so that you can type "DivXMKVMux" from any location.

    You can access the full list of arguments for DivXMKVMux using:

    DivXMKVMux --help

    For further information on experimenting with these extensions visit the following articles, which cover include high-level demonstrations, concept overviews, step-by-step guides, and technical specifications:


    Known-issues

    The following are known-issues that you should be aware of. The list is not comprehensive.

    • The DivXMKVMux sample application primarily supports input formats that are relevant to the DivX Plus format. These include H.264, AAC, SRT, and XML files for tags and chapter data. Please use --inputformats to see a complete list.
    • Attachments may not be preserved when remuxing with -r.
    • After SRT input is converted from ANSI to UTF-8 a temporary output file will remain in the input folder.
    • DivXMKVMux can crash if a very long output title is passed using titleName:
    • It is not currently possible to combine ordered and non-ordered chapter lists

    Let us know what you think

    Please submit your comments and questions to the DivX Plus (.mkv) forum (requires sign-in).


    If you're experiencing problems with the software please include your full command line, any relevant details of your input files, what you expect DivXMKVMux to produce as output and what the actual output is.

    DivX Plus HD H.264 Encoder (Beta 2)


    What's new in Beta 2
    • Target Quality Mode

      One of the problems faced in video compression is determining at which data rate we need to encode a given piece of content to achieve a particular output quality. Certain sources are likely to require higher bitrates than others, e.g. a fast-action film versus a CGI animation, and experimental encoding can be time consuming, exacerbated by the fact that the rate-control can be misguided with less than 2 passes. A target quality mode can help solve this problem.

      As an alternative to the 1-pass (-br) and n-pass (-br -npass) bitrate-based modes that we described in our last tutorial you can now enable a preliminary implementation of quality-based rate-control whose goal is to provide a consistent perceived output quality across a wide variety of input material without exceeding data rate constraints for playback devices. By using the new -qf <int> argument you can specify a target quality in the range 0-51, with lower numbers implying a higher target quality, e.g.:

      DivX264 -i "Input.avs" -o "Output.264" -qf 18

      This target quality mode is useful when you want to target a certain output quality from a single encoding pass and you are willing to let the encoder determine the necessary data rate instead of targeting a particular output file size. All other variables held constant, higher quality settings (lower -qf <int> values) will produce larger files and you will need to experiment a little to find the setting that best balances your personal preferences. The target quality mode can be leveraged for compression checks by GUI applications and should produce similar quality to a 2-pass encoding at the same effective rate but in much less time.


    • Sample Aspect Ratio

      Sample aspect ratio (also known as "pixel aspect ratio" in the DivX 6 encoder) is a method of informing the renderer that the pixels in each decoded picture buffer actually represent a sample of the original video whose shape was not necessarily square - i.e. that the renderer may need to rescale the decoded picture to be taller or wider before displaying it. The technique allows devices with constrained buffer shapes to handle pictures that are wider or taller than they would otherwise support. Examples include certain HD cameras as well as common formats such as DVD, where SAR is often used in conjunction with letterboxing or pillarboxing to ensure that videos with a variety of frame shape can be stored in high quality in a fixed-shape frame buffer.

      You can now specify the sample aspect ratio (SAR) of the input video using the -sar argument. In its alpha release the encoder always assumed that pixels were square (1:1 SAR) and thus it was necessary to resize certain source material to ensure this was actually true. Because these adjustments are no longer necessary it's possible to achieve better picture resolution and less pre-processing time in the input pipeline. These pictures demonstrate just one common use case for SAR:



      Widescreen picture formatted for PAL 720x576 16:9 DAR DVD, as encoded.
      (Click to enlarge and read more)



      The same picture after the renderer applies 16:11 SAR during playback.
      (Click to enlarge)


      If your input video does not have 1:1 SAR you need to specify the ratio of width to height of each sample that the renderer should display during playback. Note that the display aspect and sample aspect are two related but different properties. Some frequently encountered sample aspects are shown below:

      SD Format SAR
      PAL 4:3 12:11
      PAL 16:9 16:11
      NTSC 4:3 10:11
      NTSC 16:9 40:33


      The DivX Plus HD profile implements stricter rules for interlaced content to ensure robust playback on a wide variety of devices. When encoding interlaced material using the -tff or -bff arguments only the following combinations of resolution and SAR are permitted:
      Interlaced resolution Support SARs
      1920x1080i60 1:1 (16:9 frame)
      1920x1080i50 1:1 (16:9 frame)
      1440x1080i60 1:1 (4:3 frame), 4:3 (16:9 frame)
      1440x1080i50 1:1 (4:3 frame), 4:3 (16:9 frame)
      720x480i60 1:1, 40:33 (16:9 frame), 10:11 (4:3 frame)
      720x576i50 1:1, 16:11 (16:9 frame), 12:11 (4:3 frame)
      704x480i60 1:1, 40:33 (16:9 frame), 10:11 (4:3 frame)
      704x576i50 1:1, 16:11 (16:9 frame), 12:11 (4:3 frame)
      640x480i60 1:1 (4:3 frame)
      480x480i60 1:1, 20:11 (16:9 frame), 15:11 (4:3 frame)
      480x576i50 1:1, 24:11 (16:9 frame), 18:11 (4:3 frame)
      352x480i60 1:1, 80:33 (16:9 frame), 20:11 (4:3 frame)
      352x576i50 1:1, 32:11 (16:9 frame), 24:11 (4:3 frame)


    • Stdin support

      The encoder now accepts raw video input via stdin, which makes it both easier to develop around the encoder and to use a wider variety of tools in the input pipeline for encoding DivX Plus HD content. In our tutorial for the alpha version of the encoder we showed how to use AVISynth to read a source file in an arbitrary format, decode it, and perform some basic manipulations like resizing to a supported resolution and frame rate. These same operations can now be performed using other common video processing toolkits. Let's look at a typical example using FFmpeg.

      FFmpeg's documentation can appear a little daunting at first due to it's extensive functionality, but really it's not much more complex than the command line tools we've already encountered. The command line documentation tells us that the basic syntax looks like this:

      ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}...

      We'll use a handful of the available options to input an AVI file, crop and resize it to a supported resolution, and output raw video at a valid frame rate ready to pipe into the DivX Plus HD encoder. Let's assume our input video is 1920x1088 @ 30fps progressive and we want to encode at 720p @ 23.976fps. We can tell FFmpeg to decode our AVI file using -i, crop 8 pixels from the height using -cropbottom, resize to 1280x720 using -s, and convert the frame rate using -r. The first part of the command line might look as follows:

      ffmpeg.exe -i "C:\SomeFolder\MyInput.avi" -cropbottom 8 -s 1280x720 -r 24000/1001

      We also need to use -f and -pix_fmt to tell FFmpeg that we want to output YV12 planar video (the raw format that the DivX Plus HD encoder expects via stdin), and to write those raw frames to stdout, which we will later pipe to the encoder's stdin. To do that we just put a "-" character where we'd normally write the output filename. This makes our complete command-line for FFmpeg look like this:

      ffmpeg.exe -i "C:\SomeFolder\MyInput.avi" -cropbottom 8 -s 1280x720 -r 24000/1001 -f rawvideo -pix_fmt yuv420p -

      Next we ask the DivX Plus HD encoder to read input via the stdin, again using the "-" character where we'd normally write a file name. Because the only data the encoder will see is raw video frames we also have to tell it the resolution and frame rate of the input video on the command line when using the stdin feature. Let's use the new target quality mode (-qf) in conjunction with the stdin feature to create a high quality file in just one pass:

      divx264.exe -i - -y 1280x720 -fps 24000/1001 -qf 18 -o "C:\SomeFolder\MyOutput.264"

      Neither of these commands will work on their own. We must combine them using the pipe character, "|" to pipe FFmpeg's stdout handle to the DivX Plus HD encoder's stdin handle:

      ffmpeg.exe -i "C:\SomeFolder\MyInput.avi" -cropbottom 8 -s 1280x720 -r 24000/1001 -f rawvideo -pix_fmt yuv420p - | divx264.exe -i - -y 1280x720 -fps 24000/1001 -qf 18 -o "C:\SomeFolder\MyOutput.264"

      When we execute this command FFmpeg will decode and transform the input video, and the DivX Plus HD encoder will output an H.264 video stream, all without creating any intermediary files. All that remains is to mux the video stream into an MKV container:

      MKVMerge.exe -o "C:\SomeFolder\MyMKVVideo.mkv" --default-duration 0:1001/24000s "C:\SomeFolder\MyOutput.264"



      Encoding using stdin then creating an MKV file.
      (Click to enlarge)


      Keep in mind that the encoder requires valid input resolution and frame rates as input. We covered these in our last tutorial, but for convenience here's the table once again:

      Rate
      (Numerator)
      Scale
      (Denominator)
      Approximate FPS
      = Rate / Scale
      Max Dimensions Min Dimensions
      60 1 60 1280x720 320x240
      60000 1001 59.940 1280x720 320x240
      50 1 50 1280x720 320x240
      30 1 30 1920x1080 320x240
      30000 1001 29.970 1920x1080 320x240
      25 1 25 1920x1080 320x240
      24 1 24 1920x1080 320x240
      24000 1001 23.976 1920x1080 320x240

      Width and height must each be multiples of 8.
      Width and height are tested independently for minimums and maximums.
      Any alternative rate/scale representations must evaluate to exact equivalents.


    • Input trimming

      A minor new feature is the ability to trim frames from the beginning of the input video using -start. In conjunction with the existing -frames argument it is possible to specify a range of frames to be encoded, which can be useful for conducting short tests as well as removing unwanted sequences from captured material. An example of using both features to encode only frames 1000 through 2999 is as follows:

      divx264.exe -i "MyInput.avs" -o "C:\SomeFolder\MyOutput.264" -qf 18 -start 1000 -frames 2000

      The -start argument currently works only with input from file because seeking is not possible when reading from stdin. When using stdin you should use options in the decoding application in place of -start and -frames, for example FFmpeg's -ss and -t arguments.

    • Ctrl+C, Ctrl+Break supported

      It's now possible to stop the encoder by pressing Ctrl+C or Ctrl+Break while it is running.

    Known issues for DivX Plus HD H.264 Encoder Beta 2

    The following are known issues in this version:

    • The encoder may run slowly with input that is in RGB colorspace. If you are using an AVISynth script for input add ConvertToYV12() to your script to convert video to YV12 colorspace.

    • The encoder doesn't support input from compressed AVI files. Create an AVISynth script using the AVISource filter to process such files.

    • The encoder will only accept 1:1 SAR for 704x576i and 704x480i input.

    Downloading DivX Plus HD H.264 Encoder Beta 2

    To download this beta you need to create a free DivX Labs account then join the Project Rémoulade Apps group. Downloads for Project Rémoulade are available at the top of the group homepage for signed-in members.


    How you can help us

    We want to hear your feedback! Please submit your comments and questions to the DivX Plus forum (requires sign-in).


    If your feedback relates to performance issues or software stability, please consider attaching some of the following to your post:

    • Screenshots from CPU-Z that show your CPU, memory and mainboard configuration.

    • Screenshots of any crash dialogs, including the details view if available.

    • An export from MSInfo32, which you can launch by simply typing MSInfo32 into the Run box on your Start menu, so that we can see information about the operating system, running software and application errors.

    MPEG-4

    Here's where you'll find legacy DivX MPEG-4 documentation for content creation and playback.

    Creating DivX menus with just your web browser!

    Instructions? I don't need no stinking instructions, just tell me where to click!

    Click here for the DivX Menu Creator WebApp!


    One of our engineers, Raider, has been surreptitiously working on a nifty little web applet to help create DivX content with advanced features. In particular, this is a tool that will help you create root menus and chapter menus with motion thumbnails. All it takes is your DivX files and a couple of mouse clicks.

    First, the disclaimers: this web application is still alpha, so it may crash on you. But hey, you wanted to be on the cutting edge right?

    It has been minimally tested on Windows XP, using Internet Explorer 6 and Firefox. Use other Windows operating systems and browsers at your own risk.

    Also, the application will download to your machine a couple files that help it do its thing. Since it’s still alpha, there's no install/uninstall feature, so you'll have to manually remove the following files to remove it off of your machine.
    • From your user temp directory (usually C:\Documents an Settings\user\Local Settings\Temp\divx, remove createDMFJNI.dll, playbackModuleJNI.dll, and defaultBackground.divx
    • From your web browser directory, (C:\Program Files Internet Explorer or C:\Program Files\Mozilla Firefox), remove the file MSVCRTD.dll


    And, being alpha, it’s a little lacking on the UI, but we'll polish it for the masses later. Now, onto the fun!
    • Step 1: Line up all of your creative assets. You'll need a ten second or longer 640 x 480 DivX clip for the motion background, and the DivX videos that you want to combine into a single DivX file. I’d put all of these into a single directory to make my life easier, but just as long as you know where they are, you're good to go. The default menu background video is a DivX splash screen.

    • Step 2: Fire up the web applet. Open the DivX Menu Creator WebApp!.
      Once the applet is finished downloading, you should see the following screen in your browser.

    • Step 3: Select the motion background you want to use. Right click on the black screen and select "Select Background.” Navigate to the DivX video clip that you want to use for the background and hit select. You can preview the motion background by right clicking on the background and selecting "Play Background."

    • Step 4: Select the files that you want to include in your compilation DivX file by right clicking on the screen and selecting "Add Video.” Place the thumbnails wherever you'd like them to appear on the menu screen, within the purple bounding box line. You can change the caption underneath each thumbnail by right clicking on the thumbnail and selecting "Change Video Label.”

    • Step 5: Link the files together for navigation. On each side of the thumbnail is a little square nubbin. You can click and drag a line from each of these little nubbins to the center of another thumbnail to map navigation of the menu using the arrow keys. So for example, if you drag the right nubbin of thumbnail 1 to the center of thumbnail 2, this means that if thumbnail 1 is selected in the menu, and the user presses the right arrow, the focus will move from thumbnail 1 to thumbnail 2. When a nubbin is linked, it will be filled in red.

    • Step 6: Create chapter menus for each of the titles. Right click on a thumbnail on the main menu and select "Add Chapter Menu.” This will bring you to a chapter creation menu. From here, you have to hit play to start the file playing (yes, its a little quirky), and then you can pause, fast forward, rewind, trick play with the slider, and even step through the file to add chapter points. To add a chapter point, navigate to the frame that you want, and click on the "Add Chapter" button on bottom right. You can delete chapters by right clicking and selecting "Delete Chapter" on the thumbnails on the right. Once you're finished with creating chapters for a specific title, click on the "Accept" button to return to a chapter menu layout screen. The chapter menu layout screen works exactly like the root menu layout screen described in steps 3, 4, and 5.

    • Step 7: You're all done laying out the menus! Now to create the actual file, click Select File->Save Project As to save the menu project. Then select Run->Generate DivX to create a DivX video.

    • Step 8: Fire up the DivX Player, open your masterpiece, and enjoy!

    Let us know what you think about the tool. We've got plans for lots of feature improvements, so stay tuned.

    DivX Media Builder Quick Start Guide

    This guides was created to give step by step instructions on how to create menus for your DivX files, with DivX Menu Builder. DivX Menu Bilder is a tool created for the DivX community, by UserXP. Thank you UserXP, you made the world of menus a lot easier to deal with.

    I. Programs Needed:

    Visit: http://userxp.tripod.com and http://labs.divx.com/node/169

    Download (follow link to software download):

    *After extracting to a directory, will need the following installed:
    • comctl32.ocx : download then register à register directions: Go to the Run item on the Start menu, and type:

      regsvr32 comctl32.ocx

    • In the application folder (DivXMediaBuilder ) place a copy of DivXMux.exe.

    *** DivXMux.exe can be found as and application in the DivX Media Format File SDK r2 and must be present for the “muxing” process

    II. Basic Menu Creation:

    • Keep going here for the text version or check out the video tutorial!
    • Construct a Folder for your project containing the following folders:
    • Titles ” – place all of your video titles in .avi or .dvix format in here
    • Menus ” – place all of your menus: Main Menu and Sub Menus in .avi/.divx format in here
    • Subtitles ” – if you have .srt files or other subtitle files place them in here
    • Other folders you may need to store any assets (i.e.- creation of a folder to store any PSD files used when creating menus)
    • Launch DivXMediaBuilder (v. 2.0).
    • Select New form File menu. You will be prompted to select the “Main Title”
    • The “Main Title” is the first title (.divx or .avi movie file) of the DVD you are creating. When combining multiple titles into one DVD, this will be the first title in the logical sequence.
    • Next, add all remaining titles in a logical sequence.
    • Titles can be added by: clicking on Features/Add Titles… Or by pressing F6
    • You will notice the file tree on the left hand side of the application showing the added titles under the “Media” branch. Also notice the corresponding details of the titles you added (any default audio tracks, subtitles, media type, etc.)
    • Next add your “Main Menu.” This will be the first menu that that will appear when playing your DivX file.
    • ***Please note that in the 2.4.4 beta version of DivXMediaBuilder you MUST format your menu files in .avi or .divx. This can be accomplished through numerous video editing programs that allow you to control the output. The .avi files must be at least 1 sec in length. This means it must contain at least 30 frames for a 30 fps optimization, 25 for 25 fps, etc.

    • Next, add all remaining menus in a logical sequence.
    • Menus can be added by: clicking on Features/Add Menu… Or by pressing F7
    • You will notice the file tree on the left hand side of the application showing the added titles under the “Menu Track” branch. Also notice the corresponding details of the menus you added:

    • Find your “Main Menu” on the file tree to the left. If you added them in a logical order, it should be the first menu object under the “LanguageMenus” branch called “DivXMediaMenu”. When you select it on the tree, a still picture of it should appear in the main application window.
    • Next add a button. Select the icon to produce a new bounding box:

    • Draw bounding box around area that you'd like to become the “button”

    • Next assign an action to the button. Use the button toolbar or double-click in the bounding box to bring up the “Add Action List” menu:

      The above menu is showing the selection of “Play Action” and a list of titles (.divx) from the “Titles” folder.

    • If the button you created is to link to a submenu highlight the “Menu Transition Action” and select the corresponding submenu. ***Please note that the menus are referred to by their “object ID” number which can be obtained by referring to the file tree.
    • If the button you created is going to start playing a title, highlight “PlayAction” and select the corresponding title.
    • To link back to the main menu or any other submenus use the “Menu Transition Action” and select either the main menu or corresponding submenu.
    • To assign subtitle track to a button utilize the “SubtitleSelectAction.”
    • When the file is played in a DVD player you'll have to use the remote control to navigate between the buttons. You'll need to assign which button is selected next when you push up, down, left or right. To do so, you need to choose thecorresponding object ID from the drop menu in the “Button Properties” floating toolbar.

    • Buttons may be customized in a number of ways to achieve a desired appearance or overlay effect. The customizable menu can be accessed by right-clicking inside a bounding box. The “Overlay Colors” associated with selection can be changed by clicking on the colored squares on the top of the main application frame or set to default colors in File/Options (Ctrl-P)/Menu Tab.

    • Once all the buttons/actions have been assigned you are ready to create your DMF file. Click the “Create the DivX file” icon on the main menu bar or :
    • The DivX file can be created by:

      clicking Features/Create DivX…

      Or by pressing F12

    • This will create a DivX video output file (with advanced features) which can be viewed in a DivX Ultra Certified device or in your DivX player.

     

    Web Player

    HD video with true 5.1 channel surround sound, multiple subtitles and audio track support, smooth playback with hardware acceleration, and the ability to download everything you watch online. And with support for DIVX, AVI, MKV, MP4 and MOV, Web Player is a great choice to publish video to your website or blog. DivX Web Player now supports DivX Plus Streaming™ so you can enjoy purchased movies and TV shows without buffering right in your browser

    DivX Web Developer Guide

    The DivX Plus Web Player plug-in gives any webmaster a simple and hassle-free mechanism for offering DivX (DivX/AVI) and DivX Plus HD (MKV/H.264) videos for immediate download and playback on their website by simply hosting the video file and editing some HTML tags.


    The DivX Plus Web Player plug-in works by being downloaded and installed on each of your visitor’s computer when they browse a page that contains an embedded a DivX video, and is distributed for free by DivX - saving you the trouble of hosting the plug-in yourself or having to pay for the bandwidth of its download.

    All you need to have to get started on your end is a DivX Plus (.mkv) or DivX (.divx or .avi) file and some HTML code, or if you're looking for more customization, you can interact with the DivX Plus Web Player using JavaScript.Click through the topics below, or download the PDF version.

    AttachmentSize
    DivX Web Player Embedding Guide.pdf861.76 KB

    Simple Example

    For this simple example, we’ll assume that you have a DivX video file named movie.divx and that you are creating an HTML page named movie.html to host it. We will also assume that those two files will be uploaded to your web server in the same destination folder. Finally we will assume that the video resolution of the movie.divx file is 320x240 pixels.

    All you need to add inside the <body> tag of your movie.html file is the following block of code:

    <object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616"
        width="320" height="260"
        codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab">
        <param name="src" value="movie.divx"/>
        
        <embed
            type="video/divx"
            src="movie.divx"
            width="320" height="260"
            pluginspage="http://go.divx.com/plugin/download/">
        </embed>
    </object>
    

    The explanation of the different tags and parameters of this block of code is as follows:

    • The first, outer <object/> tag is used by Internet Explorer to display the plug-in. It has a set of required direct parameters and also uses inner <param> tags to specify optional parameters.
    • The second, inner <embed/> tag is used by all other supported browsers (such as Mozilla Firefox) and does not need any sub tags. The <embed> tag needs to be inside the <object> tag for this code to work in all browsers at once.

    Both of these tags must be present, even though this way some parameters are repeated, in order for the plug-in to appear and function in all supported browsers.

    Here is a detailed list and explanation of the required parameters of each tag:

    Object tag parameters:

    • classid: The classid parameter is required to identify the plug-in that is needed when using Internet Explorer and its value must be set to exactly "clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616".
    • width and height: The width and height parameters are required. They determine how much space is allocated on the HTML page for the plug-in control. By default, the DivX Browser Plug-In displays a bar of playback controls that is 20 pixels high at the bottom of the video area. Therefore, in our example, we must allocate an area of 320x260 pixels to host our 320x240 pixels video. As a summary: With the default skin mode settings, the width parameter should always equal the width of the video file while the height parameter should equal the height of the video plus an additional 20 pixels so that the original aspect ratio of your video is maintained.
    • codebase: The codebase parameter is required and must be set to exactly "http://go.divx.com/plugin/DivXBrowserPlugin.cab". This tag is used by Internet Explorer to do an automatic dowthe client computer when it is missing.

    Object sub-tag parameter: <param name="src" … >

    • The <param> tag with a name of src is used by Internet Explorer to locate the video that the plug-in control needs to download and play. Here its value is set to movie.divx.

    Embed tag parameters:

    • type: The type parameter is used to identify the plug-in that is required when using mozilla-based browsers and should be set to exactly "video/divx".
    • src: The src parameter is used to locate the video file that the plugin should download and play. In our case it is set to movie.divx again.
    • width and height: The width and height parameters are used the same way here as in the <object> tag and therefore set to the same values.
    • pluginspage: The pluginspage parameter is used by mozilla-based browsers to locate a web page where the plug-in can be downloaded when it is not currently installed on the client machine. It is required for proper functioning and must be set to exactly "http://go.divx.com/plugin/download/".

    This is all you need to add to your HTML to obtain a web page that downloads and plays DivX video.

    Web Server Configuration

    Supported web servers

    • Apache 2.2+
    • Microsoft IIS 6.0+

    Supported HTTP protocols

    • HTTP 1.0 and 1.1 are supported
    • HTTP 1.1 with byte range requests is required for DivX Plus (.mkv) playback or advanced seeking

    Note:
    HTTPS and HTTP authentication (i.e. http://user:password@www.yourvideosite.com) are not supported.

    Web server MIME type configuration

    Proper MIME type configuration is essential for client-side plug-in discovery to function in Firefox

    File Extension MIME Type
    .divx video/divx
    .avi video/divx
    .mkv video/divx

    Apache MIME type configuration instructions:

    Create or add the text below to your Apache server’s root .htaccess file:

    AddType video/divx .divx
    AddType video/divx .avi
    AddType video/divx .mkv
    

    More information on Apache MIME types and .htaccess files can be found here:
    http://httpd.apache.org/docs/2.2/mod/mod_mime.html#addtype
    http://www.htaccess-guide.com/index.php?a=11
    http://www.google.com/search?hl=en&q=htaccess%20addtype

    Microsoft IIS MIME type configuration instructions:

    Instructions for adding MIME types for Microsoft IIS

    Supported Browsers

    DivX Plus Web Player supports the following web browsers:

    Windows 7/Vista/XP:

    • Internet Explorer (6.0 or higher)
    • Firefox (3.5 or higher)
    • Google Chrome (1.0 or higher)

    Mac OS X 10.5, 10.6, 10.7 and 10.8:

    • Safari (4.0 or higher)
    • Firefox (3.5 or higher)
    • Google Chrome (1.0 or higher)

    Supported Formats

    DivX Web Player supports the standard DivX format (.divx and .avi), the H.264-based DivX Plus (.mkv) video format, and the MP4 (.mp4 .m4v and .mov) format. We recommend publishing in DivX Plus as our H.264 codec will allow you to deliver better quality video at a lower bitrate than standard DivX.

    DivX Plus Format Support

    Container:

    • .mkv

    Video:

    • Codec: H.264 / AVC & ASP
    • Maximum Resolution: 1920x1080

    Audio:

    • Codec: AAC & MP3 (AC3 & DTS with AC3 Filter/Perian installed)
    • Channels: 2 or 5.1
    • Suggested bitrate: 32kbits per channel

    Subtitles:

    • Formats: SRT, SSA

    DivX Format Support

    Container:

    • .divx
    • .avi

    Video:

    • Codec: DivX (MPEG-4 ASP)
    • Maximum Resolution: 1920x1080

    Audio:

    • Codec: MP3
    • Channels: 2
    • Suggested bitrate: 128kbps

    Subtitles:

    • Formats: DivX XSub, SRT, SSA

    MP4 Format Support

    Container:

    • .mp4 .m4v .mov

    Video:

    • Codec: H.264 / AVC & ASP
    • Maximum Resolution: 1920x1080

    Audio:

    • Codec: AAC & MP3 (AC3 & DTS with AC3 Filter/Perian installed)
    • Channels: 2 or 5.1
    • Suggested bitrate: 32kbits per channel

    JavaScript Interaction

    The plug-in can be scripted and controlled via JavaScript in all the supported browsers. JavaScript allows you to register callbacks to receive events occurring inside the plug-in as well as to call functions on the plug-in object to perform operations. In order to be able to do so, a couple of parameters must be added to the simple tags shown in the previous section.

    Scripting Considerations

    In order to access and script the plug-in object from JavaScript code in your HTML page the <object> and <embed> tags must have an additional id parameter giving them unique names for JavaScript to access the objects.

    As per the w3c standard,each tag, for example:

    <object id="ie_plugin" … >
        <embed id="np_plugin" … ></embed>
    </object>

    In this case we have named the object tag ie_plugin and the embed tag np_plugin.

    The final step required to be able to script the plug-in is to add some code that will determine which plugin object name to use, depending on the browser that is currently using the plug-in. This is done by parsing the “user agent” string that identifies the browser.

    In our case, the following code snippet needs to be added at the top of the JavaScript block before trying to call any function on the plugin object:

    <script language="Javascript">   
        var plugin;   
        if(navigator.userAgent.indexOf('MSIE')   != -1)   
        {   
            plugin = document.getElementById('ie_plugin');   
        }   
            else   
        {   
            plugin = document.getElementById('np_plugin');   
        }   
    </script>

    This block of code assigns the correct document object into the variable plugin by detecting whether the current browser is Internet Explorer or Safari, or something else.

    After this block of code, the plugin variable can be safely used to call any function of the DivX Browser Plug-In JavaScript API (see below).

    Event Callbacks

    It is possible to define local JavaScript functions to be used by the plug-in as callbacks when something of importance occurs. The name of these functions must be passed as embedding parameters using both the <param> sub-tags and the <embed> tag so that the plug-in knows to call them when an event occurs in all supported browsers.

    The following callback parameters are defined:

    statusCallback

    This parameter can be used to pass the name of a local JavaScript function that will be called when an event occurs: The function must have the following signature:

    function myStatusCallback (event)

    In this case “myStatusCallback” is a placeholder for your function name. The event parameter will be a number. The following values are possible:

    • INIT_DONE = 0
    • OPEN_DONE = 1
    • VIDEO_END = 2
    • SHUT_DONE = 3
    • EMBEDDED_START = 4
    • EMBEDDED_END = 5
    • WINDOWED_START = 6
    • WINDOWED_END = 7
    • FULLSCREEN_START = 8
    • FULLSCREEN_END = 9
    • STATUS_PLAYING = 10
    • STATUS_PAUSED = 11
    • STATUS_FF = 12
    • STATUS_RW = 13
    • STATUS_STOPPED = 14
    • BUFFERING_START = 15
    • BUFFERING_STOP = 16
    • DOWNLOAD_START = 17
    • DOWNLOAD_FAILED = 18
    • DOWNLOAD_DONE = 19

    timeCallback

    This parameter can be used to pass the name of a local JavaScript function that will be called during playback to inform of the current playback time. The function must have the following signature:

    function myTimeCallback (time)

    In this case “myTimeCallback” is a placeholder for your function name. The time parameter will be a long integer value giving the current playback time in seconds. This function will be called every second.

    bufferCallback

    This parameter can be used to pass the name of a local JavaScript function that will be called during buffering to inform of the current buffer status. The function must have the following signature:

    function myBufferCallback (current, total)

    In this case “myBufferCallback” is a placeholder for your function name. The current and total parameters will be long integers containing the current and total amount of data (in bytes) of this buffering stage.

    downloadCallback

    This parameter can be used to pass the name of a local JavaScript function that will be called during download to inform of the current status. The function must have the following signature:

    function myDownloadCallback (current, total)

    In this case “myDownloadCallback” is a placeholder for your function name. The current and total parameters will be long integers containing the current and total amount of data (in bytes) of the downloaded video.

    JavaScript API

    The DivX Plus Web Player supports the following direct JavaScript calls:

    Version:

    The following function allows querying the plugin version on the end user machine. The return value will be in the form “X.X.X” where X are single digit numbers.

    string GetVersion();

    Setup:

    Those functions can be used to alternatively set all the embedding parameters and take the same parameter values as the corresponding embedding parameters. They take effect immediately (if applicable) or during the next call to the Open() function.

    void SetMode(string mode);
    void SetAllowContextMenu(boolean allow);
    void SetAutoPlay(boolean play);
    void SetVolume(unsigned long volume);
    void SetPreviewImage(string imageURL);
    

    Media Management:

    This function allows opening a new local video file or relative/full URL.

    void Open(string URL);

    Playback:

    void Play();
    void Pause();
    void Stop();
    void Mute();
    void UnMute();
    void Seek(string method, unsigned long percent); // seeks into the video, method can be “DOWN”, “UP”, or “DRAG” to simulate mouse interaction. Call “DOWN” and “UP” in sequence to perform a full seek.

    Windowing:

    Windowing

    void ShowPreferences(); // shows the preferences panel
    void ShowContextMenu(); // shows the contextual menu
    void GoEmbedded(); // go back into browser-embedded mode
    void GoWindowed(); // go into windowed playback mode
    void GoFullscreen(); // go into fullscreen playback mode
    

    Media Information:

    These calls can only return valid data once the “OPEN_DONE” callback event has been sent by the plug-in. Otherwise the return values are undefined.

    unsigned long GetTotalTime(); // in seconds
    unsigned long GetVideoWidth(); // in pixels
    unsigned long GetVideoHeight(); // in pixels
    unsigned long GetNumberOfAudioTracks();
    unsigned long GetNumberOfSubtitleTracks();
    long GetCurrentAudioTrack(); // returns the index of the currently playing audio track (or -1 if no audio track is selected)<
    long GetCurrentSubtitleTrack(); // returns the index of the currently playing subtitle track (or -1 if no subtitle track is selected)
    string GetAudioTrackName(unsigned long trackIndex); // returns a readable track name for audio track “trackIndex” (which must be between 0 and trackCount-1)
    string GetSubtitleTrackName(unsigned long trackIndex); // returns a readable track name for subtitle track “trackIndex” (which must be between 0 and trackCount-1)
    string GetAudioTrackLanguage(unsigned long trackIndex); // returns the twochar ISO 859 language code of audio track “trackIndex” (which must be between 0 and trackCount-1)
    string GetSubtitleTrackLanguage(unsigned long trackIndex); // returns the twochar ISO 859 language code of subtitle track “trackIndex” (which must be between 0 and trackCount-1)
    

    Media Management:

    These calls can be successful once the “OPEN_DONE” callback event has been sent by the plug-in for the current video.

    void SetCurrentAudioTrack(long index); // sets the currently playing audio track to the audio track at index “index” (pass -1 if you want no audio track to be selected)
    void SetCurrentSubtitleTrack(long index); // sets the currently playing subtitle track to the subtitle track at index “index” (pass -1 if you want no subtitle track to be selected)
    

    Preventing Downloads

    If you want to prevent DivX Plus Web Player from saving the downloaded video file onto the end user’s hard drive, you can simply name your video file so that its filename on your web server ends with “_ns” (for “no save”) just before the .divx extension and update your HTML code to reference this filename.

    Examples: myvideo_ns.divx or trailer_ns.divx.

    In this case DivX Plus Web Player will still download the file contents for playback but will not allow the end user to save the full file on disk.

    Embedding Parameters

    Each of the following embedding parameters allow you to customize the appearance and behavior of the DivX Plus Web Player plug-In. Each of them must be specified twice for them to take effect in all supported browsers, once in the <object> tag as a <param> sub-tag, and once in the <embed> tag directly.

    Parameters

    allowContextMenu

    The allowContextMenu parameter is used to specify whether the plugin should display a contextual (right-click) menu when the user presses the right mouse button or the menu buttons on the skin.

    You may wish to disable the contextual menu to provide your own controls on the page.

    Usage:

    • In the object tag: <param name="allowContextMenu" value="[value]"> 
    • In the embed tag: allowContextMenu="[value]"

    Possible values:

    • "true" or "false", true being the default.

    autoPlay

    The autoPlay parameter is used to specify whether the plugin should start downloading and buffering immediately or if it should wait for a JavaScript call or for the user to click on the Play button so start doing so.

    Usage:

    • In the object tag: <param name="autoPlay" value="[value]"> 
    • In the embed tag: autoPlay="[value]"

    Possible values:

    • "true" or "false", true being the default.

    bannerEnabled

    UPDATE – 4/7/2010This parameter is under maintenance and may not function desirably. We recommended removing this parameter from your embed code until further notice.

    The bannerEnabled parameter is used to specify whether the plugin should display the DivX advertisement banner at the end of playback.

    Usage:

    • In the object tag: <param name="bannerEnabled" value="[value]"> 
    • In the embed tag: bannerEnabled="[value]"

    Possible values:

    • "true" or "false", true being the default.

    bufferingMode

    The bufferingMode parameter is used to specify how the plug-in should buffer downloaded data before attempting to start playback.

    Usage:

    • In the object tag: <param name="bufferingMode" value="[value]"> 
    • In the embed tag: bufferingMode="[value]"

    Possible values:

    • null: In this mode, the plug-in does only very minimal buffering and starts playing as soon as data is available. It will not guarantee a very good user experience unless you know that their connection is very fast.
    • auto: This is the default value. In this mode, the plug-in analyses the download speed and tries to buffer just enough so that uninterrupted progressive playback can happen at the end of the buffer period.
    • full: In this mode, the plugin will always buffer the full video file before starting playback.

    loop

    The loop parameter is used to specify whether the plugin should play the video in a loop or stop video playback when the end of the file is reached.

    Usage:

    • In the object tag: <param name="loop" value="[value]">
    • In the embed tag: loop="[value]"

    Possible values:

    • "true" or "false", false being the default.

    minVersion

    The minVersion parameter is used to specify a minimum version number of the DivX Browser Plug-In that is required to play the embedded video.

    This parameter can be used to force an upgrade of the client computer when your web page explicitly relies on a specific version of the DivX Browser Plug-In to playback the video. If the end user refuses to upgrade, the video will not download or play.

    Usage:

    • In the object tag: <param name="minVersion" value="[value]"> 
    • In the embed tag: minVersion="[value]"

    Possible values:

    • A 3-digit, dot-separated, text string specifying the minimum version number required, such as "1.0.3" or "2.0.0".

    mode

    The mode parameter is used to specify which skin mode the plugin should use to display playback controls. Several modes are provided from showing no controls at all to showing a full-featured playback panel.

    Usage:

    • In the object tag: <param name="mode" value="[value]">
    • In the embed tag: mode="[value]"

    Possible values:

    • null: In this mode, the plug-in shows absolutely no controls. The usual width and height parameters should then be set to the exact width and height of the video file. 
    • mini: This is the default. In this mode, the plugin shows a more elaborate controls bar that is 30 pixel high at the bottom of the video area. The usual width and height parameters should then be set to the exact width of the video and the height of the video plus 30 pixels.

    movieTitle

    The movieTitle parameter is useful if your videos don’t have user friendly file names such as “112356.divx” or “gr8t_vidz_1324.avi” as it allows to give a title to your video that is used by the DivX Web Player when showing UI elements and when users wants to save the video file to their Hard Disk.

    If you set movieTitle to “My Great Video” then your video file will be saved on each user’s computers as “My Great Video.divx”.

    Usage:

    • In the object tag:  <param name="movieTitle" value="[value]"> 
    • In the embed tag:  movieTitle="[value]"

    Possible values:

    • Any text that is a valid cross-platform filename such as "My Video" or “My Great Movie”.

    previewImage

    The previewImage parameter is used to specify the location of an image file in PNG, JPEG or GIF format to use as a preview image. The preview image is displayed in place of the DivX “X” logo when autoPlay is set to false. This allows to setup a piece of  video so that it does not auto start but shows a preview image of what the video is about.

    Users can then start the download and playback of the video by clicking anywhere on the preview image. See the previewMessage and previewMessageSize parameters for more options.

    Note that you need to set the autoPlay parameter to false for this parameter to be taken into account.

    Usage:

    • In the object tag:  <param name="previewImage" value="[value]"> 
    • In the embed tag:  previewImage="[value]"

    Possible values:

    • A relative path, such as "myPreviewImage.gif" or "../../images/myImage.jpg". 
    • An absolute path, i.e. "http://mywebsite.com/myImage.png".

    previewMessage

    The previewMessage parameter allows to display a text message on top of the preview image  to let users know how to start the video. The message can be any text such as “Click to play video”.

    Note that you need to also set the previewImage parameter for this parameter to be taken into account.

    Usage:

    • In the object tag:  <param name="previewMessage" value="[value]"> 
    • In the embed tag:  previewMessage="[value]"

    Possible values:

    • Any text message such as "Click here to play this video".

    previewMessageFontSize

    The previewMessageFontSize parameter allows to customize the size of the font used to display the preview message over the preview image.

    Note that you need to also set the previewImage and previewMessage parameters for this parameter to be taken into account.

    Usage:

    • In the object tag:  <param name="previewMessageFontSize" value="[value]"> 
    • In the embed tag:  previewMessageFontSize="[value]"

    Possible values:

    • Any integer  value meaningful as a font size message such as "8" or “32”.

    src

    The src parameter is used to specify which video file the plug-in should attempt to download and play. This file should have an “.avi”, “.divx” or “.mkv” extension.

    If this parameter is omitted, the plugin will not attempt to download and play a file on startup but will be ready for JavaScript calls to instruct it to do so at a later time (see the JavaScript API Reference for details).

    Usage:

    • In the object tag: <param name="src" value="[value]">
    • In the embed tag: src="[value]"

    Possible values:

    • A relative path, i.e. "movie.divx" or "../../videos/ myvideo.divx". 
    • An absolute path, i.e. "http://mywebsite.com/myvideo.divx".

    Embed Code Generator

    The DivX Plus Web Code Generator allows you to create a small piece of code that can be inserted into your website to display and playback DivX/AVI and DivX Plus HD (MKV/H.264/AAC) videos.

    If you can copy and paste, you have enough know-how to stream a DivX video from your site. If you scoff at automatic HTML code generators, then our Web Developer Guide is for you. 

    Video Path: .divx, .avi, .mkv, .mp4 or .mov
    Thumb Path: .jpg .png or .gif (optional)
    Aspect: Width: px
      Height: px
    Auto Start: (Video will play automatically)
      Yes   No    
       
    Fill in the values above and press the Generate Code button, and your custom embed code for your DivX or DivX Plus video will appear here!

    DivX Mobile

    Samsung Omnia Activation Patch

    Hello please use the link below to access the patch for the Samsung Omnia. The file is named "Omnia_Patch.cab".

    This patch will allow you to activate the VOD (video-on-demand) functionality of your phone. Even without installing this patch, you can still play DivX files using the phones native browser by either launching the media player or selecting the file you want to play from you file library.

    Instructions:

    To use the patch the Omnia the user must:

    1. Copy the .cab file onto the phone internal memory through ActiveSync.
    (Alternatively, copy the file onto a microSD card and install into phone.)
    2. Open File Explorer and locate the .cab file.
    3. Open the .cab file and patch update will complete.

    For more information, please read http://labs.divx.com/node/7204

    AttachmentSize
    Omnia_Patch.cab130.1 KB

    DivX Connected

    Here's where you'll find legacy DivX Connected documentation and guides.

    DivX Connected Guide

    DivX Connected Banner

    This guide contains technical specifications, minimum requirements, and a whole lot of other useful stuff. For set up instructions visit the DivX Connected Quick Start Guide.

    Client Firmware Changelog - 1.1

    Connected Client Firmware 1.1

    New Features in Client 1.1:

    • Cashed HDMI display resolution settings for up to 3 TVs
    • Support for standard definition wide screen display setting 
    • Setup menu option for USB firmware update
    • Audio Settings in the Display & Audio Settings Screen to choose between 5 channels or 2 Channels Audio
    • New option called “Advanced” under Display settings for all NTSC/PAL settings that were previously under “High Definition” 
    • Setup menu option for USB firmware update
    • Wake on LAN Support.  The device is now able to wake a PC that is running the server from standby, hibernation, and off modes if the BIOS and network adapter are configured for this feature. 
    • Inactive Servers that the device has previously connected to display in Grey Text listed below all active servers
    • Support for WEP hex/ascii passphrase when connecting to a wireless router 
    • Option to ‘cancel’ when connecting wireless router with a WEP passphrase 
    • On screen volume and mute graphics when adjusting the volume using the remote
    • Long server names now have ellipses in the server list
    • Added a network troubleshoot screen when no network connection is available at the time the Connected Device starts up
    • Much faster firmware update mechanism (for next firmware update)
    • LED’s are blanked out when connected to a server

    Bug-Fixes since 1.0.1:

    • Audio playback while navigating in any of the Services or Plug-ins
    • Improved slideshow smoothness for the ‘Pan & Zoom’ effect
    • No need to re-enter the encryption key after reconnecting to the wireless router
    • The output resolution displayed in the top level Display & Audio Setting has been fixed.  It used to be incorrect for the 1080 res. Displayed 1080i when the resolution was in fact 1080p
    • Refresh from screen saver no longer requires pressing any key twice to return to the UI in some cases.
    • Device will not wait for wired port to time out if no wired or wireless connection is detected after power cycle. The screen "Please choose your networking method Wired or Wireless appears is now displayed right after the search for servers fails and no connectivity is detected
    • The ‘Server Connection Denied’ screen has been modified to be more user friendly
    • Mute audio through the mute button on the remote now works in the ‘Welcome Screen’ of the Setup wizard
    • Pause/Un-pause no longer causes the audio to get out of sync
    • Navigation speed is no longer impacted due to music playback
    • Pressing the info button when in the top level navigation menu no longer causes the client to lose it connection to the server

    SDK Related Fixes:

    • SDK: Fixed issue that caused remote MP3 playback to stop prematurely
    • SDK: Fixed issue that caused a playback failure for extremely long URLs
    • SDK: Fixed clipping issue with scrollable panel elements

    Known Issues:

    • If wireless connection is lost during media playback, pressing the ‘continue’ button to reconnect to the server will display ‘connection to server denied’. The work around to this issue is to go back to the Server list screen and reselect the server. Connection will happen seamlessly.
    • You may see a black screen after powering on your device once you’ve completed the update from 1.1.2.24 to 1.1.2.37. The black screen is displayed only when connected via HDMI and only stays for 8-10 seconds. This issue only happens once and right after the update. Subsequent power cycles do not display this issue. 

    FAQ links

    For all general Frequently Asked Questions, you can go to:

    http://labs.divx.com/faq/89

    For more technical questions, you can go to:'

    http://labs.divx.com/faq/91

    If you would like to browse all of the DivX FAQs, including common troubleshooting questions, you can visit:

    http://labs.divx.com/faq

    If you are having a difficult time finding and answer to your question, feel free to contact DivX support directly by emailing connectedfeedback@divx.com

    Minimum Network Requirements

    • 802.11g wireless LAN
    • RJ-45, 10/100Mbps Ethernet connection

    Minimum PC Requirements

    • 1.6 Ghz Pentium 4 PC or faster
    • Windows XP Pro or Home edition
    • Minimum of 60 MB HDD space
    • Minimum of 512 MB system RAM

    Server Downloads and Changelogs

    Release Notes for Server Release 1.1.0 Build 08

    A beta release of the DivX Connected server rev 1.1 is now available for download. This release should fix the problem as well as a numerous other issues:

    Download DivX Connected Server 1.1.0-Build-08

    Information on how to use some of the new features is available here:

    User manual additions for new features

    If you are currently using a production version of the software, installing this beta version will result in future beta updates being issued as auto-updates as well.

    New Features since Server 1.1.0:

    • Zoom into photos with ‘Zoom By Number’ feature
    • ‘Repeat’ option by using the Repeat button to loop through media playback
    • ‘Shuffle’ option by using the Shuffle button to use random playback of media
    • Set Programmable button on the remote for plug-ins or services
    • Resume playback of media after a lost connection to the server
    • Loading message when displaying large photos
    • Re-scan of media content from Sub-folders
    • Option to Re-Scan folders from the TV interface (10’ UI)

    New Bug Fixes since Server 1.1.0:

    • Improved manual photo slideshow
    • Improved error messages if media is not accessible
    • Retain ‘Resume Info’ on media playback
    • Improved page indicator in list view of media
    • Improved sorting MP3s in alphabetical order
    • Added support to display longer subtitle strings
    • Displaying ‘Download Complete’ for Stage6 videos after download is completed
    • Improved Info overlay for photo slideshow
    • Improved stability of the server software against crash/lockup/white screen issues.
    • Displaying of playlists in the correct order
    • Option to Sort by ‘File’ in the menu option changed to Sort by ‘Title’
    • Removed the ‘Download’ option for previously downloaded Stage6 Videos
    • Implemented support for 64-bit indexing in AVI 2.0 files (>2Gb file support)
    • The software will no longer incorrectly report that no OpenGL acceleration was available
    • Improvement of MP3 ID3 tag parsing
    • Fixed lockup when navigating very complicated scenes (Google Maps, photo zoom)
    • Can now ingest & playback videos encoded with WVC1 codec
    • Fixed problem preventing use in Win2K

    Known Issues:

    • Navigating in Plug-ins by pressing the Right Arrow causes white boxes to appear after pressing the Back Button & also displaying the content from Videos
    • When playing back a wma file the progress bar fills as though it has reached the end then resets to the beginning and plays back as expected.
    • Changing the server language on Vista takes the server ~12 seconds to restart
    • Using the down arrow on Video Playback, jumps forward instead of back after the up arrow had been pressed for couple of times.
    • When selecting a wma file for playback the progress bar flashes 100% prior to beginning playback of the file. Though playback occurs as expected the visual queue of the progress bar is incorrect.
    • When selecting a .gif image in Photos, the server attempts to "load" the image and displays the ‘loading’ info on the screen until interrupted by the user.

    Release Notes for Server Release 1.1.0 Build 11

    A beta release of the DivX Connected server rev 1.1 is now available for download. This release should fix the problem as well as a numerous other issues:

    Download DivX Connected Server 1.1.0-Build-011

    Information on how to use some of the new features is available here:

    User manual additions for new features

    If you are currently using a production version of the software, installing this beta version will result in future beta updates being issued as auto-updates as well.

    New Features:
    • ‘New Features 1.1’ document under ‘DivX Connected’ Start Menu group
    New Bug Fixes:
    • Navigating in Plug-ins by pressing the Right Arrow no longer causes white boxes to appear after pressing the Back Button & no longer displays the content from Videos
    • Using the down arrow on Video Playback, no longer jumps forward instead of back after the up arrow has been pressed for couple of times
    Known Issues:
    • When playing back a wma file the progress bar fills as though it has reached the end then resets to the beginning and plays back as expected.
    • Changing the server language on Vista takes the server ~12 seconds to restart
    • When selecting a wma file for playback the progress bar flashes 100% prior to beginning playback of the file. Though playback occurs as expected the visual queue of the progress bar is incorrect.
    • When selecting a .gif image in Photos, the server attempts to "load" the image and displays the ‘loading’ info on the screen until interrupted by the user.
    • If a S6 video is selected for background downloading, then a different file is selected for playback, the 2nd file will be added to the downloads folder as well. 
    • DRM Encrypted content is not recognizable by the server
    • Long Device name gets truncated in the 2'UI Device List
    • The Programmable Button (PB) on the remote control does not maintain the original PlugIn assignment after additional Plugins/Services are added
    • When selecting a video for playback from Stage 6, the user is not immediately notified that the video is buffering.
    • Stage 6 issues surrounding download button and playback of local content are still present if performed while server is scanning folders

    Release Notes for Server Release 1.1.0 Build 12

    DivX Connected Server 1.1.0 Build 12

    Get the latest server from the DivX Connected Download Page

    New Features since Server 1.0.2:
    • Zoom into photos with ‘Zoom By Number’ feature
    • ‘Repeat’ option by using the Repeat button to loop through media playback
    • ‘Shuffle’ option by using the Shuffle button to use random playback of media
    • Set Programmable button on the remote for plug-ins or services
    • Resume playback of media after a lost connection to the server
    • Loading message when displaying large photos
    • Re-scan of media content from Sub-folders
    • Option to Re-Scan folders from the TV interface (10’ UI)
    Fixes:
    • Using some plug-ins on Vista32 no longer causes the server to crash 
    • DRM encrypted content is now recognized by the server 
    • Stage6 Videos no longer get added to the Downloads folder after being played back progressively 
    • Server restarts without delay, after changing the server language or name 
    Known Issues:
    • When playing back a wma file the progress bar fills as though it has reached the end then resets to the beginning and plays back as expected.
    • When selecting a wma file for playback the progress bar flashes 100% prior to beginning playback of the file. Though playback occurs as expected the visual queue of the progress bar is incorrect.
    • When selecting a .gif image in Photos, the server attempts to "load" the image and displays the ‘loading’ info on the screen until interrupted by the user.
    • Long Device name gets truncated in the 2'UI Device List
    • The Programmable Button (PB) on the remote control does not maintain the original PlugIn assignment after additional Plugins/Services are added
    • Stage 6 issues surrounding download button and playback of local content are still present if performed while server is scanning folders

    Release Notes for Server Release 1.2.0 Build 48

    Connected Server 1.2.0 Build 48

    Get the latest server from the Connected Download Page

    New Features in Server 1.2.0 Build 48:

    • User selectable themes to customize the look of Connected (if you’re tired of the fuchsia fascia).
    • 4 New Services: EPIC-FU, Frederator, Indy Mogul & Pulp Secret
    • If you have plug-ins installed on your PC prior to this update, that plug-in folder will be renamed to ‘plugins-old’ and an information message will be displayed during the upgrade to Server 1.2
    • New packaging system for Connected plug-ins and themes.  A Connected plug-in or theme can now be installed by simply double-clicking on the package file.
    • Out-of-box support for more media formats:
      • MPEG-1
      • DV
      • MJPEG
    • Improved zoom-by-number for photos with extreme aspect ratios – zoom regions (1 through 9) are lined up horizontally for wide panoramic photos and vertically for tall shots, and adapt to a 3x3 grid once zoomed in to a filled screen.
    • Stage6 has been removed from the ‘Services’ section
    • Stage6 button on DSM-330 remotes is now mapped to the top level ‘Services’ menu
    • Themes and plug-ins are now installed to the user profile directory instead of Program Files
    • Auto-marquee scroll in list view for long titles for all media in the 10’ UI
    • Updated documentation

    Bug Fixes:

    • Sorting by ‘Artist’ and ‘Genre’ in music, now displays ‘All Artist’ and ‘All Genre’ depending on the sort option chosen.
    • Album tracks are displayed by ‘track number’ first and then by ‘title’ in meta data based views
    • The Programmable Button (PB) on the remote control maintains the ‘plug-in’ originally assigned to even after additional Plug-ins are added to the server.
    • Video and/or Music files with more than 172 chars in the file name now get added to server.
    • Support of Music & Videos playback from the Playback screen when Media is monitored from Neighborhood Networks
    • Media with long file names can be viewed now (this applies to files names longer than 100 chars)
    • Improved functionality around ‘Resume’ playback

    Known Issues:

    • There might be a delay with playback of some large videos located on some types NAS devices.
    • DV Video/PCM audio clip freezes after skipping forward
    • Subtitles do not display when the SUBTITLE button is pressed for clips that do not have a DMF menu option to enable them.
    • Entering the Funspot service causes music playback to stop.
    • When shuffle mode is on and a file is selected (music or video) only files that appear after that in the folder will be played back
    • Selecting the last file of a folder with Shuffle mode turned on only plays that file then the user is returned to the folder menu
    • Pressing the UP ARROW at the end of a streaming video from a service (i.e. EPIC-FU, etc) the video will freeze until the user presses the UP ARROW again.
    • Pressing the LANGUAGE or SUBTITLE buttons during playback of a WMV, DV, MJPEG file causes the video playback to jump ahead ~15 seconds
    • Pressing the UP ARROW at the end of a video clip moves the time indicator from the info overlay to the end of the file and the video frame freezes and does not continue or end play back
    • The same video or music item should continue to repeat & not the next item in the playlist when the Repeat & Shuffle is set on the fly
    • Navigating to the 'Plugins' section for the first time is jittery & not smooth when there are more than one page of plugins available
    • When playing back a wma file the progress bar fills as though it has reached the end then resets to the beginning and playsback as expected.
    • Enabling "Repeat File" for the last file in a folder after playback is initiated does not loop as expected
    • No message is displayed when selecting to play content from a playlist that does not exist (XP only Issue)
    • Setting your PC desktop to an abnormal DPI setting will effect HTML based services such as Funspot
    • Selecting Resume playback on a DMF file displays the main menu of the file instead

     

    Release Notes for Server Release 1.2.1 Build 8

    Connected Server 1.2.1 Build 8

    Get the latest server from the Connected Download Page

    Bug Fixes:

    • Fixed a number of issues with the Shuffle and Repeat playback modes
    • Fixed the issue that caused choppy video playback from certain NAS devices
    • Eliminated delay when playing video from some NAS Drives.
    • Fixed occasional lockup during video playback
    • The photo count in the ‘Info Overlay’ screen now calculates the number of photos correctly when viewing mixed folders/files.
    • ‘Abbrechen’ button on German Resume Playback Screen now fits correctly in SD mode

    Known Issues:

    • After you select Play to play a video clip locally or from any of the Services & then immediately press the Stop or Back button on the remote right before the video plays the screen goes blank.
    • When ‘Repeat All’ mode is turned off and you select Play All for videos, pressing the NEXT button on the remote continually allows the playlist to loop.
    • After going through the video playlist & then stopping a video right after an error message displays: 'An error occurred during playback of the selected media'

    Release Notes for Server Release 1.3.0 Build 46

    Connected Server 1.3.0 Build 42

    Get the latest server from the Connected Download Page

    Changes since server 1.2.1:

    • Added support for BMP and PNG image files as well as PNG, BMP album art in MP3 files
    • Added Japanese language option to both 2’  & 10’ UI (not in Setup Menus)
    • Hyper fast pre-scan of basic folder / file structure
    • Much faster deep scan (almost 5X for music and 2X for photos) for full ingestion for thumbnail generation and metadata
    • Improved folder monitoring of new, renamed and removed content for local and networked storage
    • Auto re-scan as folders are navigated
    • Navigation based (multi client) prioritization for database ingestion.  A user will always be able to access new content without delay
    • Preservation and transfer of metadata when folders are moved on same server or to a different server
    • File stacking view option (for files with similar leading characters in title).  Press the Menu button to enable this feature for a folder
    • Photo rotation (Enter button) and zoom setting with save (Menu button)
    • Ability to remove plug-ins from the 10' UI using the Delete button on the remote
    • Improved playlist support
    • Improved playback of WMV, WMA, MKV playback
    • Added broken thumbnail icon in the 10’ UI for non-supported content
    • Added ability to ‘Fill Screen’ when viewing photos. Press the Menu button and select ‘Fill Screen’ under Options. 
    • New Menu Option during Video playback of DMF videos [Navigation, Audio Tracks, Subtitles, Adjust A/V Sync]
    • New Menu Option during Video playback of other supported Videos to adjust A/V sync

    Known Issues:

    • Copying a file to monitored folder from a network drive causes a broken thumbnail
    • When attempting to play invalid media content files from the metadata playback screen nothing occurs
    • List View is not being remembered in the Stacked folder when returning to the folder
    • Slideshow playback of HD photos could be choppy when using Dissolve or Pan & Zoom effects
    • The last played video clip doesn't get remembered when advancing through videos using the NEXT button on the remote
    • Exporting thumbnail artwork from the video metadata editor does not render an image file
    • Time info overlay is not updating properly

    Release Notes for Server Release 1.3.0 Build 58

    Connected Server 1.3.0 Build 58

    Get the latest server from the Connected Download Page

    New Features since 1.2.0.48 Release:

    • Photo rotation (Enter button) and zoom setting with save (Menu button)
    • Ability to ‘Fill Screen’ when viewing photos (Menu button)
    • File ‘Stacking’ view option for 5 or more files with 5 or more similar leading characters in title (Menu button)
    • Ability to remove plug-ins from the Plug-ins screen (Delete button)
    • Fast pre-scan of basic folder/file structure
    • Faster deep scan (almost 5x for music and 2x for photos)
    • Auto-rescan as folders are navigated
    • Ability to preserve and transfer metadata when folders are moved on same server or to a different server
    • Support for BMP and PNG image files as well as PNG album art in MP3 files
    • Japanese language option
    • Ability for DivX to add/remove/modify services without updating the server <this is transparent to the user>
    • ‘question mark thumbnail icon for non-supported content
    • New menu option during Video playback of DMF videos [Navigation, Audio Tracks, Subtitles, Adjust A/V Sync]
    • New menu option during Video playback of other supported Videos to adjust A/V sync
    • Navigation based (multi client) prioritization for database ingestion allowing the user to be able to access new content without a long delay

     

    Bug-Fixes/Improvements since 1.2.0.48 Release:

    • Improved folder monitoring of new/renamed/removed content for local and networked storage
    • Improved and fixed issues around Shuffle and Repeat playback feature
    • Fixed issue that caused choppy video playback from certain NAS devices
    • Fixed occasional lockup during video playback
    • Fixed the photo count in the ‘Info Overlay’ screen when viewing mixed folders/files
    • Fixed the ‘Abbrechen’ button on German Resume Playback Screen when in SD mode
    • Improved playback of WMV, WMA, MKV playback
    • Fixed playback freeze issue when the Back or Stop button is pressed during playback of MPEG-1 video/audio
    • Fixed issue with poster frame generation for some video files
    • Fixed issue with drag and drop of an image for music thumbnails in the metadata editor
    • Fixed issue with exported thumbnails from the video metadata not being saved correctly

    SDK Related Fixes:

    • SDK: Fixed issue that caused remote MP3 playback to stop prematurely
    • SDK: Fixed issue that caused a playback failure for extremely long URLs
    • SDK: Fixed clipping issue with scrollable panel elements

    Known Issues:

      • WMV3 HD 1080p videos will not playback if Windows Media Player 9.0 is installed on the PC that the server is running on. The work-around is to update your WMP to the latest version (version 11).
      • Manual Re-scan does not initiate re-scan metadata-based music folders
      • PLS playlists do not get displayed properly  

    Release Notes for Server Release 1.3.1 build 10

    Connected Server 1.3.1.10

    Get the latest server from the Connected Download Page

    New Features:

    • Vuze has been added as a Service.  Vuze must be downloaded and running on the PC that DivX Connected Server is running on to be able to watch Vuze videos on Connected.

    Bug-Fixes:

    • DivX Connected Server will not show up multiple times in the Server List when multiple network adapters are enabled.
    • Playback of 'Ambient Extras' Services has been fixed
    • A long Server name is no longer truncated when pressing info on the remote from the top level menu
    • DivX Connected Server will no longer hang and remain inactive when PC is waking up on LAN

    Known Issues:

    • Not all videos from Vuze will play back.  Not all videos from Vuze will play back.  We are not supporting playback of HD videos from Vuse just yet and soon these videos will be filtered out from the list of Vuse videos displayed in the Service.
    • Skipping and/or trick play are not supported for Vuze Videos
    • Playback after a Vuze video has been paused starts out with a slight stutter
    • Pressing the 'back' button when a Vuze video has been paused hangs the UI and reconnecting to the server may be necessary

    Release Notes for Server Release 1.4.0 build 54


    Some early plug-ins built for DivX Connected Server 1.4 can be found at:
    http://labs.divx.com/node/7023

    New Features:
    • Flash-based Plug-in Support - Flash video and audio can now be launched through DivX Connected plug-ins, opening the floodgates to a vast library of content.  Upon release of 1.4, users can expect to be hit with a wave of new plug-ins, including the likes of YouTube and Dailymotion, and developers will have the tools they need to port countless other Flash video sites to the DivX Connected platform.
    • SDK: Film Strip Control - Developers will be able to leverage (and users will be able to experience) this new UI element, which lets you smoothly flip through content thumbnails either vertically or horizontally, taking the DivX Connected UI into the 3rd dimension, with its perspective and reflection elements.
    • SDK: Tile Control - Developers can now easily nest content into rows and columns of tiles, which are scrollable both horizontally and vertically.  Unlike the original thumbnail control, the tile control can contain text, labels, images, and more, allowing developers to let their imaginations run free.
    • Under the Hood - The underlying Gecko engine has been updated, which improves system speed and performance; this is the same new engine that powers Firefox 3.
    • Remote Shutdown - A PC running the DivX Connected Server software can now be shut down or put to sleep through a menu item in the main DivX Connected interface.  This is most useful when used in conjunction with the wake-on-LAN feature introduced in the 1.1.2.37 version of the DivX Connected Client firmware. See: http://labs.divx.com/wol

    Bug Fixes:

    • Pasting a file into a monitored folder would sometimes appear as a broken thumbnail.
    • Root level NTFS drives (e.g. “C:\”) could not be added as a monitored folder.
    • Some playlist files (.M3U and .PLS) were not recognized or interpreted correctly by the scanner.
    • Selecting the ‘Re-scan” option from the pop-up menu would sometimes fail to initiate a re-scan.
    • Multiple issues relating to playback of DivX Ultra content have been addressed.
    • A number of other minor issues have been resolved. 

    Release Notes for Server Release 1.4.0 build 59


    Some early plug-ins built for DivX Connected Server 1.4 can be found at:
    The Connected Plug-ins Download Page

    Important Notice:
    For users of the anti-virus software AVG or NOD32, you may receive a Trojan alert if your virus definition files are not up to date.  DivX Connected is (and always has been) virus-free!  We can only guess that some of the code patterns coincidentally shared similar characteristics to a Trojan definition and were erroneously flagged by the outdated virus definitions files; all DivX Connected files have since been deemed safe.  Again, if you receive this error, please update to the latest anti-virus definition files.
    • On NOD32: Make sure the virus definition database is newer than July 08
    • Sometimes NOD32 does not get updated unless the update button is clicked few times with the progress bar displaying the update completed

    New Features:
    • Flash-based Plug-in Support - Flash video and audio can now be launched through DivX Connected plug-ins, opening the floodgates to a vast library of content.  Upon release of 1.4, users can expect to be hit with a wave of new plug-ins, including the likes of YouTube and Dailymotion, and developers will have the tools they need to port countless other Flash video sites to the DivX Connected platform.
    • SDK: Film Strip Control - Developers will be able to leverage (and users will be able to experience) this new UI element, which lets you smoothly flip through content thumbnails either vertically or horizontally, taking the DivX Connected UI into the 3rd dimension, with its perspective and reflection elements.
    • SDK: Tile Control - Developers can now easily nest content into rows and columns of tiles, which are scrollable both horizontally and vertically.  Unlike the original thumbnail control, the tile control can contain text, labels, images, and more, allowing developers to let their imaginations run free.
    • Under the Hood - The underlying Gecko engine has been updated, which improves system speed and performance; this is the same new engine that powers Firefox 3.
    • Remote Shutdown - A PC running the DivX Connected Server software can now be shut down or put to sleep through a menu item in the main DivX Connected interface.  This is most useful when used in conjunction with the wake-on-LAN feature introduced in the 1.1.2.37 version of the DivX Connected Client firmware. See: http://labs.divx.com/wol

    Bug Fixes:

    • Pasting a file into a monitored folder would sometimes appear as a broken thumbnail. 
    • Root level NTFS drives (e.g. “C:\”) could not be added as a monitored folder.
    • Some playlist files (.M3U and .PLS) were not recognized or interpreted correctly by the scanner.
    • Selecting the ‘Re-scan” option from the pop-up menu would sometimes fail to initiate a re-scan.
    • Multiple issues relating to playback of DivX Ultra content have been addressed.
    • A number of other minor issues have been resolved. 
    • Fixed the issue that caused Adobe Flash to get uninstalled during the installation process
    • Fixed overlay issue with DivX files with DMF Menu when pressing the MENU 
    • Fixed the Resume Playback screen not displaying on abrupt disconnect
    • Added mapping for Plug-ins button on DCMP remotes

    Release Notes for Server Release 1.4.1 BETA



    Changes since 1.4.0:


    • There was a crash in the date-time handling code in the media scanner. This appears to occur when the file system gives us very unusual dates (e.g. Jan 1, 1600).
    • Playlists that contain some foreign characters were not being displayed in the 10’ UI.

    Release Notes for Server Release 1.5.0 build 75

    Server 1.5.0.75 Release Notes:

    What's New:
    • Support for MKV file playback (transcoded on the server).
    • Music Albums with proper track info in the metadata are displayed based on track number.  
    • Integrated Connected PC client with mouse support and much better performance than previous DCMP client.
    Known Issues:
    • There may be a 10 second delay in Connected PC when returning to normal play speed after fast forwarding or rewinding.
    • Downgrading from Server 1.5 to a previous version of Connected Server requires that the Server 1.5 be uninstalled first. Plug-ins, Themes and metadata can be retained if you choose to not remove them during uninstall.
    Bug Fixes:
    • MKV file with double byte characters such as umlauts are now recognized in the 10' UI.
    • Fixed issue that caused photos over network to not display.
    • Photo Thumbnails reflect the correct orientation of the image.
    • When using the virtual keyboard (examples; in Picasa or Hulu Plug-ins) the DELETE button on the remote deletes characters. No need to navigate to ‘Delete’ on the virtual keyboard.
    • Fixed Jittery video playback (no need for the DLL patch) which was introduced in Server 1.4
    • Fixed issue that caused subfolders to sometimes sort incorrectly.
    • Progress bar during WMA playback now displays correctly
    • Fixed a number of playback and scanner issues with MKV and non-DivX videos files (such as WMV)
    • Fixed conflict with Handbrake video converter
    • Fixed crash when scanning files with an invalid date
    • An error message is now displayed for video files that contain an unsupported codec.
    • Fixed a number of issues with multiple audio track support

    Release Notes for Server Release 1.5.1 build 20

    Server 1.5.1.20 Release Notes:


    To see the Server 1.5.0.75 release notes, click here


    What's New:

    • Connected Server and Connected PC are now supported in Simplified Chinese, Traditional Chinese, Spanish, and Brazilian Portuguese/
    • The first 100 tracks (increased from 30) in a music album will get sorted by track number if cohered track numbering is available.
    • Fixed MP3 playback stutter issue.

    Known Issues:

    • All documentation is only available in English

    Server Software Features

    • User-friendly software runs on your PC to manage media folders
    • Guided setup wizard
    • Multiserver and multiclient support
    • Simple folder-based content access
    • Real-time folder monitoring for new content
    • Meta data editing
    • Folder access protection
    • Automatic updates

    Technical Specifications

    Network Specifications:

    • Compatible with 802.11g (2.4GHz) standard
    • Up to 54Mbps, high-speed wireless data transfer rate
    • RJ-45, 10/100 Mbps Ethernet connection

    Audio outputs:

    • Stereo RCA analog
    • S/PDIF coaxial and fiber digital audio output
    • Stereo and AC3 5.1 audio out is supported through HDMI as well

    Video outputs:

    • PAL or NTSC
    • HDMI
    • Component
    • Composite
    • S-Video
    • Scart

    Video formats that are currently supported:

    • DivX (up to 720p)
    • Xvid with MP3 or PCM audio
    • WMV9 (transcoded on PC)
    • Mpeg-1 (transcoded on PC)
    • DV (transcoded on PC)
    • MJPEG (transcoded on PC)

    Audio formats that are currently supported:

    • MP3 up to 320kbps (mp3 playlists in ithe .pls, .m3u, and .m3u8 format are also supported)
    • WMA (transcoded on PC)

    Picture formats that are currently supported:

    • JPEG (grayscale, RGB & YCbCy only)
    • JPEG 2000
    • BMP (non-compressed)

    The DivX Connected PC Client

    Try the DivX Connected experience without owning a DivX Connected device. By downloading the free DivX Connected Server and PC Client, you can try the same DivX Connected interface on your PC that you'd see on your TV. Play around with the latest features and see what DivX Connected is all about

    Step 1: Download the latest DivX Connected Server with PC Client (if you do not already have it.)

    Find out more about DivX Connected here: DivX Connected Overview
    Or connect with other users on the DivX Connected Forum


    After installation, you can start DivX Connected by double clicking on the DivX Connected PC icon

    More info:
    • Use the keyboard shortcuts listed in help menu since you won't have a DivX Connected remote
    • You can install the DivX Connected PC Client on any PC on your home network to access media from that PC.
    • For a general overview, please visit the What is DivX Connected page


    Troubleshooting Guide

    I have my box connected using HDMI but I can’t see anything
    • Make sure your TV is on and set the input to the appropriate HDMI connection.
    • Try turning the device off and then on again.
    • Try pressing the ‘Setup’ button on the remote and then re-run the setup wizard by selecting ‘Run Setup Wizard’.
    • Try using component, composite or S-Video to see if you can get any video signal.

    I have my box connected using HDMI but I cannot hear anything
    • Many TVs have dedicated red/white hookups to be used in combination with HDMI. Try using your RCA audio hookups in conjunction with your HDMI cable.
    • If all else fails, try running everything through a receiver/sound system instead of directly into the TV.

    My video playback is choppy
    • This could be due to transcoding from other formats. Try converting your content to the DivX format.
    • This could be due to high network traffic.
    • It could be a 1080p video file, which isn’t fully supported.
    • There could be wireless interference from other networks.
    • Try playing the file in your PC and see if it is still choppy.
    • Try connecting your box and your PC directly to the network, instead of using the wireless network.

    My slideshow playback is choppy
    • This could be due to transcoding from other formats.
    • This could be due to high network traffic.
    • The PC may be too busy to decode the photo files because it is trying to render the transitional effects. Try turning off the effects.
    • There could be wireless interference from other networks.

    My screen keeps going blank
    • This is an automatic screen saver to prevent burn-in of CRT and plasma TVs.  You can un-blank the screen by pressing any button on the remote (except power). The time before the screensaver kicks on can be extended via the ‘Options’ menu in the DivX Connected Server application on your PC.

    My HD files do not play back smoothly
    • High definition files may not play back smoothly on a wireless network. Plug your PC and/or box into your wired network directly and try again.
    • Transcoding from other HD formats, such as WMV HD, requires much higher CPU usage and may not occur smoothly under all conditions. It is recommended that you convert these files to DivX prior to playback on the connected device.
    • The DivX Connected device will decode 720p HD DivX files smoothly with a good network connection.
    • The DivX Connected device may decode some 1080p HD DivX files smoothly if the bit rate is less than 8Mbps and you have a good network connection.

    My menus are really slow / Everything is sluggish / My colors are bad
    • Your PC’s graphics card drivers may be out of date. Update your drivers and try again. It is always best to have an up-to-date graphics card driver.
    • Running the box in HD mode requires more CPU and graphics processing power for the menus and may lead to slowing.
    • Having a second monitor running may interfere with your DivX Connected device’s performance. Disable the 2nd monitor (if present), restart the DivX Connected Server and then re-enable your second monitor.
    • You can also try to adjust your performance settings in the DivX Connected Server as well as on your graphics driver.
    • It is possible that your remote is not responding correctly. This can be a result of placing the device near a reflective surface such as a glass stand. Try repositioning the box.

    My screen and/or video keeps flickering up and down
    • This will sometimes happen on older PAL televisions. This problem can sometimes be fixed if your TV has a vertical hold (V-Hold). Tweak it as needed until the problem is minimized.

    My startup screen is black and white
    • The startup screen will always be displayed in NTSC. If your television is only capable of receiving a PAL signal, then the startup screen will always be black and white. It will return to color after the boot-up process is complete.

    Everything is black and white
    • Content will be black and white if your television is PAL, but is receiving an NTSC signal (and vice-versa). Press the ‘Setup’ button on the remote, then press ‘Display’ and choose your appropriate settings.
    • If you bought your box in a region where PAL is the standard, then your box will default to PAL when choosing standard definition. The same applies for NTSC. You may change your default by pressing ‘Setup’ on the remote and then going to ‘Display’ > ‘Display settings’ > ‘High definition’ and choosing either NTSC 480i 4:3 (for NTSC) or PAL 576i 4:3 (for PAL). This will change your DivX Connected device’s default settings.

    The display is cut off at the top, bottom or side
    • Press the ‘Setup’ button, then choose ‘Display’ > ‘Screen position’ and follow the on-screen instructions to adjust the size and position of the test screen until it is fully visible.

    My video is out of sync
    • This may be fixed by restarting the DivX Connected Server application.
    • If this does not help, you might also try testing to see if the file itself is out of sync. You can do this by playing the file back on your PC or another DivX Certified device.

    Why is my screen blank after my boot-up screen?
    • You might be trying to run your device in high definition (HD) mode when your TV can only accept a standard definition (SD) signal. Try pressing the ‘Setup’ button on your remote and selecting “Standard definition” in the display settings.
    • If this does not work, try exiting and restarting your DivX Connected Server application.

    Why are some of my files not showing up?
    • Only files of supported types will be listed. Unsupported formats can be converted to the DivX format using DivX Converter, Dr. DivX (which is free) or other conversion programs.
    • In some cases, the system may not recognize new files that are added to networked drives. In these cases, use the rescan function on the DivX Connected Server application by clicking on the appropriate media “Settings” tab, right clicking on the folder, and choosing ‘Re-scan’.

    Where is my PIN-protected content?
    • You have to login in order to see your PIN-protected content. Press the ‘Menu’ button on your remote, choose ‘Login’ and enter your PIN code. This will make all of your PIN-protected content visible until you choose to logout.

    My box says that my firmware update failed. What should I do?
    • Power you device off and on again and see if it will re-attempt the update.
    • If your device is connected wirelessly and does not re-connect and repair the firmware, power your device off and connect your box using an Ethernet cable, then power it back on to initiate the fail-safe recovery.

    My remote control is not responding properly
    • Some large plasma TVs and reflective surfaces may cause interference with the IR remote. Try re-positioning your device.
    • You can test to see if the issue is caused by the remote by pressing "Setup" on your remote and navigating around the menu. If you have no problems with navigation there, then the remote is not the problem.

    I keep getting a bit of distortion whenever I change display types or choose a new server
    • Some TV displays will experience distortion when display modes are changed.  This is normal and should only last for a second or two.

    Wake on LAN guide

    Setting up your DivX Connected Server for Wake on Lan

    1.  Right-click on 'My Computer' and select Properties




    2.  Select the Hardware tab and click on the Device Manager button.




    3.  Expand the Network Adapters group and right-click on your Ethernet controller.  Then select Properties.




     4.  Select the Power Management tab, and then fill in the check boxes for:

    • Allow the computer to turn off this device to save power.
    • Allow this device to bring the computer out of standby.
    • Only allow management stations to bring this computer out of standby.  




    Optional:  Configuring the BIOS

    If the above instructions do not work, you may have to configure your system from the BIOS.  Look for options that relate to power management, PCI devices, and Ethernet settings.  See your PC's documentation for instructions on BIOS configuration.


    Waking your DivX Connected Server

    1.  Power on your DivX Connected Device
    2.  Choose the server you wish to wake from the list (it should appear grayed out if it's asleep).



    3.  The PC should wake up and the client will connect to the server.

    Remote Cheat Sheet

    Basic Remote Control Features

    To Do This… Do This with the Remote Control
    Move the selection highlight Press Arrow (right, left, up or down)
    Select an option Press Enter or Right Arrow
    Go back to the previous menu Press Left Arrow or Back
    Go to the main menu Press Home
    Display the overlay menu Press Menu
    Display the next page Press next Page
    Display the previous page Press previous Page
    Setup the device Press Setup

     

    Video Controls

    To Do This… Do This with the Remote Control
    Play or pause video Highlight the desired item and press Play/Pause
    Display the playback menu Highlight the desired item and press Enter
    Stop the video Press Back or Stop
    Change the language Press Language (or Audio Out)
    Change the subtitle Press Subtitle (or Video Out)
    Fast Forward or Rewind Press Right or Left Arrow, or FF or REV
    Return to Play from FF or REV Press Enter or Play/Pause
    Skip forward 30 seconds Press Up Arrow
    Skip back 10 seconds Press Down Arrow
    Skip to the next chapter Press Next
    Skip to the previous chapter Press Prev
    Skip to the next video Press next Page
    Skip to the previous video Press previous Page
    Select a chapter Press numbers 0 through 9.
    Display video playback info Press Info

     

    Music Controls

    To Do This… Do This with the Remote Control
    Play or pause song Highlight the desired item and press Play/Pause
    Display the playback menu Highlight the desired item and press Enter
    Fast Forward or Rewind Press FF or REV
    Return to Play from FF or REV Press Play/Pause
    Skip to the next song Press Next
    Skip to the previous song Press Prev
    Stop the song Press Stop

    *       Note:  Music controls are available in combination with all other playback types except video.

    Note:  mp3 audio coding technology and patents licensed from Fraunhofer IIS and Thomson; mp3 Surround audio coding technology and patents licensed from Fraunhofer IIS, Agere and Thomson.

    Photo Controls

    To Do This… Do This with the Remote Control
    Display a photo Highlight the desired item and press Enter
    Advance to the next photo Press Right Arrow
    Go back to previous photo  Press Left Arrow
    Start or resume a slide show  Press Up Arrow
    Increase slide show speed Press Up Arrow
    Decrease slide show speed Press Down Arrow
    Display slide show menu Press Menu
    Zoom in Press Page Up
    Zoom out Press Page Down
    Pan your view Press Arrow Keys in desired direction
    Zoom in to specific region See examples below

    The photo gets divided into 9 regions.

    Pressing 2 will expand the 2nd region.

    Pressing 7 will expand the 7th region…

    … and so on.


    Rotate Your Photos


    The following diagrams show you how to use your remote to rotate your photos in DivX Connected:
    Original View Key Presses Desired Result
    Turned on its left Press ENTER once 90° clockwise
    left
    enter image rotate
    Turned on its right Press ENTER twice 90° counter-clockwise
    on right
    enter enter
    image rotate
    Turned upside-down... Press ENTER three times 180° vertical flip
    upside down
    enter enter enter
    image rotate

    Theme Creation Guide

    Currently Available in the following languages:

    Theme Creation Guide - Deutsch

    Verpasse Deiner DivX Connected Oberfläche ein neues Gesicht!

    Die Oberfläche von DivX Connected ja ganz schön und gut, aber Du kannst das in wenigen Schritten nach Deinem Geschmack anpassen. Abwechslung ist ja schliesslich das halbe Leben, oder?


    Die Community war bereits fleißig und hat ein paar tolle Designs erstellt. Schau doch einfach mal rein und laß Dich inspirieren:
    http://labs.divx.com/connected/themes

    Und? Hat es Dich jetzt auch gepackt? Kein Problem. Zuerst mal die Anleitung durchlesen und los gehts.
    Die .zip-Datei, die Du per Link unten herunterladen kannst, beinhaltet alles, was Du zum Erstellen eigener Designs für DivX Connected benötigst.

     DivX Connected Design-Vorlage herunterladen

    Die nachfolgende Anleitung zum Ersteller eigener Designs für DivX Connected findest Du auch in der .zip-Datei.

    • Als Erstes editiere die .cth-Datei. Du kannst diese mit WordPad oder Notepad öffnen. Grundsätzlich musst Du lediglich den Namen des Designs sowie Deinen Namen einfügen – damit die Community auch weiss von wem das Design kommt. Zusätzlich kannst Du auch die Farben des Menüs und der Panels anpassen. Wichtig: Die Datei nach der Änderung immer speichern.
    • Jetzt kannst Du Deine eigenen Icons und Hingergrundgrafik gestalten., Bitte beachte, dass Deine Icons die gleiche Größe wie die Originalicons haben. Speichere Deine Icons, und benenne diese genauso, wie die entsprechenden Originale. Aufgepasst: Die Hintergrundgrafik darf die HD-Auflösung (max. 1920x1080) nicht überschreiten. Diese Auflösung stellt sicher, dass Deine Hintergrundgrafik auch richtig gut zur Geltung kommt.
    • Kopiere alle Icons und die Hintergrundgrafik in den entsprechenden Ordner (Falls Du mit einer Kopie der Originalvorlage arbeitest, kannst Du die Originalgrafiken einfach überschreiben). Falls Du mal nicht mehr weisst wo denn jetzt was hinkommt, schau einfach in der connected.cth oder im DivX Connected SDK nach.
    • Eine kleine Vorschauf gefällig? Das geht ganz simpel mit der Datei preview.html, die im Template-Ordner liegt. Doppelklick auf die preview.html, und das Browserfenster mit dem Design öffnet sich. Diese Vorschau gibt keine Funktionen wieder, gibt aber eine Vorschau, was später auf dem Fernseher zu sehen ist.
    • Nun muss die Installationsdatei erstellt werden. Wähle NUR den Ordner “theme” und die Datei "connected.cth". Klicke mit der rechten Maustaste auf die Auswahl und wähle „Senden an > Compressed zip folder“ (vorausgesetzt, du hast ein Archivierungsprogramm wie WinZip oder WinRAR auf dem Rechner.
    • Ändere anschließend die Dateierweiterung von ".zip" zu ".zth". Den Namen der Datei kannst Du ändern, jedoch nimmt dies keinen Einfluss auf den Namen des Designs (haben wir im Schritt 1 festgelegt).
    • Doppelklicken auf die fertige .zth-Datei und das Design wird installiert.

    Wir gratulieren! Nun hast Du ein neues Design erstellt, welches Du auch mit anderen in der Community teilen kannst! War doch ganz einfach, oder?

    Unter  http://labs.divx.com/ConnectedForum kannst Du Deine Kreationen der Community vorstellen und mit anderen teilen.

    Für alle fortgeschrittenen empfehlen wir die Server Plug-in SDK. Damit lassen sich umfangreichere Änderungen und Anpassungen vornehmen: http://labs.divx.com/ConnectedDownload


    Viele Spass!

    Theme Creation Guide - English

    The DivX Connected Theme Creation Guide


    The .zip file below contains everything that is needed to create your own DivX Connected Theme.

    Download the DivX Connected Theme Template

     
    Below are the instructions for creating a theme using the theme template.  These instructions are also included in the .zip file.

    1. Edit the connected.cth. You can open it in WordPad or Notepad. For the most part, you will only need to edit the theme name and author in the connected.cth document. You can also edit the colors of the expanded menu and general panel if you'd like. Make sure you save after editing.

    2. Insert your own content into the "theme" folder by renaming your pictures with the same name as the original files included in this template. Then save or drag and drop to overwrite the original files. Refer to the connected.cth or the DivX Connected SDK if you need to figure out what icons you need to replace to get your desired theme. For the most part, you can completely change the look of your theme by just editing background.jpg and the icons in the "main_icons_menu" folder.
     
    3. Preview your theme. There is a simple way to preview your theme. You can open the included "preview.html" file. It will not show off all aspects of the theme, but it will preview the main part of it.

    4. When you’re done, select ONLY the "theme" folder and the

    "connected.cth" file. Right click and choose: send to > compressed zip folder

    5. Now change the extension of the resulting file from ".zip" to ".zth". You can change the actual name of the file as well, but this will have no affect on the final theme.

    6. Double-click to install! Now you have a custom theme installed, and an installer that you can share with other people.


    Other things you can do after creating your new theme:

     
    - Share your theme with others at http://labs.divx.com/ConnectedForum

    - Read more about the advanced features of theme editing in the new SDK, available here: http://labs.divx.com/ConnectedDownload

     

    Theme Creation Guide - Français

    Guide sur la création des thèmes DivX Connected

    Les instructions ci-dessous expliquent tout sur le processus de créer vos propres thèmes DivX Connected.  Pour ce faire, suivez ces étapes :

    • Éditez le fichier connected.cth en l’ouvrant dans un Éditeur de texte comme WordPad ou Bloc-Notes.  Il suffit dans ce document de ne réviser que les noms du thème et l’auteur.  Par contre, il est possible de modifier les couleurs du menu agrandi et du panneau général si souhaité.
    • Ajoutez votre propre contenu au dossier « thèmes » en renommant les fichiers photo pour coïncider avec les nom des fichiers originaux inclus dans ce gabarit.  Sauvegardez-les ensuite, ou glissez et déposez vos photos pour écraser les fichiers originaux.  Pour savoir quelles icônes il faut remplacer afin d’obtenir les résultats souhaités, compulsez les documents connected.cth ou le SDK DivX Connected.  Pour la plupart, il est possible de changer entièrement l’apparence de votre thème rien qu’en modifiant le fichier background.jpg (image d’arrière-plan) et les icônes dans le dossier « main_icons_menu ». 
    • Prévisualisez votre thème.  La manière la plus simple de prévisualiser votre thème, c’est d’ouvrir le fichier joint « preview.html ».  Ce fichier ne montre pas tous les éléments du thème mais il en affichera la partie principale.
    • Quand vous en aurez fini, sélectionnez le dossier « thèmes » et le fichier « connected.cth ».  Faites un clic droit là-dessus et choisissez : Envoyer à > Dossier compressé (.zip).
    • Changez l’extension du fichier résultant de « .zip » à « .zth ».  Il est possible aussi de changer le nom du fichier même, mais ceci n’aura aucun effet sur l’apparence ou la fonction du thème final.
    • Effectuez un clic-double sur le fichier pour l’installer.  Vous avez maintenant un thème personnalisé installé sur votre PC ainsi qu’un fichier d’installation à partager avec les autres.

    Options supplémentaires :

    -Partager le thème avec les autres à htp://labs.divx.com/ConnectedForum

    -En lire plus sur les fonctions avancées de l’édition de thèmes dans le nouveau SDK, disponible à : http://labs.divx.com/ConnectedDownload