It just works

I was very amused over the weekend to give an MPEG2 file on a USB drive to a couple of Mac addicts and watch them try to play it on their Macbooks. They were able to get the file off the drive with no problems, but Quicktime wouldn’t recognise it.

One of them ended up resorting to VLC, and it played… badly out of sync.

heh. Yeah. “It just works.”

Mind you, MPEG2 playback in Windows Media Player is choppy on one of my PCs, so I guess I can’t crow too much.

11 thoughts on “It just works

  1. Ken Taylor

    Sounds more to me like the file was not a standard MPEG2 file.

    No problems with MPEG2 here.

  2. daniel Post author

    Dunno Ken. It was produced by TMPGEnc to the SVCD MPEG2 specification, and seems to play okay on all the Windows PCs I’ve tried.

  3. Chris Till

    Saying MPEG or AVI is like saying burger, how many varieties do you want to pick from? 😉

    Now an SVCD MPEG2 – no Apple don’t support that and do we really care? 😉

    You can put those SVCDs with those 4:3 displays and floppy drives the PC world has finally moved away from 🙂

  4. Dave

    oooo, Chris…

    Yes, you are right, there are mpegs and there are mpegs… but
    does it really make any difference (on a Mac) what the details of the MPEG
    are, so long as it properly complies with the MPEG 2 specification?

    Dave

  5. Chris Till

    >> so long as it properly complies with the MPEG 2 specification?

    And there’s the key point – a SVCD MPEG2 is not actually a “specification” MPEG2, it’s actually a bastardised one. A regular run-of-the-mill MPEG2 player will not be able to play it – the resemblence is merely like a 50 cent coin clearly resembling a round coin, despite its corners and straight edges.

    The actual MPEG stream for a SVCD contains data embedded within the stream, and the SVCD player actually on-the-fly decodes that data and multiplexes it into the video stream… mark my words this ain’t run-of-the-mill MPEG stuff. There’s also blank chunks within the packets to provide buffer space for this multiplexed data – now I don’t fully understand the specifications to a complete detail, but my understanding is that this is why a regular MPEG decoder trying to play an SVCD MPEG stream ends up with garbage as well as out of sync – because the data ends up running far longer than the audio, an SVCD player is the one that knows how to compile it all together.

    Don’t ask me I don’t know the full details – what I can tell you is that while an MPEG is an MPEG, an SVCD MPEG is more comparable to a DVD not MPEG… in fact in theory it is far simpler to make minor changes to a DVD player to support SVCD than it is utterly hack up an MPEG player to support SVCD MPEG. If that makes any sense.

    As I said I don’t know the full utter specifications, just that if you wanted QuickTime to support SVCD MPEG you’d basically have to rework it to be more like a DVD player – it would be far easier to modify DVD Player.app to support SVCD.

    That said, years ago I remember adding a hidden setting that activated experimental DVD support in Windows Media Player… hence it seems entirely reasonable that there is obvious reasons why Media Player might have the ability to better handle SVCD MPEGs, as it already has half the back-end requirements for it.

    The reverse logic for players not playing SVCD MPEG is the same for SVCD MPEG decoders – the SVCD MPEG specifications makes an actual MPEG incompatible and thus SVCD players cannot play them (unless they’ve done some custom non-specification stuff to make it work).

    So in reflection…

    >does it really make any difference (on a Mac) what the details of the MPEG
    are, so long as it properly complies with the MPEG 2 specification?

    …is dead right, and hence why a “bastardised” SVCD MPEG does not work. Note that a VCD MPEG does work because it does comply with the specifications.

    For interest sake, SVCD was actually created after DVD to improve upon VCD… hence why SVCD has a lot of stolen back-end gunk from DVD.

  6. Dave

    Actually, Chris

    and refer here for a start of the detail needed:
    http://mediacoder.sourceforge.net/wiki/index.php/SVCD
    and whereever else google takes you…

    SVCD Video uses an unaltered **MPEG 2 compliant** video stream – that is, the
    the raw MPEG 2 video is not altered. However, the resolution used
    (480 high by 576 – Daniel is in Australia and we are talking PAL) is
    NOT compatable with the DVD Player standard – the 480 line bit falls
    outside the DVD Player specifications. DVD video specs are, of course,
    a SUB-set of all possible MPEG 2 video specs, and happen to NOT
    include those MPEG 2 specs used for the SVCD standard.

    In short, there is nothing “bastard” about the MPEG 2 video data
    in a SVCD. It is proper MPEG 2 data, just not MPEG 2 data that
    conforms with the DVD specs.

    Additionally, the audio frequency stipulated for SVCD – specified
    as 44.1 kHz – is ALSO outside the DVD player specification.

    Accordingly, my take on this is:
    If your player of choice (software or hardware) is a
    “MPEG 2” player, then it ought to play SVCDs. However, if your
    player is a DVD player, then it MAY have issues with a SVCD, if that
    player is not ALSO fully able to handle all possible
    permutatations allowed within the MPEG 2 specifications.

    Again, I ask, can a MAC properly handle a MPEG 2 compliant video? Or,
    as in the Windows world, is the OS dependant on the installation of
    relevant third party codecs to achieve MPEG 2 playback?

    Dave

  7. Chris Till

    Well I did say I was going from memory, been a good ten years since I’ve looked at any of the specs. Maybe I’m thinking of XVCD.

    Can’t be the case though, I recall SVCD very specifically had the ability to embed DATA into the video stream… I know for an absolute fact that the specifications included having blocks of custom data spliced into the video stream itself and that you MUST use an actual SVCD specific encoder to multiplex this in – if you used a regular run-of-the-mill MPEG2 encoder you would not get this functionality, but given it was never mandatory to do this it must have obviously been possible for SVCDs to have an everyday MPEG2 stream as well. Doesn’t change the fact that SVCD doesn’t always use *unaltered* MPEG2 streams, it definitely can use altered ones. User Data was that what it’s called???, or am I a little too used to Core Data terms at the moment with all the programming I’ve been doing lately :\

    Does the Mac OS properly handle MPEG2 video? I would say that’s a no – Apple don’t typically overlap OS responsibilities with application responsibilities. CODECs are something for media players to deal with, so QuickTime is the best for that job. The OS foundation Core Video only worries about the rendering and layering of the actual video graphics and hardware accelerates it with Quartz Extreme.

    So does Quicktime properly handle MPEG2 out of the box? Can’t answer that for sure either, as one of the first things I do is install Perian plugin which lets me play pretty much anything on the face of the planet 😉 Then again when you install Final Cut Pro it installs all sorts of MPEG2 funkiness, so I guess that would suggest it wasn’t there before unless it’s DVD specific MPEG stuff its worrying about for integration to DVD Studio Pro… someone else can probably answer that one!

  8. daniel Post author

    I might see if I can look into this further. I only came up with SVCD as a format to use because TMpgEnc does it so easily, it seemed to be a fairly widely supported standard (just an MPEG2, it seemed), and it seemed like a good balance between file size and quality (where the source was VHS). Was somewhat surprised to see the Macs in question deal with it so badly.

  9. Dave

    Ummm. It gets even more complex.

    From http://lipas.uwasa.fi/~f76998/video/svcd/overview/
    There is mention of “USER data blocks” used by SVCD –
    see section “6.5 Software-based (possibly SVCD-compatible) MPEG-2 encoders”, where
    it makes mention of this. Seems Chris was onto something after all.

    But also note comments also suggest or imply that many/most MPEG encoders
    do not properly allow for the space for those “User data blocks”..

    Which raises another question. Does the “SVCD” MPEG 2 generated by TmpgEnc
    actually contain TRUE SVCD Mpeg – including said “User data blocks” – or, as implied
    by this SVCD overview doco, does it simply generate MPEG2 of SVCD frame size
    and data rate but which does not include those SVCD specific “User data blocks”?

    I guess the answer to that may affect how one might expect different players to
    handle the resultant file.

    Looking back to Daniel’s original issue, to maximise compatability
    of rendered video, remembering:
    * He is concerned about file size
    * He doesn’t want to compromise final quality too much
    * Some of his source is VHS (knowledge offered off this forum)
    * Ease of video edit/trimming is also desired
    Perhaps a couple of options:
    * Maybe Divx or XVid might be a possible output format, allowing lightweight freeware
    editors like virtual dub to handle the trim/cut and render process. These codecs can
    generally achieve smaller file sizes than MPEG whilst achieving similar quality.
    Downside? Less compatability with standalone DVD style players, although this
    is improving.

    * Maybe select a MPEG output format “more compatable” within the standards for
    DVD Players. A quick hunt found at http://dvddemystified.com/dvdfaq.html shows the
    following are the specs for DVD standard mpeg files:
    Allowable picture resolutions are:
    MPEG-2, 525/60 (NTSC): 720×480, 704×480, 352×480, 352×240
    MPEG-2, 625/50 (PAL): 720×576, 704×576, 352×576, 352×288
    MPEG-1, 525/60 (NTSC): 352×240
    MPEG-1, 625/50 (PAL): 352×288

    Perhaps selecting 352 x 576 (PAL) might provide a more universally compatable output
    file. I’d guess the only way would be to trial rendering a (short) clip and test
    for compatability and see if the picture quality was acceptable.

    Me? I use Divx (V5.1 – one of the last freeware versions)for long term
    storage on my Network media player – which handles Divx with AC3 sound nicely,
    and where I need DVD MPEG compatability, I always use the
    full PAL frame size (720 x 576). Yes, that uses more space. That is
    not an issue to me.

    Dave

  10. Philip

    Quicktime doesn’t play MPEG2 as standard (on either Windows or Mac OS) but there’s a $40 plug-in you can buy from Apple to make it play it. I bought that at work (Windows) but haven’t bothered at home. Even with that plug-in, Quicktime (and Windows Media Player for that matter) can’t get the sound from the stupid bastardised MPEG2 files that come out of the JVC Everio video camera we have here at work.

    So we use my Mac and iMovie to capture them and export them as MP4 files. Which is the file format I would have used in the first place.

Comments are closed.