You could extend your page model and add some File fields for the video
static $has_one = array(
'VideoOgg' => 'File',
'VideoMp4' => 'File',
'VideoPlaceholder' => 'Image'
);
add the fields to the CMS,
public function getCMSFields()
{
$f = parent::getCMSFields();
$f->addFieldToTab("Root.Content.Video",
new FileIFrameField('VideoOgg', 'Upload .ogv Video'));
$f->addFieldToTab("Root.Content.Video",
new FileIFrameField('VideoMp4', 'Upload .mp4 Video'));
$f->addFieldToTab("Root.Content.Video",
new ImageField('VideoPlaceholder', 'Upload Placeholder Image'));
return $f;
}
and then place the video tag into your template
<% if VideoOgg %>
<video controls width="600" height="400" <% if VideoPlaceholder %>poster="$VideoPlaceholder.URL"<% end_if %>>
<source src="$VideoOgg.URL" type="video/ogg">
<% if VideoMp4 %>
<source src="$VideoMp4.URL" type="video/mp4">
<% end_if %>
<!-- Flash Fallback -->
</video>
<% end_if %>
You can get a lot fancier, this just a simple example.