• Please review our updated Terms and Rules here

Video Transcoding For Older Machines

Raven

Veteran Member
Joined
Mar 7, 2009
Messages
2,752
Location
DE, USA..
I've got a Libretto 110CT, 233Mhz Pentium MMX, modded 96MB RAM, 2MB GPU. This thing is easily capable of playing back outdated video formats, and I'd like to convert some videos to play on it. This is challenging, however, as they would need to be transcoded from modern formats. Since old software can't read the new formats, and new software can't write most of the old formats, that leaves an odd problem. I was thinking my best bet would be to totally decompress everything using modern software (like Premiere) to MPEG-1 video and WAV audio, and then re-encode on an older machine using an appropriately old copy of Premiere. This would be a "process", so if anyone has any more direct methods or input, I'd appreciate it.

Due to the age of the target machine(s), while I can run VLC on the 9x ones, they can't handle the dynamic decompression of newer formats at a usable speed. I also would like to be able to play my "new" videos under Win3x (same or better hardware configurations), meaning old WMP, RealPlayer, XingMPEG, and some other choices.

Thanks.
 
Projects like handbrake attempt to provide a user friendly configuration interface to mencoder. mencoder at one point or another had just about every type of video and audio codec and file container driver. I'd suggest looking there first. You might find a combination of file container and codec that is supported by older players still under support; either in the base line or extended codec pack.
 
A Pentium 233 has enough power to play 320x240 video at any framerate, so you can mix'n'match and see what works best for you. For the lowest CPU utilization as well as what was "authentic" for the 1993-1997 time period, encode to AVI using Cinepak and pick a reasonable target (like 4x, which would be a bitrate of 600KiB/s) and a keyframe rate equal to your framerate (such as, if you're encoding 24fps video, set keyframes to 24). Cinepak is, amazingly, still included with Windows 7. I'd recommend exporting from Premiere as 320x240 @ 29.97 fps and then encoding to cinepak using VirtualDub so you can monitor that it is encoding properly. Warning: Yes, encoding really is that slow. Cinepak is a vector quantization codec, and like all such codecs, is quite asymmetric when it comes to encoding/decoding. Also, the colors get a little washed out due to Cinepak's color conversion, but you can just boost the saturation if it bothers you ;-) The Cinepak .AVI will play in Windows 3.1 or later without any modification.

For better quality, do the same but with Indeo 5.0. It's included with Windows 98 through Windows 2000, and you should be able to find a codec pack floating around that has it (if not, you can buy it from ligos). Indeo 4.0 was included with Windows 95 IIRC but don't encode with that, it tried to support bidirectional partials and is goofy to work with. Indeo 3.2 was included with Win 3.1 but stay away from it, it has framerate limitations and very odd artifacting.

For the best quality and cross-platform availability, just encode to MPEG-1, such as a VideoCD preset of either 23.976fps (film) or 29.97 (NTSC). A Pentium 233 definitely has enough power to decode that, and any platform can both create or view it. You can encode directly from Premiere (although Premiere doesn't have a VideoCD-specific preset, which has a CBR 1150kbps profile as well as other limitations like padding). Media Player added MPEG-1 playback support in Windows 95 but there is probably an MPEG-1 player (Xing?) that will play it back on Windows 3.1 somewhere.

A P233 is just barely capable of decoding simple MPEG-2 -- if you create a 24fps 720x480 MPEG-2 video it might actually play correctly. I always used a Sigma card with my P233 so I "cheated".

I've been encoding desktop video since VFW 1.0 and as recently as a modern blu-ray project (blatant shameless plug http://www.mindcandydvd.com/ ) so I know quite a lot about this subject -- feel free to ask me anything.

Hint: A fun trick, if you have an evening to burn, is to convert 30i interlaced material to 60p, or obtain some other true 60fps source like capture of a modern game with FRAPS at 60fps. Then encode that as 320x240 @ 60fps Cinepak. It takes all night to encode, but plays back at true 60fps on platforms as slow as a Pentium 60 :)
 
Awesome information, Trixter, thanks! I'm 22 now, so back then I wasn't advanced enough to know too much about video formats and the like from the era beyond the basic user-level stuff - this laptop would have been new when I was 6. xD I appreciate getting input from somebody who is better familiar with the formats of the era.

I know for a fact MPEG2 decoder cards were "all the rage" for Pentium boxen, it would play, but without the decoder it would have to be a low-spec video for sure. I have some decoder cards, but you need special cabling that I don't have to use them (some day I'll get around to finding some cables). Anywho that isn't relevant to my Libretto, unless there's a PCMCIA/CardBus MPEG2 decoder, which I guess there could be.. lol

I have an i7 "netbook" (11.6") to do encoding on, and I do Youtube stuff at www.youtube.com/yushatak, so I know a fair bit about modern encoding and have the setup. That should make most of these conversions pretty damn quick I'd think. :3

Seriously, thanks for the information, and I'll be sure to post back if I run into any questions. My friend gave me a few ASF files that play on his 233MMX boxes (he has in-car police comps, pretty neat, I might end up with one) which I'll try out, pick apart to see what codecs/etc., and then experiment with the info you gave me. For the sake of documentation/curiosity I'll post the codec specs of those ASF files when I check them out.
 
plenty of ideas i use graphedit which is part of the directXSDK.
Combined with something like the K-lite codecs you can work around a lot of the problems and redirect data from one file to another if you like to.
 
Could have sworn I replied to this thread.

I used to have a 486 that couldn't play MPEG1 files until I slapped an ATI Rage video card in it, that had a decoder built in. Perhaps a video card with an MPEG2 decoder could be thrown in to assist on that.
 
Another very good codec to use for older machines is Microsoft Video-1. If encoded well it can achieve great quality video, and the decoding algorithm is extremely simple. The decoding is described in detail here:

http://wiki.multimedia.cx/index.php?title=Microsoft_Video_1

A 486 should be good enough to play back a 320x240 video with a watchable framerate. If somebody were to write some well-optimized assembly for that algorithm, maybe even a fast 386 could pull off a watchable video. The codec is still included with even Windows 7, and I've used Virtualdub to encode a Video-1 AVI once or twice.
 
Last edited:
Back
Top