Описание проблемы:
chrome.tabCapture.capture создаст поток, я использую MediaRecorder для работы.Но MediaRecorder поддерживает только видео формат WebM.Формат видео Webm будет сжимать мое записанное видео
Если я записал вкладку, ничего не изменилось в течение 10 секунд (без движения мыши и звука), вся веб-страница остается неподвижной.Тогда конечный видеофайл webm будет иметь только один кадр, а не одну секунду.
Есть ли способ решить эту проблему?Потому что я не хочу сжатое видео
Код ядра:
let mediaRecorder = '';
chrome.tabCapture.capture(captureConfig, stream => {
if (stream === null) {
chrome.tabs.sendMessage(id, {
error: chrome.runtime.lastError
});
return false;
}
const recordedBlobs: BlobPart[] = [];
mediaRecorder = new MediaRecorder(stream, {
videoBitsPerSecond: 2500000,
mimeType: 'video/webm;codecs=vp9'
});
mediaRecorder.ondataavailable = event => {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
}
};
mediaRecorder.onstop = () => {
const superBuffer = new Blob(recordedBlobs, {
type: 'video/webm'
});
const link = document.createElement('a');
link.href = URL.createObjectURL(superBuffer);
link.setAttribute('download', `${filename}.webm`);
link.click();
};
mediaRecorder.start();
});
const stop = () => {
mediaRecorder.stop();
mediaRecorder.stream.getTracks().forEach(track => {
track.stop();
});
}
Я использую хром, его можно заменить хромом, если он может решить эту проблемупроблема.Я также попробовал ffmpeg, но все еще не могу, эти потерянные кадры не могут быть восстановлены.