浏览器中如何将本地视频导出带声音的webm视频?
网友回复
在浏览器中将本地视频导出为带声音的 WebM 格式视频,可以通过 JavaScript 使用 MediaRecorder API 实现。大致思路是将本地视频加载到 <video> 标签中,然后使用 captureStream() 获取其视频和音频流,再用 MediaRecorder 录制成 WebM 格式。下面是完整的示例步骤和代码:一、前提条件
浏览器支持 MediaRecorder 和 captureStream()(Chrome、Firefox 支持良好)。本地视频格式可以被浏览器解码(建议使用 mp4)。 二、HTML 结构
<input type="file" id="input" accept="video/*" /> <video id="video" controls style="max-width: 100%;"></video> <button id="recordBtn">导出为 WebM</button>三、JavaScript 实现逻辑
const input = document.getElementById('input');
const video = document.getElementById('video');
const recordBtn = document.getElementById('recordBtn');
let mediaRecorder;
let recordedChunks = [];
input.addEventListener('change', (e) => {
const file = e.target.files[0];
if (file) {
const url = URL.createObjectURL(file);
video.src = url;
}
});
recordBtn.addEventListener('click', async () => {
if (video.readyState < 3) {
alert("请等待视频加载完成!");
return;
}
const stream = video.captureStream(); // 获取音视频流
recordedChunks = [];
mediaRecorder = new MediaRecorder(stream, { mimeType: 'video/webm; codecs=vp8,opus' });
mediaRecorder.ondataavailable = function (event) {
if (event.data.size > 0) recordedChunks.push(event.data);
};
mediaRecorder.onstop = function () {
const blob = new Blob(recordedChunks, { type: 'video/webm' });
con...点击查看剩余70%
阿里云ESA、cloudflare worker、腾讯云EdgeOne网站代理托管哪家更好?
剪映能打开.fcpxml格式的文件吗?
增量式编码器与绝对式编码器的区别是啥?
有没有开源的单张照片或者序列帧图片或视频就能重建4d场景动画项目?
chrome网页突然报错:错误代码:RESULT_CODE_KILLED_BAD_MESSAGE
openai的codex如何全程无需手动确认自动修改文件?
阿里云oss前端上传文件直传如何限制文件类型?
阿里云oss前端获取policy签名直传oss上传文件回调如何传?
如何将根据三维物体通过提示词变成可交互的4d场景动画?
浏览器中实时摄像头离线视觉ai模型有吗?


