First post, by Old PC Hunter
- Rank
- Member
I don't really know the right subfourm to put this post in, but i'll put it here anyway.
Early last month, I decided to embark on a journey which would take me across multiple fourms, vintage PC magazines, and various software vaults. I wanted to address the question that I have had burning in me since I started researching the 286 platform:
Can the 286 handle video playback?
After doing some research on this subject, I found there to be almost no experimentation down this path. I saw a few fourm mentions, and videos of video playing on a 286 using a quickBASIC player. Unable to find the QuickBASIC player, I began looking for other means to play back video easily and at a decent framerate. While searching through old PC magazines on Google Books, I found evidence that Video For Windows 1.0 worked on a 286. Video for Windows 1.0 is very limited, as it was basically the first practical movie player for IBM compatibles. It did plant a flag in the new concept of multimedia on PC's, as it introduced the AVI container, as well as the codecs Intel Indeo, Microsoft Video 1, and Microsoft RLE. Knowing this newfound information. I decided to grab a copy of VfW 1.0 off of WinWorld and test it on my 286 PC. To my suprise, the media player worked and was able to play the WNDSURF.AVI example video on the 286. After analyzing the sample video, it became apparent that the codec used in the sample video was Microsoft Video 1, and the resolution of the video was 156x120. This confused me, as I heard Microsoft Video 1 only worked on a 386. With this information, two Discord users, part of the discord group, Retro Computer Discord,who helped me on this project (thank you to ryaxnb#9152 and Disappearing Inc.#1857) tried making sample videos to run on my 286. ryaxnb#9152 successfully made a sample video, in 156x120, 9.9 fps, and encoded Microsoft Video 1. This played very smoothly on my 286. I then set out to make my own videos after he told me the process in which he made his sample video. After being lazy and not touching the project for a month, I finally figured out how to make videos for playback on the 286 and I have created about five so far. Below is the process for creating Microsoft Video 1 videos for smooth playback on a 286 system:
What you will need to produce video:
VirtualDub (used for making the video)
Quicktime Player or VLC player (used so you can check your video's color depth, resolution, and framerate after it is produced, also so you can see if it plays properly)
Sample material (I use h.264 videos to convert)
Optional:
FFMpeg Input Plugin (a VirtualDub plugin used to give VirtualDub access to many different containers and codecs. Required if you want to make a video out of a h.264 video or videos in the MP4 container. This is easily installed by placing the plugins files the VirtualDub>Plugin64 folder.)
Youtube video downloader(required to download Youtube videos, if you have no sample material ready. The one I use is ytmp3.cc)
System requirements:
80286 or compatible processor running at at least 6 MHZ
VGA video card that supports 640x480 at 256 color, 512kb of video RAM
Windows 3.x
Video For Windows 1.0 (download here: https://winworldpc.com/product/video-for-windows/1x) (WARNING: VfW 1.1 apparently does not run a 286. I will be testing this claim for validity soon.)
3 MB disk space
Floppy disk drive
Optional, but strongly recommended:
CD-ROM drive at atleast 2x speed that can read CD-R material
Sound Blaster, Covox, Sound Source, or Adlib with wave driver required for audio
Please note that these specs have only been tested on a PCEM emulator and are not proven to work. The only real 286 I have tested this method on is my own 286 machine listed below.
My setup:
80286 processor running at 10 MHZ
4 MB of 70 NS RAM at 0 Wait States
Tseng ET4000AX 1MB
80287 XL math coprocessor at 10 MHZ
Adlib sound card (replica variant)
6x CD-ROM drive
Relatively fast Conner 270 MB hard drive
Windows 3.1
Instructions on making the video:
1. Gather source material (if you are using a Youtube video, download it now using a Youtube video downloader)
2.Open up VirtualDub, and go to File>Open video file, then select your source material.
3.Go to Video>Color Depth and set the option for decompression format to the top option (autoselect), and for the output format to compressor/display column select the top option (same as decompression format). This ensures that the palletization process that we do later does not get screwed up and is always the first thing I do before making a new video. These settings should be consistent over the course of the production, and should not be changed. If you want to save them as default, click the Save As Default button. If you re-open VirtualDub, these settings may be changed, so they might need to be changed back to what is described here.
4.Go to Video>Filters and click Add. Here, you will see a bunch of filters. You want to choose the filter that says "resize", and push OK. Set the new size of the video, which should be 160x120, as that is the best video resolution for a 286. If your resolution numbers keep changing when you enter them, click on the Disabled option under Aspect Ratio. Once you are happy with your resolution, click OK. You will be brought back out to the filters in use dialog. Click OK here, and you should see your right video thumbnail decrease in size.
5.Go to audio, and click No Audio. This makes the video file smaller, and because palletization takes out the audio , we do not need the audio anyway. I have not figured out how to keep audio. If anyone does do some digging and figures out how to keep audio, let me know. I assume if you want audio, you add the audio track back after the palletization process. 11 KHZ PCM audio should probably be sufficent.
6.Go to Video>Frame Rate. Go to where it says Frame Rate Conversion. You have two options here. If your source material's frame rate is an easily divisible number, it would make sense to click the process every other frame button. This cuts your video's framerate by half, making it easier to process on the old machines. If you video is already at a low framerate, do not change any settings here. Alternatively, you can select Convert To FPS and have the video converted to the specific framrate you want it to be at. Be careful if you are using the process every other frame option, as VirtualDub likes to save settings. When you open the new video file we create shortly into VirtualDub, your framerate settings will still stick around, so the new framerate of your video will be cut in half again if you do not go back to Video>Frame Rate and change the frame rate conversion option to Process all frames. If you are using Convert To FPS, you do not have to worry about this.
7. Go to Video>Compression, and make sure for Compression you have uncompressed video selected.
8. Go to File>Save As AVI. This should give you a nice uncompressed AVI.
9.Open the uncompressed AVI you just created.
10.Go to Tools>Create Palletized AVI. This is a crucial step, and can mess up everything if not done correctly. The dialog box first asks for a source file. This will be the uncompressed AVI you just created. Click open, and you will be presented with another dialog box. It will ask you for the destination 8-bit file. Choose a name for your palletized AVI, and click Save. VirtualDub will begin palletizing the frames.
11. Open your new palletized AVI.
12. Go to Video>Compression and select Microsoft Video 1, then click OK. (Note: in the MSV1 compression dialog, there is an option called "use target data rate". If you check this box off and enter a number in kilobytes, you can set your target data rate, which might be useful for slower CD-ROM drives or machines.)
13. Go to File>Save as old format AVI, and you are done!
14. Use Quicktime or VLC player to check if your video meets this criteria:
160x120
256 color (8 bit)
15 frames per second or less
To check for this criteria in Quicktime, open the video file, go to Window, and click on Movie Inspector. This should tell you all you need to know. On VLC, you open your video file, go to Tools, and click Codec Information. If this is all good, you can burn your file to a CD-ROM or place it on a floppy disk, if it is small enough.
15. Play your video on your 286 or compatible machine 😉 (see notes below on how to achieve smooth playback)
I'll be including some demo videos I have produced, in case you have diffuculty producing your own. I'll also include some recordings below of the video running on my machine. In Video For Windows 1.0, there are a few options you want set to ensure smooth playback. When you open the Media Player application, go to the top bar and click Device. In the drop down menu, make sure Video for Windows is checked off, then move to the option Configure in the same drop down menu. Click on this. You will be presented with an option box. Turn on full screen, as the videos will play very slowly and have poor colors if you play them in a window. Also, if the option "Skip video frames if behind" is checked off, uncheck it. Having that option on makes video playback very slow. You'll notice that when you play back the video with these options, you'll have the video in a tiny postage stamp in the middle of your screen with a big black border around it. With these settings, you get the fastest video playback (steady 15 fps), and slightly better looking frames, but you also get a small video size. To increase the video size to fill the whole screen, go to Device>Configure again, and check off the option Zoom By 2. This will make the video fill the entire screen, without too much preformance loss (1-3 fps difference). In this full screen mode, video still plays back at a watchable framerate, but it loses a bit of it's quality.
Known issues with playback:
-Windowed mode does not play video back smoothly at all
-Longer videos start to stop and go (buffer) around the 7-10 minute mark occasionally (do not know why this is, could be a problem with the large filesizes or my CD-ROM drive)
Even though the process might look a bit daunting, once you do it enough, it becomes easy. I would like others to experiment with this method and post their findings below. It would also be cool to see how AVI's run on slower and faster 286 machines. I wonder if it would be possible to play AVI's on a NEC v30 (since it has 186 instructions) running at 10 MHZ under Windows 3.0? If anyone has a Turbo XT and wants to try that, that would be awesome. I will continue to update this thread with new findings. Also, thanks again to ryaxnb#9152 and Disappearing Inc.#1857, two Discord users part of the Retro Computer Discord Discord group. Without them, I probably wouldn't have gotten this far with my quest to run video on a 286.
Here are some sample videos for testing on your own machine and demonstrations of the videos playing back on my 286:
MEGA link to those demonstrations and videos (warning large folder):
Set up retro boxes:
DOS:286 10 MHZ/ET4000AX1MB/270 MB HDD/4 MB RAM/Adlib/80287 XL
W98:P2 450/Radeon 7000 64 MB/23 GB HDD/SB 16 clone/384 MB RAM
XP:ATHLON X2 6000+/2 GB RAM/Radeon X1900XTX/2x120 GB SSD/1x160 GB and 1x250 GB 7.2k HDD's/ECS A740 GM-M/SB X-Fi