How to Use SMIL clipBegin and clipEnd to Trim Clips?
Synchronized Multimedia Integration Language (SMIL) allows creators
to specify non-destructive in and out points for media files without
altering the source content. By utilizing the clipBegin and
clipEnd attributes on elements such as
<video>, <audio>, and
<ref>, authors can precisely trim playback windows
using various time-code and metric formats. This guide covers how these
attributes work, the timing syntaxes supported, practical XML markup
examples, and standard implementation rules.
Understanding Media Clipping Attributes
In SMIL presentations, media elements reference external assets that contain continuous timelines. By default, a SMIL player plays an asset from offset zero until its native termination. To extract a specific excerpt, SMIL defines attributes that truncate playback at both ends:
clipBegin(or SMIL 1.0clip-begin): Defines the offset from the beginning of the continuous media asset where playback should start.clipEnd(or SMIL 1.0clip-end): Defines the point on the media asset's internal timeline where playback should stop.
Both attributes measure time relative to the beginning of the source media file itself, rather than the presentation's global timeline.
Supported Value Formats and Timing Syntax
SMIL supports multiple clock and metric formats to define the exact segment to be extracted:
Full Clock Values
Full clock values follow the standard hh:mm:ss.fraction
format.
clipBegin="00:01:15.500"
clipEnd="00:02:30.000"Partial Clock Values
Partial clock values follow the mm:ss.fraction
format.
clipBegin="01:30"
clipEnd="02:45.5"Timecount Values
Timecount values specify raw durations using explicit units such as
hours (h), minutes (min), seconds
(s), or milliseconds (ms).
clipBegin="45s"
clipEnd="120.5s"SMPTE Timecodes and Marker Values
Some SMIL implementations support SMPTE standard formats (e.g.,
smpte:00:01:20:00) or named marker labels if the underlying
media container defines internal chapter markers.
Practical Implementation Examples
Trimming an Audio Clip
The following snippet plays an audio track starting at the 10-second mark and stopping at the 45-second mark:
<audio src="interview.mp3" clipBegin="10s" clipEnd="45s" />Clipping Video within a Presentation Body
In a full SMIL structure, media clips are embedded inside structural
containers such as <seq> (sequential playback) or
<par> (parallel playback):
<smil xmlns="http://www.w3.org/ns/SMIL">
<head>
<layout>
<root-layout width="640" height="360" />
<region id="videoRegion" width="640" height="360" />
</layout>
</head>
<body>
<seq>
<video src="presentation.mp4"
region="videoRegion"
clipBegin="00:00:15.00"
clipEnd="00:01:45.00" />
<video src="presentation.mp4"
region="videoRegion"
clipBegin="00:03:00.00"
clipEnd="00:04:15.00" />
</seq>
</body>
</smil>Key Behavior Rules and Edge Cases
When utilizing clipBegin and clipEnd, the
following evaluation rules apply:
- Implicit Duration: The active playback duration of
the element becomes the difference between
clipEndandclipBegin. For example,clipBegin="10s"andclipEnd="25s"yields a 15-second active duration. - Omitted Attributes: If
clipBeginis omitted, playback starts at0s. IfclipEndis omitted, playback continues to the physical end of the source file. - Out-of-Bounds Offsets: Specifying a
clipBeginvalue greater than the source media duration results in an empty, non-rendering element. IfclipEndexceeds the physical media duration, the player stops playback when the physical end of the stream is reached. - Interaction with
dur: If the element also specifies an explicitdurattribute, the playback terminates whenever the earliest boundary betweendurandclipEndis satisfied.