我正在尝试使用 ffmpeg.js 将 webM 文件转换为 mp4。我正在从画布(带有一些信息的覆盖层)录制视频并从视频中录制音频数据。
stream = new MediaStream();
var videoElem = document.getElementById('video');
var videoStream = videoElem.captureStream();
stream.addTrack(videoStream.getAudioTracks()[0]);
stream.addTrack(canvas.captureStream().getVideoTracks()[0]);
var options = {mimeType: 'video/webm'};
recordedBlobs = [];
mediaRecorder = new MediaRecorder(stream, options);
mediaRecorder.onstop = handleStop;
mediaRecorder.ondataavailable = handleDataAvailable;
mediaRecorder.start(100); // collect 100ms of data
function handleDataAvailable(event) {
if (event.data && event.data.size > 0) {
recordedBlobs.push(event.data);
}
}
mediaRecorder.stop();
此代码按预期工作并返回 webm 视频
var blob = new Blob(recordedBlobs, {type: 'video/webm'});
现在我想要一个 mp4 文件并检查来自 muaz-khan的ffmpeg.js 。这些示例仅展示了当您有 2 个单流(音频和视频)时如何转换为 mp4。但是我有一个带有附加音轨的流。我可以将这样的流转换为 mp4 吗?怎么可能呢?