Quiero obtener la tasa de bits del video que subió, porque el backend lo necesita.
var video = document.createElement('video'); video.preload = 'metadata'; video.src = URL.createObjectURL(document.getElementById('fileUp').files[0]); window.URL.revokeObjectURL(video.src); console.log(video.bitrate);Puede obtener la duración del video y luego simplemente dividir el tamaño del archivo para obtener una aproximación (los subtítulos, el audio y los metadatos también se incluirían en este valor), que yo sepa, no existe una API estándar para obtener la tasa de bits directamente.
Ejemplo (créditos https://stackoverflow.com/a/67899188/6072029 ):
<div> <script> const getVideoInfos = (file) => new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => { const media = new Audio(reader.result); media.onloadedmetadata = () => resolve({ duration: media.duration, file_size: file.size, bitrate: file.size / media.duration, }); }; reader.readAsDataURL(file); reader.onerror = (error) => reject(error); }); const handleChange = async (e) => { const infos = await getVideoInfos(e.target.files[0]); document.querySelector("#infos").innerText = `Infos : ${JSON.stringify(infos, null, 4)}`; }; </script> <input type="file" onchange="handleChange(event)" /> <p id="infos">infos: </p> </div>