Многоядерное кодирование теор
Мы конвертируем загруженное видео в 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.