Лучший способ для потоковой передачи больших локальных медиафайлов с помощью основного электронного процесса и обработки их в процессе рендеринга - PullRequest
0 голосов
/ 28 марта 2020

Привет,

Я постараюсь быть более точным c по поводу моего вопроса, я использую angular 9 и последнюю электронную версию 8.1.1.

Моя цель - читать большие медиа-файлы, такие как видео (> 4 go), песни (fla c) или другие большие файлы, расположенные в моей файловой системе, но с использованием потокового API в nodeJS in основной процесс и отправка результата (чанка, буфер) в процесс рендерера.

Как я могу обработать буфер потока в процессе рендерера, я хотел бы использовать видео и аудио API, уже встроенный в html5 Таким образом, используя ip c между основным процессом и процессом рендеринга, я отправлю куски и хотел бы иметь возможность отображать, воспроизводить, читать эти куски, используя html5 API (например, с тегом video и атрибутом sr c или аудио тег и атрибут sr c) что я должен дать в качестве sr c для этих элементов, чтобы он работал как основной c веб-поток с URL-адресом?

Вот мой основной процесс код (где я использую fs с nodejs):

ipcMain.on('getFileStream', (event, arg) => {
  try {
    if(fs.existsSync(arg.path) && fs.lstatSync(arg.path).isFile()) {
      const s = fs.createReadStream(arg.path)
      s.on('data', (chunk: Buffer) => {
        console.log(chunk)
        event.sender.send('getFileStreamResponse', chunk)
      }).on('end', () => {
        console.log("end stream")
        event.sender.send('getFileStreamResponse', false)
        s.close()
      });
    }
  } catch(e) {
    console.log('getFileStream', e)
  }
})

Я не хочу ждать, пока все фрагменты начнут воспроизводить медиа, я хочу иметь возможность воспроизводить медиа, когда достаточно данных загружен. Я читал о Mediasources в html5, но хотел узнать, правильный ли это способ или вы знаете лучший способ чтения больших файлов и восстановления блоков в процессе рендерера?

Большое спасибо за ваше время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...