Flat / MP4 and M4V hosting

MP4 hosting: upload a video and share a playback link

Publish a finished MP4 or M4V from your browser or the CLI. Send a browser viewing copy, with the original video available at its own URL.

Checking your upload limits... · Public · Limits

Drop your MP4 and M4V files here

or choose them from your device.

Select MP4 and M4V files

What people see at your MP4 and M4V link

Browser player for compatible video and audio codecs.

The screenshot shows an MP4 with H.264 video and AAC audio. Compatible browsers provide play, pause, seeking, sound, and fullscreen controls.

MP4 is a container. An MP4 containing HEVC, AV1, or another codec may behave differently on the same device. Flat also routes .m4v files to the video player; protected files still need their original playback system.

Public links open without a Flat account. Several files open in the explorer, where readers can choose a file. Original downloads remain available.

The exact path /motion.mp4 serves the original file. Opening that URL does not convert its container or codecs.

Flat's video viewer showing a frame of a sample motion graphic, with native playback controls and an original download.
motion.mp4 in Flat's video viewerView full-size screenshot

How to upload MP4 and M4V files and get a link

  1. Prepare your files

    Export H.264 video with AAC audio for broad playback support. Choose resolution and bitrate before uploading. Put MP4 metadata at the start of the file, often called fast start, when your export tool offers it.

    Check your plan's upload allowance and the published result before sharing. Original downloads remain available when a preview is unavailable. Flat does not transcode or generate smaller versions.

  2. Publish from your browser or terminal

    In your browser

    Drop, publish, copy the link.

    Select your finished files in the uploader above. Enter your email if signed out, then choose "Publish videos".

    Selected files need unique names and publish at the top level. The browser uploader does not accept folders or extract ZIPs. Use the CLI when relative paths matter.

    Go to uploader
    TerminalNode.js 20+

    One command. Files or folders.

    npx -y @getflat/cli deploy ./motion.mp4

    Replace the example path with your file, or pass a folder path to preserve its structure. The CLI prints the published URL.

  3. Check the published result

    Play the published MP4 on desktop and mobile. Check sound, seeking, and the end of the clip before sharing its viewer URL or using the original URL with your own player.

    Signed-out uploads expire after 1 hour by default. Sign in before expiry to keep them online, or sign in before publishing for no default expiry.

When to use MP4 and M4V hosting

Short product walkthroughs

Share a screen recording that demonstrates a feature or a support issue. Export a small viewing copy for the built-in player.

Client review exports

Send a particular cut with its own version link. Keep comments and approvals in your existing review conversation.

Keep a version, or keep an address.

Share this version

Every upload gets its own link. Publishing revised files creates a new link and leaves the earlier version unchanged. Use the version link when someone needs to review a specific upload.

Update files at one address

Use a named onflat.page address or your own domain. Sign in, then publish with the CLI using --domain. Publish revised files with the same domain to point that address to the new upload.

Named addresses are included on Free. Adding your own domain requires a paid plan. The browser uploader does not set up or repoint these addresses.

MP4 and M4V hosting questions

Is hosting free, and what are the limits?

Yes. Signed-in Free includes 5 MiB per upload, 1 GiB of storage, and 5 GiB of monthly transfer, with no default expiry. The per-upload limit covers all files in that upload. Paid plans raise these limits.

Compare hosting plans and limits

Do readers need a Flat account?

No. Public links open without a Flat account. Anyone with the link can open the uploaded files. Password-protected links also require the visitor password.

Can I password-protect my upload?

Yes. Password protection is available on every plan. Add --password YOUR_PASSWORD to your CLI deploy command. It protects access to the upload and its files, but does not prevent someone with access from saving a copy. The browser uploader creates public uploads.

Set a visitor password

Can I replace files without changing the link?

A version link always refers to its original upload. For same-address updates, use a named address or your own domain. Publish revised files with the same --domain value in the CLI to point that address to the new upload.

What happens when an upload expires?

Flat stops serving it. An expired upload cannot be recovered. Signed-out uploads expire after 1 hour by default. For browser uploads, use the sign-in link shown after publishing. For CLI uploads, run npx -y @getflat/cli login. Complete sign-in before expiry to keep the upload online. If you chose a shorter expiry in the CLI, that deadline stays in place.

Does every MP4 play in a browser?

No. The browser must decode both its video and audio tracks. An MP4 extension does not guarantee H.264/AAC or browser compatibility.

Are MP4 and M4V separate hosting workflows?

No. Both use the same upload workflow and video adapter. M4V can contain protected media, which Flat does not decrypt or make playable.

Is uploading an MP4 the same as adaptive streaming?

No. Flat delivers the uploaded file and supports byte-range requests. It does not create HLS playlists, DASH manifests, or multiple bitrate versions.

How large can a video upload be?

Upload allowances depend on your plan and cover all files in the upload. Compare current plan limits. A larger upload allowance does not add codecs, container support, or transcoding. Original files remain downloadable when a preview is unavailable.

Can I embed this file on my website?

Use the exact file URL with your own HTML video player:

<video controls playsinline src="https://YOUR-ADDRESS.onflat.page/motion.mp4"></video>

The browser must support the container and codecs. Flat's generated viewer cannot be embedded in an iframe.

Find the guide for your video file.

Share your MP4 and M4V files.

Upload your finished files, check the published result, and copy the URL.

Publish videos

Free to start · View pricing

Compare video containers and playback support