HTML5 video poses the following constraints in conjunction with AWS signed URLs:
Seeking to unbuffered positions does not work when the URL has already expired. This is not
a Flowplayer specific issue, but affects HTML5 video in general, as can be verified at
this demo. By consequence short expiry times cannot be
used; as a workaround we set the expiry time for HTML5 video to the duration of the movie. Flash
does not have this problem. For testing purposes you can switch to
force Flash over RTMP for comparison.
Devices which do not allow automatic playback on page load (e.g. iOS) also prevent video
loading as result of an ajax call. Therefore the expiry time is even longer, an estimated
maximum duration of a page visit.
We use a splash setup to
demonstrate how the player can be loaded successfully on demand - except for case 2. above.
Reloading refreshed signed URLs can be tested by unloading the player - either by clicking the
close button or via the qkeyboard shortcut.
Summary: The unavoidable workarounds described in 1. and 2. lower the effectiveness of
content protection dramatically. You have to decide whether it is worth the effort to implement
and maintain such an involved setup which suggests protection, but delivers on its promise only in
a limited way.
If you are serious about content protection a superior approach is
because protection is an optional conceptual part of the media itself. Check out the
To save time consuming Ajax calls we mimic Flowplayer's
video type picking at page
load and set up only one video type.
A HTML/CSS only splash setup using the flowplayer class, but without
VIDEO tag right at page load, before player install to avoid vertical jumping due to the Ajax query