php – Como criar uma url BLOB no javascript e enviar ela pro banco?

Olá, eu estou tentando a algum tempo criar um url blob pelo javascript e enviar ela pro banco para que eu possa depois ler esse url em uma tag <video>. O máximo que consegui fazer foi criar um input do tipo file e com um código de leitura ele cria o arquivo instantaneamente, o problema é que ele não faz upload e muito menos armazena ele cria o arquivo porem só fica válido enquanto a página não é carregada.

Vou mostrar o que eu tentei fazer.

Na página onde está a tag vídeo eu coloquei um código que pudesse ler, porém não sei se está totalmente certo da maneira que fiz.

<script type="text/javascript">

document.querySelector('#file').addEventListener('change', function(e) {
  var file = e.currentTarget.files(0);
  if (file) {
    file = createbloburl(file, file.type);
    document.querySelector('video').src = file;
    //console.log(file)
  }
})
</script>

Ele em tese teria alguns campos mudados, como por exemplo o document.querySelector('#file') em vez de file que é o id colocado no input de selecionar o arquivo. Eu colocaria um <?php echo $vid('link_video');?> que é a coluna que ao colocar o vídeo no banco de dados fica armazenado o link dele. No caso eu também gostaria de saber se é possível eu colocar um vídeo com url .mp4 em um <input type="text"> e ele depois ser transformado em blob, ou se somente da pra gerar arquivos blob fazendo upload.

Mas isso é uma dúvida a parte pois o que realmente quero saber é como fazer com que o blob seja feito e armazenado no banco para depois ser lido na página onde se localiza o vídeo.

Na página de cadastrar eu fiz o seguinte:

<?php include $_SERVER('DOCUMENT_ROOT')."/core/home/database.php";
 if(isset($_POST('link'))){
 $link = filter_input(INPUT_POST,'link', FILTER_SANITIZE_SPECIAL_CHARS);

 $queryInsert = $mysqli->query("INSERT INTO teste(link) VALUES('$link')");
 $affected_rows = @mysqli_affected_rows($mysqli);
 if($affected_rows > 0){
    echo "Deu certo!";
 }
 }
?>
<form action="" method="post">
    <input id="dataurl" name="link" type="text" size="50" />
    <input type="submit" value="Enviar link">
   </form>
   <canvas id="MyCanvas">This browser or document mode doesn't support canvas</canvas>
   <script type="text/javascript">
 function putImage(){
    var url = document.getElementById("img1").src; // 'img1' is the thumbnail - I had to put an id on it
    var canvas = document.getElementById("MyCanvas");
    if (canvas.getContext) {
        var ctx = canvas.getContext("2d");

        var img = new Image();
        img.src = url;
        img.onload = function () {
            // Desenha a imagem no canvas...
            ctx.drawImage(img,0,0);

            // Grava o Data URL na imagem...
            var myImage = canvas.toDataURL("text");
            document.getElementById("dataurl").value = myImage;
        }
    }
};
   </script>

Como não tinha ideia de como fazer essa parte em java eu fui vendo alguns scripts que podiam fazer o que preciso porem não sei como ele pode ajudar se quando eu clico em Enviar link, ele manda o url .mp4 pro banco ao invés do blob que também creio que não é gerado.

Enfim em resumo tem como eu gerar esse arquivo tipo blob url, e depois ele ser lido no src do <video>?

Seria algo como o player do youtube que por segurança faz esse sistema de colocar um vídeo em blob. Gostaria de fazer o mesmo.