Любой эквивалент '- c: v copy' для изменения контейнера webm на mp4 видео на стороне клиента в JS? - PullRequest
0 голосов
/ 13 марта 2020

Изучаем Mediarecorder API и действительно надеемся получить вывод mp4 вместо webm. Предпочитаю оставаться на стороне клиента, чтобы уменьшить ресурсы сервера, и ffmpeg. js на 17 МБ не представляется жизнеспособным для использования в Интернете.

Обнаружено, что можно создать (Chrome / Firefox) webm / h.264, который преобразует без перекодирования в mp4 с использованием FFMPEG. Получающийся файл прекрасно открывается в Quicktime MacOS ( источник фрагмента ):
ffmpeg -i _inputfile_.webm -c:v copy _outputfile_.mp4

В то время как этот умный взлом работает для отображения видео может быть как mp4 в браузере, но загруженный файл не откроется в Quicktime (только VL C, то же самое для webm):

new Blob(recordedBlobs, {type: 'video/mp4'});
video.src = window.URL.createObjectURL(superBuffer);

Поэтому задаюсь вопросом, есть ли еще JS хак, чтобы сделать то, что делает FFMPEG -c:v copy, но с байтами больших двоичных объектов MediaRecorder recordedBlobs и дать ему тот же контейнер mp4, который принят Quicktime / et c?

Pastebin текущей настройки

...