FFmpeg: потребность в скорости

голоса
3

Я использую FFmpeg для преобразования набора изображений (ВМР) с аудио дорожкой в Web Ready видео. Целевые форматы H.264 MP4, WebM и FLV. Это на Windows Azure очень большой экземпляр (8 Proc) с помощью скомпилированного zeranoe статических сборок ( http://ffmpeg.zeranoe.com/builds/ ).

Предположу, что я готов пожертвовать качество и размер для сырья скорости. Какие варианты для каждого формата даст быстрый результат?

Моя команда «базовая» выглядит следующим образом (поменять расширение для других форматов):

ffmpeg -y -i frames%5d.bmp -i audio.mp3 -r 23.97 out.mp4

Я могу изменить входы в другие форматы, если это необходимо (JPG изображений, AAC аудио и т.д.).

Задан 20/07/2012 в 08:05
источник пользователем
На других языках...                            


2 ответов

голоса
4

Главная «ручка» изменить скорость баланс / качества кодирования для любого формата является битрейтом . В тестировании только сейчас, видео , которое занимает 97 секунд , чтобы закодировать с настройками по умолчанию, битрейт ~ 900k, занимает меньше половины , что с битрейтом набранного до 100k. Выход видео было гораздо меньше, а качество заметно хуже.

В вашем случае, исходя из изображений, вы , вероятно , можете получить крупное ускорение отключались оценки движения , как указано в кончиках кодирования FFmpeg, :

Если ваш компьютер не достаточно быстро, вы можете ускорить сжатие за счет степени сжатия. Вы можете использовать «-me ноль» , чтобы ускорить оценку движения, и «-g 0» , чтобы полностью отключить оценку движения ( у вас есть только I-кадры, а это значит , что примерно так же хорошо , как сжатие JPEG). [Обратите внимание , что более поздние версии FFmpeg использовать -me_methodвместо -me.]

В тестировании, то 97-вторых кодирование завершено в 20 секунд -g 0. Было гораздо меньше сжатия, 63% первоначального размера по сравнению с 25% с настройками по умолчанию, но качество остается хорошим в отличие от низкого битрейта кодировок.

Вот полные результаты моего быстрого тестирования, время в режиме реального времени используется для кодирования:
Базовый, 27М MOV в MP4, битрейт ~ 900K: 97s
с -me_method zero: 84S
с -flags2 fast: 84S
с -b 500k: 75s
с -b 100k: 43s
с -g 0: 20s

с -flags2 fastи -b 100kи -g 0: 12s (выход выглядит ужасно )

Там могут быть и другие твики формат конкретного, но я бы не стал ожидать значительных ускорений от тех, по сравнению с перечисленными выше методами ..

Ответил 20/07/2012 в 23:19
источник пользователем

голоса
1

Что такое разрешение этих изображений? Использование цены разрешения, насколько это возможно даст вам лучшую производительность. Также используйте -threads опцию в FFmpeg использовать 8 ядер оптимально.

Ответил 20/07/2012 в 14:25
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more