es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

RecordRTC: unión de fragmentos en el lado del servidor con PHP.

Necesito construir una función de grabación sobre una aplicación de conferencia web que utiliza WebRTC. Para hacer esto, estoy utilizando la librería js RecordRTC.

La grabación NO se carga al final de la llamada, pero por razones prácticas se carga una porción del flujo del cliente al servidor cada 3 segundos. Esto se hace para evitar esperar al final por una carga muy grande.

Aquí está el JavaScript:

RTC_recorder = RecordRTC(stream, {
    type: 'video',
    mimeType: 'video/webm;codecs=vp8',
    timeSlice: 3000,
    ondataavailable: function(blob){
        upload_to_server(blob);
    }
});

He logrado guardar fragmentos separados en el servidor:

-blob1.webm (video legible)
-blob2.webm (no legible)
-blob3.webm (no legible)

Pero lamentablemente, no entiendo cómo fusionar los fragmentos en un solo video (LADO DEL SERVIDOR) y no he encontrado ningún ejemplo funcional en la documentación, ni una respuesta clara a esta pregunta.

¿Alguien puede ayudar?

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para fusionar los bloques grabados en un solo vídeo en el servidor, deberás utilizar una biblioteca de procesamiento de medios como FFmpeg. Aquí están los pasos que puedes seguir:

    1. Instala FFmpeg en tu servidor si aún no está instalado.
    2. Crea una carpeta en tu servidor para almacenar los bloques grabados.
    3. Utiliza la herramienta de línea de comandos de FFmpeg para concatenar los bloques de vídeo en un solo archivo de vídeo:

    ffmpeg -i "concat:blob1.webm|blob2.webm|blob3.webm" -codec copy output.webm

    Este comando lee los tres archivos de vídeo como entrada, los concatena y guarda el vídeo resultante como “output.webm”. Ten en cuenta que la opción “-codec copy” le indica a FFmpeg que copie las corrientes de vídeo y audio sin volver a codificarlas, lo que preservará la calidad y evitará cualquier pérdida de datos.

    1. Una vez concatenados los vídeos, puedes eliminar los bloques individuales para liberar espacio en tu servidor.

    Espero que esto te sea útil. Avísame si tienes alguna otra pregunta.

Comments are closed.