Jamdesk Documentation logo

Videos

Embed local MP4 and WebM video files in your docs with the Video component or markdown syntax.

Store .mp4 or .webm files in a /videos directory inside your project and reference them directly. Jamdesk renders an HTML5 player with controls, rounded corners, and consistent spacing.

Markdown Syntax

The same ![alt](path) pattern you use for images works for video files. Jamdesk checks the file extension and renders a video player instead of an <img> tag:

![Never Gonna Give You Up](/videos/never-gonna-give-you-up.mp4)

This is the fastest way to drop a video into a page. You get a standard player with play/pause, volume, progress bar, and fullscreen -- no extra props needed. If you want to control playback behavior (autoplay, looping, muting), use the <Video> component instead.

Video Component

The <Video> component exposes HTML5 video attributes as props, giving you control over how the player behaves:

<Video src="/_jd/videos/never-gonna-give-you-up.mp4?v=mnrsgrr6" title="Rick Astley" />

The title prop sets the aria-label on the video element, which screen readers announce when a user navigates to it. Always include one for accessibility.

Props

PropTypeDefaultDescription
srcstringRequired. Path to the video file.
titlestringAccessibility label for screen readers.
controlsbooleantrueShow the browser's built-in player controls.
autoPlaybooleanfalseBegin playing as soon as the video is visible.
mutedbooleanfalseStart with audio muted.
loopbooleanfalseRestart from the beginning when the video ends.
widthstringCSS width value (e.g., "400px", "100%").
heightstringCSS height value.

GIF Replacement

Animated GIFs balloon in file size fast -- a 5-second UI recording can easily hit 10MB as a GIF but stay under 500KB as an MP4. Replace GIFs with a silent, looping video and hide the player chrome:

<Video src="/_jd/videos/ui-demo.mp4?v=mnrsgrr6" autoPlay muted loop controls={false} />

The result looks and behaves like a GIF (plays inline, loops forever, no controls) but loads far faster and stays sharp at any resolution.

Browsers block unmuted autoplay. If you set autoPlay without muted, the video won't play -- it will sit on the first frame with no error. Always pair the two together.

Supported Formats

FormatExtensionBrowser Support
MP4 (H.264).mp4All browsers, including Safari and iOS
WebM (VP9).webmChrome, Firefox, Edge -- smaller files at comparable quality

MP4 is the safe default. Every browser and device handles it. WebM produces smaller files but Safari and iOS don't support it, which means mobile readers on Apple devices see nothing.

Video files can be up to 100MB. For anything longer than a few minutes, host it on YouTube and use the <YouTube> component instead -- streaming from a CDN built for video will always outperform serving large files from your docs.

Compress videos before committing them. Tools like FFmpeg and Handbrake can cut file sizes dramatically without visible quality loss: ffmpeg -i input.mp4 -crf 28 -preset slow output.mp4

What's Next?

Images

Markdown images, dimensions, and captions

YouTube Embeds

YouTube videos and Shorts

iFrames

Vimeo, CodePen, Figma, and more