_createVideo(source) {
        // create a new video element if the source specified is a string
        // or if the crossorigin attribute is not specified (avoid potential CORS errors)
        if(typeof source === "string" || source.getAttribute("crossOrigin") === null) {
            const video = document.createElement("video");
            video.crossOrigin = this.crossOrigin;
            if(typeof source === "string") {
                video.src = source;
            }
            else {
                video.src = source.src;
                source.hasAttribute("data-sampler") && video.setAttribute("data-sampler", source.getAttribute("data-sampler"));
            }
            return video;
        }
        else {
            // else return source directly to avoid reloading the video
            return source;
        }
    }
Create a video HTML element based on a video source url

     params:
     @source (string): source url

     returns :
     @video (HTML video element): an HTML video element
*