Многоядерное кодирование теор

Мы конвертируем загруженное видео в MP4 и OGV, но, пытаясь ускорить процесс, мы попали в стену. Мы обнаружили, что узким местом является кодировка OGV, хотя преобразование 350-мегабайтового AVI в MP4 может занять 5 минут, для преобразования того же файла в OGV требуется примерно 25-30 минут.

avconv поддерживает многопоточность / несколько ядер, но кажется, что libtheora нет, есть ли у кого-нибудь способ кодирования на нескольких ядрах? Я нашел старую почтовую группу, которая обсуждала патч, но больше ничего о нем не могу найти, или он работает еще 5 лет.

Так. Возможна ли многоядерная обработка теор и что для этого нужно использовать?

Для справки:

avconv -y -i big_buck_bunny_720p_surround.avi -vcodec libtheora -qscale 10 -bufsize 20M -same_quant -acodec libvorbis -ac 2 -ar 44100 -ab 128k buck.ogv

1 ответ

Решение

На официальном сайте libtheora есть ссылка на многопоточную версию:

theora-multithread: старая, более не разработанная, экспериментальная библиотека кодировщиков на основе старого кодировщика, оптимизированная для SMP/ многоядерных систем: theora-multithread svn. Для получения дополнительной информации смотрите все темы здесь: Multi-Thread Theora Encoder.

Создайте эту версию, затем попробуйте собрать ffmpeg, используя ее. Если более новые версии ffmpeg не собираются с ним, попробуйте старые версии кода.

Существует также многопоточная версия ffmpeg2theora.

Другие вопросы по тегам