needs some cleanup, but js now dynamically creates video elements to work around chrome bug with pending requests on 5 or more video elements