Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

598
Visualizações
¿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í?

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda