Eu quero alcançar o seguinte.
<video src="file:///Users/username/folder/video.webm">
</video>
A intenção é que o usuário possa selecionar um arquivo em seu disco rígido.
E o motivo para não fazer upload são os custos de transmissão e a cota de armazenamento. Não haverá motivo para salvar o arquivo.
É possível?
html
video
html5-video
offline
Chris
fonte
fonte
Respostas:
É possível reproduzir um arquivo de vídeo local.
<input type="file" accept="video/*"/> <video controls autoplay></video>
Quando um arquivo é selecionado por meio do
input
elemento:input.files
FileListvideo.src
propriedadeEncoste-se e observe :)
http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/
Exibir trecho de código
(function localFileVideoPlayer() { 'use strict' var URL = window.URL || window.webkitURL var displayMessage = function(message, isError) { var element = document.querySelector('#message') element.innerHTML = message element.className = isError ? 'error' : 'info' } var playSelectedFile = function(event) { var file = this.files[0] var type = file.type var videoNode = document.querySelector('video') var canPlay = videoNode.canPlayType(type) if (canPlay === '') canPlay = 'no' var message = 'Can play type "' + type + '": ' + canPlay var isError = canPlay === 'no' displayMessage(message, isError) if (isError) { return } var fileURL = URL.createObjectURL(file) videoNode.src = fileURL } var inputNode = document.querySelector('input') inputNode.addEventListener('change', playSelectedFile, false) })()
video, input { display: block; } input { width: 100%; } .info { background-color: aqua; } .error { background-color: red; color: white; }
<h1>HTML5 local video file player example</h1> <div id="message"></div> <input type="file" accept="video/*" /> <video controls autoplay></video>
fonte
Isso só será possível se o arquivo HTML também for carregado com o
file
protocolo do disco rígido do usuário local.Se a página HTML for servida por HTTP de um servidor, você não pode acessar nenhum arquivo local especificando-os em um
src
atributo com ofile://
protocolo, pois isso significaria que você poderia acessar qualquer arquivo no computador do usuário sem que o usuário soubesse qual seria um enorme risco de segurança.Como Dimitar Bonev disse, você pode acessar um arquivo se o usuário selecioná-lo usando um seletor de arquivos por conta própria. Sem essa etapa, é proibido por todos os navegadores por boas razões. Assim, embora sua resposta possa ser útil para muitas pessoas, ela afrouxa o requisito do código da pergunta original.
fonte
Tive esse problema há um tempo. O site não pôde acessar o arquivo de vídeo no PC local devido às configurações de segurança (compreensível, na verdade). A ÚNICA maneira de contornar isso foi rodar um servidor da web no PC local (server2Go) e todas as referências ao arquivo de vídeo da web foram para o localhost / video.mp4
<div id="videoDiv"> <video id="video" src="http://127.0.0.1:4001/videos/<?php $videoFileName?>" width="70%" controls> </div> <!--End videoDiv-->
Não é uma solução ideal, mas funcionou para mim.
fonte