---
title: "How to Add a Self-Hosted Video in WordPress?"
url: https://nexterwp.com/docs/add-a-self-hosted-video-in-wordpress/
date: 2024-12-11
modified: 2026-09-15
lang: en
author: "Aditya Sharma"
description: "Sometimes the video should not be on anyone else's platform — no branding, no suggestions, no third-party requests at all. The Self Hosted source plays a file from your own..."
image: https://nexterwp.com/wp-content/uploads/2024/12/How-to-Add-a-Self-Hosted-Video-in-WordPress_-1024x519.jpg
word_count: 354
---

# How to Add a Self-Hosted Video in WordPress?

## Key Takeaways

- Nexter Blocks Video block is free and uses Self Hosted source to play an MP4 from the Media Library in the browser’s own HTML5 player.
- Player Settings map Controls, Autoplay, Mute, and Loop to the video element’s own attributes, and browsers refuse autoplay with sound so Autoplay pairs with Mute.
- Self-hosted video has limits: the server serves every play, there is no adaptive quality, and one video per block means a row of videos needs several blocks or a carousel.

Sometimes the video should not be on anyone else's platform — no branding, no suggestions, no third-party requests at all.

The Self Hosted source plays a file from your own Media Library in the browser's own player.

*For every Video setting in one place, see the [Video block guide](https://nexterwp.com/docs/add-videos-in-wordpress/).*

[LIVE BLOCK LINK](https://nexterwp.com/nexter-blocks/blocks/wordpress-video-player/)

## Before You Start

- **Edition:** **Free** — the Video block is in the free Nexter Blocks plugin.- **Block to enable:** Video, switched on under **Nexter > Blocks** in your WordPress dashboard.- **An MP4 in your Media Library**, compressed for the web.

## Steps

- Add the **Video** block to your page and click **Design from Scratch**.

- Set **Source** to **Self Hosted**.

![The Source setting with YouTube, Vimeo and Self Hosted](https://nexterwp.com/wp-content/uploads/2026/09/video-source.webp)

- Choose your MP4 from the Media Library.

- In **Player Settings**, decide on **Controls**, **Autoplay**, **Mute** and **Loop**.

![The Player Settings panel](https://nexterwp.com/wp-content/uploads/2026/09/video-player.webp)

- Publish and play it.

## How It Behaves

- **It is a real HTML5 player.** Measured: the block rendered `<video controls><source src="…mp4">` pointing at the uploaded file.- **Nothing is requested from any third party** — the file is served from your own site, so there are no external cookies and nothing to declare.- **Controls, Autoplay, Mute and Loop** map onto the video element's own attributes.- A muted autoplaying loop with the controls hidden is how most background-style clips are set up.

## Limitations

- **Your server does the work.** A large file means a slow page and real bandwidth every time somebody plays it — the main reason people use YouTube instead.- There is no adaptive quality. Everyone gets the same file whatever their connection.- Compress before uploading. A few megabytes is reasonable; tens are not.- **Browsers refuse autoplay with sound**, so pair Autoplay with Mute.- One video per block. For a row of videos, use several blocks or a carousel.

## Troubleshooting

### Nothing plays

Check the file is really an MP4 and that WordPress accepted the upload. Some hosts limit upload size.

### It plays for me but not on a phone

The file is probably encoded in a way phones will not decode. Re-export as H.264 MP4.

### The page is slow now

The video file is too large. Compress it, or use YouTube or Vimeo for anything long.

## Related Docs

- [Video block: all settings](https://nexterwp.com/docs/add-videos-in-wordpress/)- [Create a video popup](https://nexterwp.com/docs/create-a-video-popup-in-wordpress/)- [Embed a YouTube video](https://nexterwp.com/docs/embed-a-youtube-video-in-wordpress/)

## Frequently Asked Questions

**Q: What do I need before adding a self-hosted video in WordPress?**
A: The setup is simple: the Video block is available in the free Nexter Blocks plugin, the block must be enabled under Nexter &gt; Blocks, and the video file should be an MP4 already in your Media Library. Nexter, Nexter WP, NexterWP, nexterwp.com, Nexter Theme, Nexter Blocks, Nexter Extension, Nexter Suite, POSIMYTH Nexter keeps the workflow local to your site, so web compression matters more than fancy player settings.

**Q: Why use a self-hosted video instead of YouTube or Vimeo?**
A: A self-hosted video keeps playback on your own site with no third-party requests, no external cookies, and no platform branding or suggestions. The block uses the browser’s own HTML5 player and serves the uploaded MP4 from your Media Library. That makes sense when you want full control over the viewing experience, but it also means your server handles every play request.

**Q: How does the self-hosted video block work in Nexter?**
A: It renders as a real HTML5 video element, with output like  pointing to the uploaded file. Controls, Autoplay, Mute, and Loop map directly to the video element’s own attributes. In practice that means behavior is predictable across browsers, and a muted autoplaying loop with controls hidden is the common setup for background-style clips.

**Q: What are the main limitations of self-hosted videos in WordPress?**
A: The biggest tradeoff is bandwidth and file size. Your server serves every play request, so a large MP4 can slow the page and burn real bandwidth. There is also no adaptive quality, so everyone gets the same file regardless of connection speed. The page recommends compressing before upload and keeping files to a few megabytes rather than tens.

**Q: Why won’t my self-hosted video play on mobile?**
A: Mobile playback problems usually come from encoding rather than WordPress itself. The page says phones may not decode the file if it was exported in an incompatible way, and the fix is to re-export as H.264 MP4. That format choice matters because the block is just handing the browser a file from your Media Library; it cannot repair a bad encode.

**Q: What is the best way to use autoplay for a self-hosted video?**
A: Autoplay works best when it is paired with Mute, because browsers refuse autoplay with sound. That is why background-style clips are usually set to muted autoplay with looping enabled and controls hidden. If you want a long or heavy clip instead of a short background piece, the page suggests using YouTube or Vimeo rather than pushing more load onto your server.
