Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

431
Views
TypeError no detectado: no se pudo ejecutar 'appendBuffer' en 'SourceBuffer': la resolución de sobrecarga falló

Quiero hacer transmisión de video con vanilla js y websocket. Puedo crear fácilmente una grabadora de medios y obtener datos de video del usuario como ArrayBuffer y enviarlos, pero el problema es que no pude agregar SourceBuffer debido a este error ingrese la descripción de la imagen aquí

Este es mi código para obtener arrayBuffer durante websocket.onmessage y agregar SourceBuffer. El error ocurre durante la adición.

 const video2 = document.getElementById('video2') const mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'; if ('MediaSource'in window && MediaSource.isTypeSupported(mimeCodec)) { var mediaSource = new MediaSource(); mediaSource.addEventListener('sourceopen', sourceOpen); video2.src = URL.createObjectURL(mediaSource); console.log("mediaSource.readyState"); // closed } else { console.error('Unsupported MIME type or codec: ', mimeCodec); } function sourceOpen(_) { if (MediaSource.isTypeSupported(mimeCodec)) { console.log("yes it is supported") } const mediaSource = this; const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec); sourceBuffer.mode = "sequence"; streamsocket.onmessage = (buf) => { sourceBuffer.addEventListener('updateend', function(_) { mediaSource.endOfStream(); video2.play(); }); sourceBuffer.appendBuffer(buf); } }

Así es como estoy enviando un búfer de matriz aquí, todo funciona muy bien.

 static registerStream = (userdata , stream, streamsocket) => { const mediaRecorder = new MediaRecorder(stream) let countUploadChunk = 0 console.log(stream) mediaRecorder.ondataavailable = (data) => { Streaming.sendData(data.data, streamsocket, userdata, countUploadChunk) countUploadChunk++ } mediaRecorder.start() setInterval(() => { mediaRecorder.requestData() }, 500) } static sendData = async (data, streamsocket, userdata, chunkNumber) =>{ let reader = new FileReader(); let rawData = new ArrayBuffer(); reader.loadend = function() {} reader.onload = function(e) { rawData = e.target.result; streamsocket.send(rawData) } reader.readAsArrayBuffer(data); }

Actualizar:

Problema causado porque estaba pasando datos de socket directamente. Debería usar buf.data .

Después de que sucedió ese nuevo problema:

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El problema estaba ocurriendo porque estaba pasando datos de socket directamente (es buf ).

Solución : necesitaba usar buf.data para acceder a los bytes reales para agregar).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!