Hosting videos on websites is always a game of tradeoffs.
Art Menagerie aims for simplicity and is unlikely to compete with projects focused on video like PeerTube or large video platforms like YouTube, Vimeo, Patreon, etc. These platforms encode your video into multiple resolutions and qualities, and break videos up into many chunks rather than one big file to stream them (e.g. HLS), but not all browsers support streaming natively so these projects need to also include a client (often in JavaScript) for the browser to play the video.
In contrast, Art Menagerie allows you to upload a video file which remains mostly untouched (metadata gets removed, but the video is never re-transcoded) when generating your website. A single video file is supported natively by almost all browsers, and some can even stream from a single file (using a Range request). However, this means we do not offer multiple resolutions or qualities of the same video.
Ideally you want to create videos that are as small and compatible as you can. It is recommended to only post short videos or teasers with Art Menagerie. You can always post your videos with a link to the high quality and/or full video on another project or platform.
⚠️ Please keep copies of your original high quality video! This allows you to re-encode from the original in the future and may help you prove that you own the original copy in the future.
Embeds: As of Release 2026.07.00-alpha, Art Menagerie supports embedding YouTube videos. Consider this as an alternative to hosting videos from your own website.
Recommendations
To keep your videos small and compatible:
- Aim for
< 25 MBfile size - Keep videos short (
~3minutes or less) - Scale to
720p(1280x720horizontal or720x1280vertical) - Link to high quality and/or longer versions
- Perhaps use a video platform like PeerTube
- Encode with one of two options:
.mp4MP4 container with H.264 video and AAC audio- Use
libx264the H.264 software encoder slowerpresethighprofile- Constant quality (
0is best51is worst)24is recommended starting point21to28is reasonable (see: x264 Encoder Guide)
- AAC
128kaudio bitrate
- Use
.webmWebM container with VP9 video and Opus audio- 2-pass/multi-pass encoding
- Constant quality (see: Google's VP9 guide)
32for 720p31for 1080p
- Opus
96kaudio bitrate
These recommendations are to help you have a starting point. If you want to upload large files, the size limit can be increased in your site configuration settings. Art Menagerie stores your videos directly in the database and loads to RAM to store and retrieve.
Both video formats are highly compatible. See Can I use H.264 video and Can I use WebM. The main difference is that whether they work in link previews.
.mp4 H.264/AAC advantages:
- Faster to encode
- Most compatible in link previews
.webm VP9/Opus advantages:
- Smaller file size
- Higher quality for size
Link Previews
Not all services allow you to play the video in the link preview, but most will fallback to showing the thumbnail image. This table shows the services that have been tested:
| Service | .mp4 H.264 |
.webm VP9 |
|---|---|---|
| Telegram | video | image |
| Discord | video | video |
| Mastodon | image | image |
| Blusky | image | image |
Encoding with HandBrake
HandBrake is a graphical video transcoding tool.
To use it with the recommended settings, you can simply download my preset:
- Web 720p H.264:AAC MP4.json (right-click to download)
- Web 720p VP9/Opus WebM.json (right-click to download)
Import the preset using the interface:
- Open the presets panel
- Open the extra options menu
- Select import

Next, select the preset from the preset dropdown menu.

Then you can press the Start button to encode your video.
If your video is vertical, you can open the Dimensions tab and set a Custom size. For example, 720x1280 for a vertical 720p video.
Note: You can usually hover over a setting or click on the question mark buttons to get more information.
MP4 H.254/AAC HandBrake Settings
- Summary tab
- Format: WebM
- Web Optimized
- Dimensions tab
- Resolution Limit: 720p HD
- Video tab
- Video Encoder: H.264 (x264)
- Framerate (FPS): Same as Source
- Color Range: Limited
- Quality:
- Constant Quality
- RF: 24
- Encoder Options:
- Preset: slower
- Tune: none
- Profile: high
- Level: auto
- Audio tab
- Codec: AAC (CoreAudio)
- Bitrate: 128
WebM VP9/Opus HandBrake Settings
- Summary tab
- Format: WebM
- Dimensions tab
- Resolution Limit: 720p HD
- Video tab
- Video Encoder: VP9
- Framerate (FPS): Same as Source
- Color Range: Limited
- Quality:
- Constant Quality
- CQ: 32
- Multi-pass encoding
- Encoder Options:
- Preset: medium
- Tune: none
- Profile: high
- Level: auto
- Audio tab
- Codec: Opus
- Bitrate: 96
Command-Line Transcode with ffmpeg
FFmpeg is a powerful command-line tool for transcoding video.
MP4 H.254/AAC ffmpeg Command
This commands encodes your INPUT video with recommended settings.
ffmpeg -i INPUT \
-c:v libx264 -preset slower -crf 24 \
-pix_fmt yuv420p \
-vf "scale=-1:720" \
-c:a aac -b:a 128k \
OUTPUT
Replace -vf "scale=-1:720" with -vf "scale=720:-1" for vertical videos.
Replace OUPUT with path to the desired output video file. Make sure the file extension is .mp4 so FFmpeg uses the MP4 container format.
For more options and info, see:
WebM VP9/Opus ffmpeg Command
These commands perform a 2-pass encode of your INPUT video file.
First, run the 1st pass:
ffmpeg -i INPUT \
-codec:v libvpx-vp9 -b:v 0 -crf 31 \
-vf "scale=-1:720" \
-pass 1 -an -f null /dev/null
Replace INPUT with the path to your input video file.
Replace -vf "scale=-1:720" with -vf "scale=720:-1" for vertical videos.
Note that this will create a file like ffmpeg2pass-0.log which you can delete after the next command.
Finally, run the 2nd pass:
ffmpeg -i INPUT \
-codec:v libvpx-vp9 -b:v 0 -crf 31 \
-vf "scale=-1:720" \
-pass 2 -c:a libopus -b:a 96k \
OUTPUT.webm
Replace OUPUT with path to the desired output video file. Make sure the file extension is .webm so FFmpeg uses the WebM container format.
For more options and info, see:
Attachments:
- Web 720p VP9:Opus WebM.json [download] added by zebra on 2026-04-24 20:59:58. [details]
- Handbrake_Preset_Select.webp [download] added by zebra on 2026-04-24 20:42:31. [details]
- Handbrake_Preset_Import.webp [download] added by zebra on 2026-04-24 20:38:58. [details]
- Web 720p H.264:AAC MP4.json [download] added by zebra on 2026-04-24 18:28:17. [details]