Turn old QuickTime movies into a website you can open in Chrome, Safari, Firefox, or Edge — including on a phone.
Apple’s QuickTime player is gone from modern computers. The files are often still on a disk: 360° rooms you could look around in, whole virtual tours from the early 2000s, or a normal video saved as .mov. AfterQT reads those files and builds a website (ordinary HTML pages plus images or a modern MP4). No extra plugin. Your original movies are only read, never overwritten.
A typical session is three steps:
- Convert your files → a folder called
web - Look at the result on this computer
- Copy that
webfolder to any website host if you want other people to see it
You install these once on the computer that will do the conversion.
- Python — the language AfterQT is written in (version 3.10 or newer)
- ffmpeg — a free tool that can open old movie formats
- AfterQT itself
You do not need Python or ffmpeg on the computer (or the phone) that only watches the finished site.
All the commands below are typed in a terminal — a window where you type lines and press Enter.
| System | What to open |
|---|---|
| Windows | Click Start, type PowerShell, open Windows PowerShell |
| macOS | Open Terminal (Spotlight, then type Terminal) |
| Linux | Open Terminal from the applications menu |
You can copy each block of commands and paste it, then press Enter.
In the terminal:
python --version
On a Mac or Linux, if that fails:
python3 --version
You want 3.10 or higher, for example Python 3.12.3.
| System | If Python is missing |
|---|---|
| Windows | Download it from python.org. During setup, tick “Add python.exe to PATH” (so the terminal can find it). Then close the terminal and open a new one. |
| macOS | Install Homebrew, then run brew install python. Or download Python from python.org. |
| Linux | Debian / Ubuntu: sudo apt install python3 python3-pip python3-venv · Fedora: sudo dnf install python3 python3-pip |
ffmpeg -version
If you see a version number, you are done.
| System | Install ffmpeg |
|---|---|
| Windows | In PowerShell: winget install ffmpeg. Close the terminal and open a new one, then check again. (Or download a build from ffmpeg.org.) |
| macOS | brew install ffmpeg |
| Linux | Debian / Ubuntu: sudo apt install ffmpeg · Fedora: sudo dnf install ffmpeg |
- Download AfterQT: on GitHub click Code → Download ZIP, then unzip it.
- In File Explorer, open the unzipped folder. You must see these files inside it:
setup.cmdafterqt.cmdpyproject.toml
- Click the address bar at the top of File Explorer (the box that shows the path). The path becomes selected. Copy it (Ctrl+C). You will need it in the next step. It might look like
C:\Users\You\Downloads\afterqt-master.
This prepares AfterQT on this computer. You do it once. You do not double-click anything. You type in the terminal, then press Enter.
Stay in Windows PowerShell. If you closed it, open it again: Start → type PowerShell → click Windows PowerShell.
A. Go into the AfterQT folder
Type cd then a space, then paste the path you copied (right-click in the PowerShell window to paste). Then press Enter.
Example — if the folder is C:\Users\You\Downloads\afterqt-master:
cd C:\Users\You\Downloads\afterqt-master
The start of the line must now show that folder, for example:
PS C:\Users\You\Downloads\afterqt-master>
If you see cannot find the path, the folder name is wrong. Go back to step 3, copy the path from File Explorer again, and retry.
B. Check you are in the right folder
Type this and press Enter:
dir setup.cmd
You must see setup.cmd in the list. If Windows says it cannot find the file, you are in the wrong folder. Repeat A.
C. Launch the installer
Type exactly this — a dot, a backslash, the word setup — and press Enter:
.\setup
How to paste a line: click the PowerShell window, right-click, then press Enter.
Wait. Do not close the window. Text will scroll for up to a minute. You are finished when you see:
Done. From now on, in this folder, type:
.\afterqt doctor
.\afterqt publish C:\path\to\your\movies -o web
D. Check that it worked
Type this and press Enter:
.\afterqt doctor
Every line should say ok. If a line says MISSING, install Python or ffmpeg above, close PowerShell, open a new PowerShell, and start again from A.
| Don’t | Why |
|---|---|
Double-click setup.cmd in File Explorer |
The window flashes and closes. You cannot see if it worked. |
Type setup without the .\ |
PowerShell looks in the wrong place and says the command was not found. |
Skip the cd line |
Setup only works from inside the AfterQT folder. |
Run .\setup every day |
Once is enough. Next time you only type .\afterqt …. |
- Open PowerShell.
- Go into the folder again (
cdplus the path you copied from File Explorer). - Type
.\afterqtplus the rest of the command (see below).
Do not run.\setupagain.
-
Open Terminal.
-
Go into the AfterQT folder (paste your path):
cd ~/Downloads/afterqt -
Make the helper files runnable, then install, then check:
chmod +x setup afterqt.sh ./setup ./afterqt.sh doctor
Every line of doctor should say ok. Next time: cd into the same folder and type ./afterqt.sh …. You do not run ./setup again.
AfterQT never writes into your originals. It creates a new folder (we use the name web) with the website.
-o web means “write the result into a folder called web”. You can pick another name if you want (-o mysite).
Replace the example paths with your movie or folder. If a path has spaces, put it in quotes: "C:\My tour\file.mov".
A single .mov (or .qt, .m4v, .mp4): a 360° room, a clip, or a still.
Windows
.\afterqt publish C:\Users\You\Videos\clip.mov -o web
macOS / Linux
./afterqt.sh publish ~/Movies/clip.mov -o web
The first run can take a while on a large file. When it finishes you get a short summary in the terminal and a new web folder.
Put several movies in one folder. You do not need HTML pages. AfterQT makes a gallery: you jump from file to file. It will not draw doors between rooms, because it does not know where they should go.
Windows
.\afterqt publish C:\Users\You\old-movies -o web
macOS / Linux
./afterqt.sh publish ~/old-movies -o web
In the early 2000s a program called CubicConverter was often used to build virtual tours (houses, museums, shops). For each room it saved:
- a QuickTime movie (the 360° picture)
- a small HTML page that told the plugin where the doors were — for example “this hotspot goes to room 7, and when you arrive look to the left”
If you still have that project, the folder usually looks like this:
my-tour/
1.mov 1.html
2.mov 2.html
3.mov 3.html
…
The movies are the rooms. The HTML pages are the map. AfterQT reads both: it takes the picture out of each movie and puts the same doors back as yellow dots you click in the browser.
Point AfterQT at the whole folder, not at one file:
Windows
.\afterqt publish C:\Users\You\my-tour -o web
macOS / Linux
./afterqt.sh publish ~/my-tour -o web
A tour with many rooms takes longer (each movie is processed). If a movie has no matching HTML page, that room is still published, but AfterQT will not invent doors. It only connects rooms when the original pages said so.
Optional, before converting: .\afterqt audit C:\Users\You\my-tour lists missing files or doors that point nowhere.
You can also build the 2D site and the VR folder in one go:
.\afterqt publish C:\Users\You\my-tour -o web --vr
That is the same as publish and then vr below. Without --vr, AfterQT still writes only web.
After you have a web folder, AfterQT can build a second folder for a VR headset (Quest and other browsers that speak WebXR). The normal site is not changed.
Windows
.\afterqt vr web -o web-vr
macOS / Linux
./afterqt.sh vr web -o web-vr
This works on one movie (one room, no doors), a folder of movies, or a CubicConverter tour. AfterQT does not invent doors. In a tour, a cyan dot is another VR room; a yellow dot opens the normal 2D site.
The picture is still the original pixels, only enlarged if the movie is smaller than a headset panel (default face size 2304). A small movie stays soft in the headset. Rooms that are not a 360° cube (a normal video, a still, an object movie) stay on the 2D site.
On this computer:
.\afterqt serve web-vr
Then open http://127.0.0.1:8765/ — drag to look around. A headset’s browser only starts VR on an https page. Put the web-vr folder on any ordinary https host (the same way you upload web), accept the certificate if you use your own https server, then tap ENTER VR.
.\afterqt pack web-vr -o my-tour-vr.zip zips that folder for upload.
Stay in the AfterQT folder:
Windows
.\afterqt serve web
macOS / Linux
./afterqt.sh serve web
Leave that window open. In your browser go to:
That address is only this computer (127.0.0.1 means “here”). Other people on the internet cannot see it yet.
Do not double-click web\index.html. The browser would open the file directly and the tour often stays blank, because the page needs the small server above.
After you convert again, refresh hard: Ctrl+F5 (Windows / Linux) or Cmd+Shift+R (Mac).
Stop the server: click the terminal and press Ctrl+C.
The web folder is a finished website. After AfterQT has created it, you no longer need AfterQT, Python, or ffmpeg to show it. Everything the browser needs is already inside: pages, pictures or videos, and the player.
You can:
Windows
.\afterqt pack web -o my-tour.zip
macOS / Linux
./afterqt.sh pack web -o my-tour.zip
That zip starts with index.html at the top. Upload the zip (and unzip it on the server), or copy the files inside web into a folder on any ordinary web space:
- your own hosting (
https://example.com/tour/) - a free static host such as GitHub Pages or Netlify
- a USB stick — on another computer, install AfterQT only if you want to run
.\afterqt serveagain; the files themselves do not need conversion a second time
There is no login, no database, no special server software. If a normal HTML site works in that folder, this tour works. Visitors download only the converted site. Your original .mov files stay with you.
If you change the tour later: run .\afterqt publish … -o web again, then upload the new web folder over the old one. If you use VR, run .\afterqt vr web -o web-vr again and upload web-vr too.
| You gave AfterQT | You get |
|---|---|
| One movie | One page: look around a 360° room, play a video, or see a still picture |
| A folder of movies only | A list of rooms or clips — switch between them, no doors |
| Movies + CubicConverter HTML | A tour — look around, click the yellow dots to change room |
web + afterqt vr |
A second folder web-vr — the same rooms in a headset |
The picture is not enlarged beyond the original. If the old movie was small, the window stays small (a 320×240 clip is not stretched across a 4K monitor). If the HTML said the QuickTime window was 400×316, AfterQT uses that shape and may grow it on a large screen, but never past the real pixels of the movie.
Run these from the AfterQT folder. On Windows the command is .\afterqt. On a Mac or Linux it is ./afterqt.sh.
.\afterqt doctor
.\afterqt audit C:\path\to\my-tour
.\afterqt audit web
.\afterqt inspect clip.mov
.\afterqt tour C:\path\to\folder
.\afterqt pack web -o my-tour.zip
.\afterqt serve web
.\afterqt vr web -o web-vr
.\afterqt serve web-vr
| Command | What it does |
|---|---|
doctor |
Checks that Python, ffmpeg, and the rest are installed |
audit |
Finds missing movies, broken doors, or a web folder with files left out |
inspect |
Tells you what kind of file a movie is |
tour |
Lists rooms and doors without building the site |
pack |
Zips the web folder so you can upload it |
serve |
Opens the published site for you to preview |
vr |
From an existing web folder, builds a web-vr folder for a headset |
export |
Advanced: extract frames from one file (.\afterqt export clip.mov -o out -m cube) |
On a Mac or Linux, use a path like ~/my-tour instead of C:\path\to\….
| What you see | What to try |
|---|---|
afterqt is not recognized / “not installed yet” |
You are not in the AfterQT folder, or you have not run .\setup yet. Type .\afterqt (with the .\). |
ffmpeg non trovato / doctor says ffmpeg MISSING |
Install ffmpeg, then close and reopen the terminal. |
| The browser page is black or empty | Use .\afterqt serve web, not a double-clicked index.html. Then hard-refresh. |
audit reports missing movies |
A door in the HTML points to a .mov that is not in the folder. Put that file back, or accept that the door cannot work. |
| Conversion is very slow | Normal for a tour with dozens of rooms. Let it finish. |
AfterQT is checked on cubic tours (one room = one file), the kind CubicConverter usually wrote. Other old formats can be harder: a cylindrical panorama, some very old video compressions, a “spin the object” movie, or several rooms packed into a single .mov. Those may need a small adjustment. A 360° video (a film, not a still room) plays as a normal video, not as a sphere you drag.
VR is look-around in a headset, the same pictures as the 2D site. It is not a 3D scan of the room and it does not add detail that was not in the movie. The headset player uses WebXR.
AfterQT is released under the MIT License. Copyright © 2026 Orfeo Morello.
This repository does not include sample tours or private movies. Point AfterQT at your own folder.
