Using Star Wars Biomes as a Screensaver

This past week, the Disney+ service released Star Wars Biomes and Star Wars Vehicle Flythroughs. They are both wonderfully relaxing ambient background videos, in the same vein as their Zenimation. The vehicle flythroughs take you through the Millennium Falcon and a Star Destroyer. The Biomes take you across the surface of six planets.

The Biomes flyovers have a striking resemblance to the Apple TV drone screensavers. Those (and more) are also available through the Aerial Screensaver, which until now I’ve been using to display drone videos of London and the Oregon coast. Since the Aerial Screensaver allows for custom sources, in the form of a folder of MP4 files, I thought it would be fantastic to slice up the Biomes video as screensaver clips.

There are two problems to overcome here. The first is obtaining the video itself, and the second is slicing it up easily, while maintaining quality. The first is a little too gray-area for me to help you with. I am aware of downloader apps, but I can’t recommend a specific one. I’m also aware that a friend can find that it fell off the back of a truck, handing you a file with a name like star.wars.biomes.2021.1080p.web.h264-grogu.mkv. If you’re good at your browser’s Developer Web Console, you can also discover interesting things there. Regardless — one way or another you’ll need the whole video on your machine. I can’t help you with that.

You can slicing up the video with a non-linear video editor, like Final Cut Pro X or Adobe Premiere. Exporting from these ends up re-encoding the video, which is something I’d like to avoid. Fortunately, the Open Source tool ffmpeg lets you do passthrough for the majority of it (modulus some re-encoding that it has to do at the ragged edges beyond the first and last reference frames).

I stepped through the video and found good timecodes to use for the splits. The following timestamps worked for me to avoid titles, transitions, and fades. If the timings on your video are off from the one I used, you may have to adjust the time values slightly (but consistently).

This script has two prerequisites:

  1. You’ll need ffmpeg installed. On macOS, that’s installing Homebrew, then running brew install ffmpeg. On Ubuntu/Debian: sudo apt-get install ffmpeg. On CentOS/Fedora/RHEL: sudo yum install ffmpeg.
  2. You’ll need to copy the file into the same folder as this shell script, rename it as biomes.{extension} (such as biomes.ts, biomes,mp4, or biomes.mkv), then edit the extension in the script to match.
#!/bin/bash

INFILE=biomes.mp4

# Check that infile exists
stat $INFILE >/dev/null 2>&1 || { echo "Expect $INFILE in the current folder.  Aborting." >&2; exit 1; }

# Check that ffmpeg exists
command -v ffmpeg >/dev/null 2>&1 || { echo "I require ffmpeg but it's not installed.  Aborting." >&2; exit 1; }

ffmpeg -hide_banner -loglevel fatal -ss 00:00:06.000 -to 00:03:01.433 -i $INFILE -c:v copy -an -sn -map_metadata -1 -metadata title="Hoth"     -map_chapters -1 -y Hoth.mp4
ffmpeg -hide_banner -loglevel fatal -ss 00:03:03.633 -to 00:05:53.233 -i $INFILE -c:v copy -an -sn -map_metadata -1 -metadata title="Tatooine" -map_chapters -1 -y Tatooine.mp4
ffmpeg -hide_banner -loglevel fatal -ss 00:05:55.333 -to 00:09:03.900 -i $INFILE -c:v copy -an -sn -map_metadata -1 -metadata title="Sorgan"   -map_chapters -1 -y Sorgan.mp4
ffmpeg -hide_banner -loglevel fatal -ss 00:09:05.766 -to 00:12:01.000 -i $INFILE -c:v copy -an -sn -map_metadata -1 -metadata title="Crait"    -map_chapters -1 -y Crait.mp4
ffmpeg -hide_banner -loglevel fatal -ss 00:12:03.000 -to 00:15:26.733 -i $INFILE -c:v copy -an -sn -map_metadata -1 -metadata title="Mustafar" -map_chapters -1 -y Mustafar.mp4
ffmpeg -hide_banner -loglevel fatal -ss 00:15:29.000 -to 00:18:24.566 -i $INFILE -c:v copy -an -sn -map_metadata -1 -metadata title="Ahch-To"  -map_chapters -1 -y Ahch-To.mp4

You can also find this file as a GitHub gist: process.sh

After running the shell script, you’ll end up with a list of 6 video files that you can load into Aerial. Verify that they cut at the right times, avoiding transitions between videos. Edit the timestamps and re-run as needed.

Posted in: Code Television

Published by

Brian Enigma

Brian Enigma is a Portlander, manipulator of atoms & bits, minor-league blogger, and all-around great guy. He typically writes about the interesting “maker” projects he's working on, but sometimes veers off into puzzles, software, games, local news, and current events.

Leave a Reply

Your email address will not be published. Required fields are marked *