Почему веб-сборка ffmpeg работает так медленно 20 секунд, время добавления водяного знака клипа 10 минутJavascript

Форум по Javascript
Ответить
Anonymous
 Почему веб-сборка ffmpeg работает так медленно 20 секунд, время добавления водяного знака клипа 10 минут

Сообщение Anonymous »

Я использую FFmpeg.wasm (v0.12.x) для добавления текстовых водяных знаков к видео в браузере. Однако время обработки у меня очень медленное: обработка 20-секундного видео занимает 15–20 минут, что кажется аномально медленным.
Мой код:

Код: Выделить всё

let ffmpeg, loaded = false;

async function processVideoWithFFmpeg(videoFile) {
if (!ffmpeg || !loaded) {
ffmpeg = new FFmpeg();
ffmpeg.setLogger(({ message }) => console.log(message));
await ffmpeg.load();
loaded = true;
}

console.time('Total Processing');

// Read video file
const uint8Array = new Uint8Array(await videoFile.arrayBuffer());
await ffmpeg.writeFile('input.mp4', uint8Array);

// Load font for drawtext filter
const fontResponse = await fetch('https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/fonts/roboto/Roboto-Bold.ttf');
const fontData = await fontResponse.arrayBuffer();
await ffmpeg.writeFile('Roboto-Bold.ttf', new Uint8Array(fontData));

// Execute FFmpeg command
await ffmpeg.exec([
'-i', 'input.mp4',
'-vf', `drawtext=fontfile=Roboto-Bold.ttf:text='Watermark':fontsize=48:fontcolor=white:x=(w-text_w)/2:y=h-th-10:borderw=2:bordercolor=black`,
'-c:v', 'libx264',
'-preset', 'ultrafast',
'-crf', '23',
'-threads', '0',
'-c:a', 'copy',
'output.mp4'
]);

console.timeEnd('Total Processing');

// Read output
const data = await ffmpeg.readFile('output.mp4');
const blob = new Blob([data.buffer], { type: 'video/mp4' });

// Cleanup
await ffmpeg.deleteFile('input.mp4');
await ffmpeg.deleteFile('output.mp4');
await ffmpeg.deleteFile('Roboto-Bold.ttf');

return blob;
}
Это нормальное время обработки для FFmpeg.wasm? Судя по тому, что я прочитал, обработка в браузере должна быть медленнее, чем в собственном FFmpeg, но 20 минут для 20-секундного видео кажутся чрезмерными.


Подробнее здесь: https://stackoverflow.com/questions/797 ... time-10min
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»