TMV In FFmpeg

I’m pretty sure that Trixter is equally honored and disturbed that Daniel Verkamp has contributed a TMV playback system to FFmpeg.


Neo from "The Matrix", transcoded into TMV format
VLC playing the8trix.tmv transcoded by FFmpeg to PNG-in-AVI

To review, TMV started out as a joke, or perhaps a dare. It was a challenge to try to play 30fps full motion video on an original PC. “Original PC” is defined as 4.77 MHz 8088 CPU, CGA graphics, and original 8-bit Sound Blaster.

For further creepiness, Trixter, here is a new FATE test which will guarantee that FFmpeg reliably decodes TMV files on dozens of different CPU/OS/compiler configurations.

Speaking of FATE, I have neglected to mention that MichaelK has kindly contributed continuous testing resources for NetBSD and OpenSolaris, both on x86_32. Further, Måns continues to work his little ARM-based Beagle Board to the bone and has added more compiler configurations.

Here are some more new FATE tests (thanks to Vitor for adding specific tests to the FATE Test Coverage page):

One more thing– can anyone make FFplay compile under Mac OS X? I thought I succeeded once but now I can’t seem to do it. I would like to take screenshots as seen above using FFplay. But I can’t get the program to work correctly anywhere. Maybe it needs to be formally deprecated… or I need to think of a way to continuously test it via FATE.

7 thoughts on “TMV In FFmpeg

  1. astrange

    ffplay has consistently worked for me on OS X for years now. You just need a POSIX-style SDL installation instead of a framework.

  2. Multimedia Mike Post author

    IOW, a MacPorts-based installation of SDL won’t work?

    My other problem is that all of my (X11-capable) Linux machines are all VMware sessions. FFplay doesn’t work under VMware for some reason.

    I also have my Eee PC. The problem there is that my Ubuntu-Eee distribution insists on maximizing all windows whether I want that or not.

    Grrr… I just want a little screenshot. I haven’t tried forwarding an X session from a headless Linux machine back to my Mac OS X desktop. I wonder if that would work?

  3. Kostya

    FFplay works for me for ages – the problem with MacPorts is that it installs everything into /opt/local where ./configure cannot find it by default.

    As for EEE – same trouble here, that’s because of default netbook-oriented window manager. Changing it to any other window manager should help (I like Lesstif/OpenMotif).

    As for X session – indeed it works. Launch X11, in xterm type “ssh -X user@host”. Unfortunately, while MPlayer works that way, FFplay does not.

  4. Reimar

    Use ssh -Y.
    I spent a lot of time (well, not that much) making MPlayer work with unpriviledged X sessions (which you get with ssh -X).
    E.g. with ssh -X applications can’t read from your X “desktop”, thus making it hard/impossible to snoop on you remotely even with X forwarding.

  5. Reimar

    @DrV: probably not intentional but still a good thing, it tests a bit how/how well the code handles incomplete and/or broken files.

  6. Multimedia Mike Post author

    @DrV: Indeed, intentional. I like to try to keep the sample size under 2 MB. I see that I only took 256K of the pop.tmv sample. That’s plenty to test the playback system. When I carve these partial samples, I just use the ‘dd’ Unix command. I don’t care about frame boundaries.

    As Reimar mentioned, it’s also a happy coincidence that doing this helps validate that FFmpeg handles broken/corrupted frames gracefully.

Comments are closed.