Skip to content
TubePress — free, self-hosted & actively maintained
Media & transcoding

Player, watermark, intros & previews

The video player, watermarks, pre-roll intros and hover/scrub preview thumbnails.

TubePress plays uploaded and URL-based videos with FluidPlayer, a self-hosted HTML5 player bundled in vendor/fluidplayer. Around it sit several features that are produced during transcoding — watermarks, intro and outro clips, and scrub-preview thumbnails — plus the hover previews shown on listing cards.

Player behaviour is configured under Appearance → Watch; the watermark, intro and timeline features live on their respective /admin/settings?tab=transcode sub-tabs because they are encoded into the video, not toggled at playback time.

The video player

For an uploaded or URL-based video, TubePress renders a <video> element with one <source> per rendition and initialises FluidPlayer on it. Because each rendition is listed as a separate source labelled with its quality (and flagged HD at 720p and above), the player exposes a built-in quality menu. The accent colour follows your theme's primary colour, and the controls auto-hide during playback.

The bundle ships modules for adaptive streaming (HLS and MPEG-DASH), WebVTT, and 360°/VR playback, so it can handle more than plain MP4 when needed. Videos that carry an embed code bypass FluidPlayer entirely and render their source iframe instead.

Before renditions exist, the player shows a placeholder. A freshly uploaded video that has no playable source yet displays a “Video is being processed…” panel until transcoding produces its first rendition.

Watermarks

A watermark is a logo overlaid on the video. In TubePress it is encoded into every rendition by FFmpeg during transcoding rather than drawn by the player — so it cannot be stripped client-side, but it does require transcoding and only appears on videos processed after you enable it. Configure it on the Watermark sub-tab:

Image
A PNG upload — transparency recommended.
Position
Top-left, top-right, bottom-left, bottom-right, center or random.
Opacity
10–100% (default 80).
Max width
5–50% of the video width (default 15).
Padding
Distance from the edges, as a percentage of width.

A live preview in the editor shows roughly how the overlay will sit, but the final mark is applied by FFmpeg on the next encode.

Pre-roll intros

You can prepend a short clip to every video — a pre-roll intro — and append a post-roll outro, both on the Intros sub-tab. Each is an MP4 upload, stored under uploads/intros/. Like watermarks, they are part of the encode: during transcoding each clip is re-encoded to match the exact resolution, codec and bitrate of every output format and then concatenated seamlessly, so there is no mid-stream quality jump.

Keep them short. 5–15 seconds works best. Because they are baked into the source rung, an intro added today only appears on videos transcoded from now on.

For ad clips that play inside the player rather than being encoded into the file, use VAST pre/mid/post-rolls from the Ads system instead.

Timeline previews

Timeline previews are the little thumbnails that appear as you scrub the progress bar. On the Timeline sub-tab, enabling Generate timeline screenshots makes the transcoder build a sprite of frames plus a timeline.vtt map, which FluidPlayer wires into the seek bar automatically once it is ready.

Number of screenshots
5–60 (default 10) — more means smoother scrubbing but a larger sprite.
Start after
0–300 seconds — skip intros or black frames at the head of the video.

The sprite is generated as its own queue job, so previews can appear shortly after the video itself is published.

Hover previews

Separate from the player, listing cards play a short preview clip when the visitor hovers over them — a real per-video preview.mp4, not the timeline sprite. This is controlled by the card hover setting in your theme's appearance options and gives browsers a quick taste of each video without opening the watch page.

Two different assets. The hover clip on cards (preview.mp4) and the scrub thumbnails on the watch-page player (the timeline sprite) are produced separately — a video can have one without the other.

Player settings

Open Appearance → Watch to control the player. These options apply to uploaded and URL-based videos only, not to embeds.

Default quality
Auto, 1080p, 720p, 480p or 360p. If the chosen quality is missing, the closest lower one is used, falling back to the highest available.
Playback speed
Offer 0.5× to 2× speed controls.
Download button
Show a download control in the player.
Loop playback
Restart automatically when the video ends.
Double-click fullscreen
Enter fullscreen on a double-click.

The same screen toggles which metadata appears around the player — views, duration, publish date, like/dislike and the favourite button, plus the pornstars, channels, categories and tags sections — and sets how many related videos (2–20) show in the sidebar.

Download button vs. raw protection. Enabling the player download button publishes a direct link to the file. If you rely on secure URLs and rate-limiting from Storage, leave it off.

Next steps

Still stuck?

Open a ticket from your dashboard and our team will help you out.

Try the live demo → Download TubePress →