ffmpeg - медленное преобразование видео, созданного Chrome - PullRequest
0 голосов
/ 28 июня 2018

Я создаю файлы webm двумя разными способами. Один использует Chrome WebRTC MediaRecorder, другой использует библиотеку js, которая генерирует видео кадр за кадром ( webm-writer-js ). Размер файла сгенерированных видео не так уж и отличается, быстрый - 60% от медленного, но разница в скорости - 1000%

Используя базовый синтаксис ffmpeg -i input.webm output.mp4, файлы, созданные с помощью медиа-рекордера Chrome, фактически конвертируются почти в 10 раз. Журналы конверсий немного отличаются, но в целом выглядят очень похожими на мои глаза новичка. Слева быстрое преобразование, справа медленное.

enter image description here

Быстрый бросает небольшую ошибку, но преобразование кажется успешным. В медленном преобразовании вы можете увидеть много обработанных кадров, в быстром - как если бы был только один (очень быстрый). Использование -preset veryfast сокращает время скорости вдвое, но потеря качества заметна.

Есть идеи, как можно ускорить конвертацию видео, созданных в Chrome, без существенного снижения качества? Большое спасибо!

1 Ответ

0 голосов
/ 28 июня 2018

Файлы Chrome определяются как имеющие частоту кадров 1000 / с. Это должно быть 30 кадров в секунду.

Два обходных пути - принудительная синхронизация видео с переменной частотой кадров

-i input.webm -vsync vfr output.mp4

или принудительная скорость вывода

-i input.webm -r 30 output.mp4
...