Контекст
У меня есть холст с видео пользователя и изображение. Холст работает в цикле, чтобы перекрасить видео и изображение со скоростью 30 кадров в секунду. Эта настройка занимает около 25% процессорного времени, с чем у меня все в порядке. Моя функция записи вызывается в Redux Thunk, который получает диспетчер, когда запись начинается и когда запись заканчивается.
Моя конфигурация - Windows 10 с 8 ГБ оперативной памяти и работает в последней версии Chrome. Все работает на стороне клиента.
Код
Код ниже - то, что я использую для записи холста.
export const startRecordingStream =(audioStream) => {
return (dispatch) => {
const canvas = window.document.getElementById('canvas');
let recordStream;
if ('captureStream' in canvas) {
recordStream = canvas.captureStream(25);
} else if ('mozCaptureStream' in canvas) {
recordStream = canvas.mozCaptureStream();
} else if (!options.disableLogs) {
console.error('Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features');
}
recordStream.addTrack(audioStream.getAudioTracks()[0]);
let recorder = null;
const options = {mimeType: 'video/webm;codecs=h264'};
try {
recorder = new MediaRecorder(recordStream, options);
} catch (e){
console.error('Exception while creating MediaRecorder', + e)
}
recorder.start();
recorder.chunks = [];
recorder.ondataavailable = (event) => {
event.data.size && event.currentTarget.chunks.push(event.data)
}
recorder.onpause = event => {
console.log('paused', event)
}
recorder.onresume = event => {
console.log('resume', event)
}
recorder.onstop = function(event) {
dispatch({
type: "STOP_RECORDING",
payload: event
});
}
dispatch({
type: "START_RECORDING",
payload: recorder
});
}
}
Проблема
В тот момент, когда я запускаю эту функцию, процессор начинает работать на максимуме.
Вопрос
Нормально ли для моего процессора максимальное значение, учитывая, что холст имеет ширину 1080p и на нем непрерывно воспроизводятся видео и изображение?