Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

158
Vistas
¿Cómo puedo concatenar la transmisión de audio?

Tengo una aplicación web que graba audio desde el micrófono del usuario. Envía los datos al servidor. El código relevante se ve así:

 class Recorder { // ... setRecorder() { this.recorder = new RecordRTC(this.stream, { type: 'audio', mimeType: this.mimeType, recorderType: StereoAudioRecorder, timeSlice: 2000, // Interval to send recorded data ondataavailable: async blob => { // send the data to the server let seq = this.seq++ let data = await blob.arrayBuffer() if(this.socket.connected) { try { this.socket.emit('audio', { id: this.id, seq, mimeType: this.mimeType, data }) } catch (e) { console.error('caught an error', e) this.stopRecording() } } }, sampleRate: 44100, desiredSampleRate: 44100, numberOfAudioChannels: 1 }) } }

Del lado del servidor (Express.js), envío los datos tal como los recibo a cualquier cliente interesado. Aquí está el código relevante:

 app.get('/play', (req, res, next) => { try { let id = req.query.id let mimeType if(!recordings[id]) { // ... } emitter // the EventEmitter that's handling this .on(`audio ${id}`, data => { if(!mimeType) { mimeType = data.mimeType res.writeHead(200, {'Content-Type': mimeType}) } res.write(data.data) }) .on(`close ${id}`, () => { console.debug({type:'audio close', id}) res.end() }) } catch (e) { next(e) } })

El problema es que cada fragmento que obtengo del cliente parece ser un archivo WAV completo, y la concatenación de dichos archivos no funciona. Al intentar reproducir un archivo de este tipo, solo escucha el primer fragmento.

He estado buscando durante horas información sobre cómo concatenar los archivos de entrada (o cualquier otro método que dé como resultado una transmisión que se pueda escuchar). Parece que hay muy poca información sobre este tema.

He estado mirando en particular a ffmpeg , pero a pesar de su supuesta capacidad para concatenar archivos, espera que todos los archivos se proporcionen en la línea de comandos. Estoy recibiendo transmisión de datos, por lo que prácticamente no puedo enumerar los nombres de los archivos por adelantado; Tendría que enviar varios archivos en stdin , pero eso no funciona.

¿Alguien puede señalarme en la dirección correcta? Pensaría que concatenar archivos de audio sería una necesidad común, pero no puedo encontrar ninguna herramienta que sea capaz de hacerlo sin conocer de antemano todos los datos que se procesarán. ¿O estoy ladrando al árbol equivocado aquí?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda