Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: ffmpeg сборка с поддержкой Intel QuickSync  (Прочитано 4452 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jidckii

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Unity, 16.04
    • Просмотр профиля
    • jidckii
ffmpeg сборка с поддержкой Intel QuickSync
« : 23 Ноябрь 2016, 15:53:28 »
Доброго дня.
Подскажите подробный инстал гайд по сборке ffmpeg с поддержкой аппаратного кодирования GPU Intel QuickSync.
Сам нашел вот это
http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/quicksync-video-ffmpeg-install-valid.pdf
но что то не совсем понятен мне этот гайд.

Есть кто нибудь, с опытом сборки ?
Может есть уже готовые пакеты, или там докер контейнер ?
В docker hub не нашел ..
То, что стоит почитать: http://pub.paradev.ru/books/

Оффлайн starky

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #1 : 26 Декабрь 2016, 13:40:42 »
Более десятка раз успешно переустановил систему и собрал ffmpeg и написал пошаговое руководство, как завести intel Media SDK 2017  и стабильную версию ffmpeg с поддержкой аппаратного декодирования Intel quick sync video. Ссылка на получившийся "мануал" http://info.hotar.ru/IntelQuickSyncLinux Текста много, здесь будет не уместно выкладывать. Но если что пойдет не так, пишите в эту тему. Может у меня это "не так" тоже было. В "мануале" ссылки на загрузку всех необходимых компонентов, мануалов Интел, описание "граблей" при установке, коих не так уж мало оказалось. (Установка в манере  "шаг вправо, шаг влево считается "побег". "Спасибо" за это Интел, да еще они при этом свои ошибки в мануалах своих сделали.) В общем, постарался чтобы этот квест с установкой можно было пройти пользуясь копипастом. Сам по нему копипастом несколько раз переставил систему, когда выявлял конфликт встроенки и свободного драйвера nvidia через какую то stolen memory. Кроме ошибки в dmesg это пока никак не проявилось, но все же проще без второй видеокарты все настроить. Особенности установки с двумя видеокартами тоже в "мануал" добавил. Может на других чипсетах это иначе вылезет, у меня чипсет intel 150 и процессор на ядре skylake. 
« Последнее редактирование: 30 Декабрь 2016, 20:46:51 от starky »

Оффлайн jidckii

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Unity, 16.04
    • Просмотр профиля
    • jidckii
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #2 : 21 Март 2017, 17:37:58 »
А интел я так понял предоставляет пакеты только для RPM ?
То, что стоит почитать: http://pub.paradev.ru/books/

Оффлайн starky

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #3 : 21 Март 2017, 21:19:45 »
Да. Причем если до 6 серии процессоров (intel media sdk 2016) можно было применить патчи и собрать под ядро ubuntu, и мне встречались англоязычные ресурсы в сети с описанием успешных установок, то начиная с поддержки поколения 6 (skylake) они не просто поставили уже собранные пакеты rpm, но еще и под конкретное ядро и окружение (зависимости). Плюс еще и продвинутый кодер x265 можно использовать только в платной редакции.  В то время как на windows поддержка осталась на прежнем уровне. Это делает применение технологии intel QSV практически бесполезной для домашнего использования на linux.  Разве что можно собрать на отдельном железе сервер для кодирования, но придется самому разбираться с web-интерфейсом такого сервера, потому что все существующие решения платные и дорогие. Гораздо проще в таком амплуа использовать аппаратную поддержку nvidia, которая несравненно проще "заводится" в  Линукс. Я не понимаю зачем Интел тратить время на разработку аппаратной составляющей которая становится все лучше, и при этом практически "убивать" её подобным подходом к софту. Взяли бы они лучше пример с nvidia. Я повозился с настройками всего этого и разочаровался из-за такой "поддержкии", однозначно предпочел бы настроить nvidia при наличии подходящего железа и не советовал бы вообще рассчитывать при покупке нового процессора на iQSV.(Я кодирую c iQSV в windows благодаря наличию такой поддержки handbrake и созданному на движке handbrake кодировшику vidcoder) Под Линукс используются только декодеры через libva. (это разгружает процессор на 20 процентов для 4K но смысла мало потому что проц и без "аппаратности" все  "тащит")   До тех пор пока подобная ситуация с программным обеспечением под под Линукс имеет место быть со стороны Интел, нечего с этим и заморачиваться. Может многоядерники AMD для кодирования окажутся лучшим выбором. И для серверов тоже. Посмотрим. 
« Последнее редактирование: 21 Март 2017, 21:35:58 от starky »

Оффлайн jidckii

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Unity, 16.04
    • Просмотр профиля
    • jidckii
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #4 : 23 Март 2017, 10:18:49 »
Да я в рабочих целях интересуюсь.
Работаю в телекомпании и каждый день с камер приходит много видео.
Надо параллельно запускать на обсчет ~200 файлов (до 30 ГБ общий размер).
Пересчитывать их в mpeg2video и объединять, и все это автоматом.
Я заскриптовал(https://github.com/jidckii/mover  https://github.com/jidckii/transcoder) все, но обсчет все равно не быстрый на CPU(сейчас у меня 2xE5-2430).
+ накладка на перемещении 30гб, видео сначала от рабочей станции на сервер обсчета, а потом еще и с обсчетчика на сторадж.
На сколько я понял nvidia вообще только h264 считает аппаратно.
Получается QuickSync мне подходит, но вопрос отять таки у меня, на сколько это быстрее ?
То, что стоит почитать: http://pub.paradev.ru/books/

Оффлайн starky

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #5 : 23 Март 2017, 10:48:51 »
Быстрее от 2 до 5 раз в зависимости от контента и качества против процессорной обработки. Есть зависимость от качества исходников и необходимого качества результата. Я не специалист, кодировал в основном с action камеры в FullHD. Насколько я читал серверные CPU быстрее чем домашние под эту задачу. Но опять же какой софт использовать. Если у вас процессоры до 6-го поколения то под них можно все завести на ubuntu server, однако у них аппартное кодирование 4K ограниченное если вообще есть. И с hevc (h265) какие-то траблы вроде тоже не на всех моделях CPU  и надо покупать что-то. А 6 и особенно 7-е поколение кодирует все и 4K аппаратно причем последние и 60 и более Hz и 10 бит цвета и т.д. Зато вопрос на чем заводить? Проще всего на windows server получается или вот как я на пробу поднимал на CentOS и оно работает даже, однако надо самому компилить ffmpeg  и лучше потом еще самому собирать rpm пакет с зависимостями и устанавливать пакетом, потому как потом легко поломать если другие программы ставить. А собрать rpm оказалось не так весело как deb. Но надо учесть что качество аппаратного кодирования уступает двухпроходному процессорному. Не сильно но есть. И nvidia не сильно отстает по скорости хотя по  эффективности конечно заметно если сравнить сколько блоков задействуют видеокарты против встроенного видео но в итоге это лишь обходится большими затратами на электричество и охлаждение. Насчет аппаратного hevc у nvidia не интересовался, может и нет.

Пользователь добавил сообщение 23 Март 2017, 11:48:39:
Вот интересная статья. http://habrahabr.net/?habr/313544/ Там и про много-поточность. Попадалась мне еще и сводная таблица какие функции кодирования-декодирования поддерживается аппаратно в каких процессорах и поколениях Intel. Но что не сильно афишируется, но выясняется при чтении англо-язычной документации от Intel, так это чтобы кодить в HEVC/265 надо использовать компонент, который есть только в платной версии Intel Media SDK. Автор handbrake получил этот компонент непосредственно от Интел в качестве акта "доброй воли" или еще как-то,  коммерсам приходится его покупать.
Вот в этом документе указаны параметры и ограничения кодеков и декодеров для Intel Mеdia SDK 2017
http://kavi.hotar.ru/system/files/private/media_server_studio_sdk_release_notes.pdf
А в этом документы материалы по использованию в примерах ffmpeg
http://kavi.hotar.ru/system/files/private/cloud-computing-quicksync-video-ffmpeg-white-paper.pdf
Вот пример строки кодирования ffmpeg с quick sync в h265
fmpeg -y -framerate 50 -s 1920x1080 -i infile.yuv  -vframes 500 -vcodec hevc_qsv -preset fast
-load_plugins (Plugin GUID) -q (QPI+1)  -i_qfactor 1.0 -i_qoffset -1.0  -b_qfactor 1.0  -b_qoffset 0.0 out00.hevc

сам кодек ffmpeg - hevc_qsv в бесплатной редакции SDK есть, а вот "-load_plugins (Plugin GUID)" - это и есть платный компонент который есть только в коммерческих версиях SDK.

По HEVC QSV вообще подробно рассказано в этом документе. Там и по xeon-ам что то есть.

https://software.intel.com/sites/default/files/managed/b8/d0/intel-hevc-whitepaper.pdf

 

« Последнее редактирование: 23 Март 2017, 11:48:39 от starky »

Оффлайн rsp

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #6 : 18 Май 2017, 21:28:38 »
Огромное спасибо starky!  Твой мануал спас еще одну чью-то жизнь  :) С помощью него получилось установить ffmpeg + qsv на ubuntu 14.04.5 x64.
Правда еще сам не до конца осознал, и некоторые библиотеки ставил слепо, исходя из старых мануалов с SDK 2015 и четвертого поколения Intel Core.
Еще раз большое человеческое спасибо!
Если кому-то надо мануал, то могу выложить! ;)


Оффлайн starky

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #7 : 24 Май 2017, 00:02:47 »
Интересно, как тебе удалось? У тебя наверное проц не 6-го, или 7-го поколения.
А вот кстати, VAAPI уже для скайлейк запили не только декодер, но и энкодер. Правда для skylake только 4 формата, а для kabylake ещё и  VP8 и VP9. но поскольку в основном кодируют в h264, то это уже очень хорошая новость. Надо копнуть в эту сторону. Может Интел потому и не стал для Ubuntu SDK делать, что va-api для этого "пилит". https://wiki.libav.org/Hardware/vaapi

Вот ещё git репозиторий пилят  ffmpeg с libav и va-api https://gist.github.com/Brainiarc7/95c9338a737aa36d9bb2931bed379219

Похоже, я буду пробовать.
« Последнее редактирование: 24 Май 2017, 00:52:22 от starky »

Оффлайн glazkow

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #8 : 26 Ноябрь 2017, 15:42:49 »
Огромное спасибо starky!  Твой мануал спас еще одну чью-то жизнь  :) С помощью него получилось установить ffmpeg + qsv на ubuntu 14.04.5 x64.
Правда еще сам не до конца осознал, и некоторые библиотеки ставил слепо, исходя из старых мануалов с SDK 2015 и четвертого поколения Intel Core.
Еще раз большое человеческое спасибо!
Если кому-то надо мануал, то могу выложить! ;)

