MediaRecorder.isTypeSupported('video/mp4')
在Chrome中是false
,所以我找到了MediaStreamRecorder
https://github.com/streamproc/MediaStreamRecorder
var recorder = new MediaStreamRecorder(stream, {
mimeType: 'video/mp4',
});
// also
recorder.mimeType = 'video/mp4';
但输出为webm
,正如我使用ffmpeg -i
检查的那样
Input #0, matroska,webm, from '/Users/otiai10/Downloads/example.mp4':
Metadata:
encoder : Chrome
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
这段视频可以在Chrome上播放,但不能在QuickTime播放器上播放。
Here是这个问题的更多细节和(不是!)工作示例。
据说muaz-khan/Ffmpeg.js可以将webm转换为mp4,但文件大小很重要。
是否有任何变通方案来记录和保存为mp4?
3条答案
按热度按时间xghobddn1#
好吧,那是我的误会。
有关详细信息,请参见https://github.com/streamproc/MediaStreamRecorder/issues/117。
MediaStreamRecorder可以将音频录制为WAV,将视频录制为WebM或Chrome上的动画gif
没有mp4。
qojgxg4l2#
checkout ffmpeg.wasm
您可以通过以下方式安装:
然后,你可以把你的blob转换成mp4文件,看看他们在我分享的链接中提供的例子。
vjrehmav3#
虽然不能直接在
mp4
中记录,但可以将生成的webm
文件传递给webm-to-mp4
进行转换:该模块可以编译为在浏览器中工作,因为它在幕后使用了ffmpeg.js。