Implementé WebRTC en mi proyecto angular para grabar el video. Y después de guardar podemos enviarlo al archivo adjunto. Esto funciona correctamente en el sistema operativo Windows, pero en Mac Safari, el video se acelera y el video de 30 segundos se convierte en solo 3 segundos. esto ocurre solo en safari.
Aquí en empezar el video.
mediaDevices.getUserMedia({ video: true, audio: true }) .then(webcamStream => { this.webcamStream = webcamStream; })
El código de MediaRecorder:
this.recorder = new MediaRecorder(this.webcamStream, {mimeType: 'video/mp4'}); this.recorder.onstart = () => this.zone.run(() => { this.behaviorService.isRecording(true); }); this.recorder.onstop = this.onRecorderStopped; this.recorder.ondataavailable = (event) => this.zone.run(() => { this.data = [...this.data, event.data]; }); this.recorder.start();
Cuando se detiene el video, se guarda en video/webm;codecs=h264 este mimeType. También probé con video/mp4 pero tampoco funciona
¿Puedo obtener alguna solución que funcione en ambos sistemas operativos?
Safari está notoriamente dañado con respecto a .getUserMedia()
y la clase MediaRecorder.
¿Puedo obtener cualquier solución que funcione en ambos sistemas operativos?
No todavía. Pester Manzana. Mientras tanto, use Chrome en MacOS: funciona.
Puede haber algunos trucos para recomendar para mejorar esto. Pero no nos mostró su código MediaRecorder
: ahí es donde se comprime la transmisión.