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.
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:
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.
Espero que esto te sea útil. Avísame si tienes alguna otra pregunta.