javascript - 在 Chrome 扩展程序中使用 ffmpeg.wasm 时出现意外异常
问题描述
我正在尝试实现一个 chrome 扩展,它允许我通过将flv视频转码为mp4来播放flv视频,然后插入一个视频播放器,就像在ffmpeg.wasm的转码示例中所做的那样。
由于 chrome 扩展不支持下载代码的执行,我需要使用 ffmpeg-core 的下载版本。我已经下载了 0.8.4 版本,并将该文件夹包含在清单中的web_accessible_resources下,因此用于转码的 javascript 文件中的代码是:
const { createFFmpeg, fetchFile } = FFmpeg;
const ffmpeg = createFFmpeg({
log: true,
corePath: chrome.runtime.getURL('ffmpeg-core/ffmpeg-core.js'),
});
const transcode = async (file) => {
const { name } = file;
console.log('Loading ffmpeg-core.js. Transcode URL.');
await ffmpeg.load();
console.log('ffmpeg-core loaded.');
let blob = await fetch(file).then(r => r.blob());
console.log('blob downloaded');
ffmpeg.FS('writeFile', name, blob);
console.log('Start transcoding');
await ffmpeg.run('-i', name, 'output.mp4');
console.log('Complete transcoding');
const data = ffmpeg.FS('readFile', 'output.mp4');
const video = document.getElementById('output-video');
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
}
执行转码功能后,出现以下异常:
ffmpeg.min.js:1 Uncaught (in promise) TypeError: t is not a function
at ffmpeg.min.js:1
at f (ffmpeg.min.js:1)
at Generator._invoke (ffmpeg.min.js:1)
at Generator.next (ffmpeg.min.js:1)
at i (ffmpeg.min.js:1)
at c (ffmpeg.min.js:1)
有人知道为什么会发生这种情况吗?
非常感谢!