Поиск не работает в записанном видео с MediaRecorder API - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь создать запись экрана с помощью MediaRecorder API.

в качестве рекомендуемого подхода MediaRecorded

var chunks = [];
var recorder = new MediaRecorder(stream);

recorder.streams = [stream];

recorder.ondataavailable = function(e) {
    chunks.push(e.data);
};

recorder.onstop = function(){
      var blob = new Blob(chunks, {type: "video/webm"});
      chunks = [];

      var mimeType = 'video/webm';
      var fileExtension = 'webm';

      var file = new File([blob ? blob : ''], getFileName(fileExtension), {
          type: mimeType
      });
};

При таком подходе запись работает нормально, нопоиск записанного видео не работает.

Я выполнил поиск в Интернете относительно этой проблемы, и я обнаружил, что заголовок видео не содержит длительности.

При печати объекта file на консоли он содержит следующие свойства:

lastModified : 1527592713006
lastModifiedDate : Tue May 29 2018 16:48:33 GMT+0530 (India Standard Time) 
name : "Recording-May,29 2018 4:48:33 PM.webm"
size : 1971220
type : "video/webm"
webkitRelativePath : ""

Можно видеть, что объект файла не содержит свойства продолжительности.

Может кто-нибудь предложить любойДоступна ли библиотека javascript, которая может восстанавливать заголовок видео на стороне клиента только при подготовке видеофайла?

1 Ответ

0 голосов
/ 08 марта 2019

Это хорошо известная ошибка в Chrome .Как правило, длительность записанного носителя не добавляется в заголовки окончательного файла.

К сожалению, эта ошибка в настоящее время помечена как WontFix командой Chromium.Однако есть несколько обходных путей:

  • На сервере, используя ffmpeg для исправления заголовков: ffmpeg -i old.webm output.webm

  • На внешнем интерфейсе, обходной путь для этот ответ или использование пакета ts-ebml

...