Скинь плз мануал если не тяжело.


starky, не пробовали va-api. может тоже мануал скинете если не тяжело. Заранее спасибо.

Оффлайн Pljushevij

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #9 : 30 Декабрь 2017, 13:43:44 »
Огромное спасибо starky!  Твой мануал спас еще одну чью-то жизнь  :) С помощью него получилось установить ffmpeg + qsv на ubuntu 14.04.5 x64.
Правда еще сам не до конца осознал, и некоторые библиотеки ставил слепо, исходя из старых мануалов с SDK 2015 и четвертого поколения Intel Core.
Еще раз большое человеческое спасибо!
Если кому-то надо мануал, то могу выложить! ;)

Скинь плз мануал если не тяжело.


starky, не пробовали va-api. может тоже мануал скинете если не тяжело. Заранее спасибо.

https://habrahabr.ru/company/intel/blog/313544/

Оффлайн oduvanchik_polevoy

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #10 : 16 Январь 2018, 18:54:37 »
Огромное спасибо starky!  Твой мануал спас еще одну чью-то жизнь  :) С помощью него получилось установить ffmpeg + qsv на ubuntu 14.04.5 x64.
Правда еще сам не до конца осознал, и некоторые библиотеки ставил слепо, исходя из старых мануалов с SDK 2015 и четвертого поколения Intel Core.
Еще раз большое человеческое спасибо!
Если кому-то надо мануал, то могу выложить! ;)

А я так и не мог на Дебиан поставить Intel-Media-SDK
Из исходников не ставится https://github.com/Intel-Media-SDK/MediaSDK
С их сайта тоже rpm не конвертируются в deb

Оффлайн Pljushevij

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #11 : 26 Февраль 2018, 21:43:28 »
Ubuntu 16.04.3 Server x64. Зверёк - J3455B-ITX. На этом деле крутиться сервер Torrent-TV -> IPTV (AceProxy). Хочется попробовать возможности транспортирования потока IPTV, но для этого сначала надо настроить ffmpeg с аппаратной поддержкой (GPU).
Так и не нашёл что-то по настройке этого всего дела. Интересует Ubuntu Server (т.е. без иксов) + ffmpeg (Intel Quick Sync Video).
Возможно?

Оффлайн oduvanchik_polevoy

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #12 : 09 Март 2018, 11:54:15 »
Pljushevij, в свежей версии ffmpeg уже все включено, но нужно установить Intel-Media-SDK, но как это сделать на дебианопопдные системы не понятно?

Оффлайн Pljushevij

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: ffmpeg сборка с поддержкой Intel QuickSync
« Ответ #13 : 23 Апрель 2018, 20:16:28 »
Реализовали как бы "из коробки" на Ubuntu 17.10 (в том числе server), но сами пишут, что пока корректно работает только через mpv-плеер. Печалька.
https://wiki.ubuntu.com/IntelQuickSyncVideo

 

Страница сгенерирована за 0.063 секунд. Запросов: 24.