Can default installed MS MPEG-4 codec decode MPEG-4 standard strea

Discussion in 'Windows Media Player' started by Joost Sannen, Sep 28, 2004.

  1. Joost Sannen

    Joost Sannen Guest

    Seems a trivial question. But I don't seem to be able to do it.

    I will explain my problem in a bit more detail.

    Background:
    I am working for a company that makes digital video recorders (for CCTV). A
    new
    version will be developed soon. It uses windows CE as OS. A DSP will encode
    the video recorded by cameras. The DSP will deliver a MPEG-4 compliant
    elementary stream. The recorder will record the elementary stream to the
    harddisk. This stream can be played back by the recorder itself by using
    another DSP running the same codec.

    The required function:
    We want to include a feature which makes it possible to select a limited
    amount of video and export that as a file. Such a file needs to play on any
    windows-based desktop PC running WMP 9. (default installation - no extra
    codec's installed)

    Limitations:
    Our recorder uses a CPU which is already quite loaded. Transcoding into a
    different format is not possible because it would take to long to do.
    Windows CE does, as far as I know, not support the windows media SDK's and
    various other video processing tools.

    My efforts sofar:
    Since our encoder provides MPEG-4 data, and since windows 2000/XP is
    including a ISO MPEG-4 codec I am expecting that the default decoder would
    want to play the encoded data.

    Of course the elementary stream will not play without some preprocessing.
    The video player rely on all sorts of headers that contain meta data.

    I have used the mpcreator.exe from the mp4ip library to create an mpeg-4
    file. This should just add some mpeg-4 header to the file. The video data
    does not get changed.

    The resulting .mp4 file does not get recognised by WMP, so I exported it
    using the Mp4ui application into an avi. This program just puts the mp4 file
    into an avi "container", the video data remains intact.

    The problem:
    The resulting avi file does not play. WMP will try to download a codec, but
    this codec is not available. This makes sense, because the fourcc code in the
    avi file contains "DIVX". This codec is not supported by default, of course.

    Since my file does not contain DIVX data, but standard MPEG-4 data, I though
    it would be valid to change the fourcc code into something more sensible as
    "MP4S" or "M4S2". As expected, this changes the behaviour of WMP. It is now
    possible for WMP to build a stream, but it won't play the data. ("Windows
    media player has encountered an unknown error")

    If I install the xVid codec and leave the fourcc to "DIVX", then the video
    will play just fine.

    It seems that the provided MPEG-4 decoder is not as compliant as I would
    have hoped. Or am I doing something wrong?

    Some of the newsgroups I have read imply that MS is not providing a mpeg-4
    compliant decoder because it wants to promote is WMV-format. I know that WMV
    is MPEG-4 based. Would it be possible to convert MPEG-4 into WMV without a
    decoding-encoding cycle?

    If the default codecs cannot decode the video, then we may need to provide
    e.g. the xVid codec to our customers. Is there a way to include the URL for
    downloading somewhere in the video file for automatic download by WMP?

    Thanks in advance,
    Joost Sannen
     
    Joost Sannen, Sep 28, 2004
    #1
    1. Advertisements

  2. Take this with a bit of care, since I don't have much
    experience with the ISO-MPEG4 codec provided by MS.

    The ISO-MPEG4 codec should be ISO-compliant but only
    supports the Simple Profile @ I don't know what level, which
    means it will fail to decode more advanced streams.
    No. It was possible (but hard) to write a transcoder
    bertween ISO-MPEG4 and MS-MPEG4 as long as the ISO-MPEG4 was
    a simple stream, but WMV changed a lot from MPEG4 and it is
    not even documented.
    Maybe using the codec object in a WMV container instead of
    AVI.
     
    Alessandro Angeli [MVP::DigitalMedia], Sep 28, 2004
    #2
    1. Advertisements

  3. Joost Sannen

    Joost Sannen Guest

    Hi Alessandro Angeli,

    Thanks for your quick reply.
    Yes, I do have a simple ISO-MPEG4 stream and I presume converting it
    into a MS-MPEG4 stream would do the trick just as well. Do you have
    information
    about the differences between the two standards?

    Thanks again,
    Joost Sannen
     
    Joost Sannen, Sep 28, 2004
    #3
  4. MS-MPEG4 is not documented in any way. Open source projects
    like XviD and ffmpeg supports it and they also support
    ISO-MPEG4, which means you could study their source code and
    find a way to transcode your stream and write the necessary
    software to do it (if your stream only uses the subset of
    ISO-MPEG4 that is used by MS-MPEG4). This is not a trivial
    task.
     
    Alessandro Angeli [MVP::DigitalMedia], Sep 28, 2004
    #4
  5. Joost Sannen

    Joost Sannen Guest

    Thanks again. Your replies were very helpful to me.
     
    Joost Sannen, Sep 29, 2004
    #5
  6. Joost Sannen

    ptmx2 Guest

    great conversation. here it is 2008 and the facts of MS Life in 2004 are
    still with us. Can't live with em, can't live without them...
     
    ptmx2, Jul 29, 2008
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.