Андрей Смирнов
Время чтения: ~22 мин.
Просмотров: 1

Повышение производительности мультимедиа приложений с помощью аппаратного ускорения

Использование Intel Media SDK (sample_multi_transcode)

  • Если ваши приложения и решения мультимедиа предназначены для клиентских устройств, используйте пакет Intel Media SDK. Его можно загрузить бесплатно.
  • Если же ваши решения предназначены для встроенных систем, серверов или облачных платформ, доступ к Intel Media SDK можно получить с помощью Intel Media Server Studio. У этого решения есть бесплатный выпуск Community Edition и два платных выпуска: Essentials и Professional (их также можно использовать для ускорения перехода на HEVC и 4K/UHD).
  1. Загрузите Intel Media SDK для целевого устройства.
  2. Загрузите учебные руководства и прочтите их, чтобы понять, как настраивать программное обеспечение с помощью SDK.
  3. Установите Intel Media SDK. Если вы используете Linux, см. руководство по установке для Linux.
  4. Загрузите образец кода SDK, чтобы поэкспериментировать с уже скомпилированными образцами приложений.
  5. Соберите и запустите приложение Video Transcoding: sample_multi_transcode

-hw-u <quality, speed, balanced>Рисунок 5. Примеры характеристик производительности H264 по отношению к целевому использованиюИспользуйте другие программные средства IntelIntel Graphics Performance AnalyzerIntel VTune AmplifierIntel Video Pro AnalyzerIntel Stress Bitstreams and Encoder

Версии

Quick Sync 1.0 (второе поколение Intel Core)

Quick Sync впервые появилась в процессорах Intel начиная с архитектуры Sandy Bridge (более старая архитектура Clarkdale имеет аппаратную поддержку только декодирования видео), при этом отсутствует на малобюджетных CPU Sandy Bridge Pentium и Celeron. Quick sync получила положительные отзывы за скорость работы. Тестирование на сайте Tom’s Hardware показывает, что кодирование 449 МБ видео, длящегося 4 минуты, в формате HD с разрешением 1024×768 занимает 22 секунды. С использованием только программных средств этот процесс занимает 172 секунды. Такое же кодирование занимает 83 и 86 секунд с использованием видеокарт Nvidia GeForce GTX 570 и AMD Radeon HD 6870, соответственно.

Данное поколение Quick Sync поддерживает следующие форматы сжатия видео: H.264/AVC, VC-1 и MPEG-2. Декодер является многопоточным, то есть способен декодировать видео в несколько потоков, в том числе в режиме «картинка в картинке», стерео 3D Blu-ray или MVC. Поддержка Quick Sync уже присутствует в следующих приложениях: ArcSoft MediaConverter, Corel DVD Factory, CyberLink MediaEspresso, Movavi Video Converter, Roxio Creator, Handbrake (ночные сборки) и др. Блоки кодирования и декодирования были помещены в графическое ядро. Ресурсы Quick Sync невозможно использовать в системах с набором логики Intel P67. Платы на этом чипсете отключают встроенную графику, а вместе с этим теряется и доступ к данной технологии. Так что аппаратное ускорение перекодирования видео силами графического процессора Intel возможно лишь в системах, где работает встроенное в Sandy Bridge графическое ядро.

Quick Sync 2.0 (третье поколение Intel Core)

Архитектура Ivy Bridge включает в себя новое поколение Quick Sync. В рамках Intel HD Graphics 4000 технология Quick Sync стала ещё лучше и получила усовершенствованный медиасемплер. В результате обновлённый движок Quick Sync обеспечивает, по сравнению с его прошлой версией, в Sandy Bridge примерно двукратное преимущество в скорости перекодирования в формат H.264. При этом в рамках технологии улучшилось и качество выдаваемого кодеком видео, а также стали поддерживаться сверхвысокие разрешения видео, вплоть до 4096×4096. Если в системе используется внешняя графическая карта, отключающая в общем случае интегрированную графику, использовать Quick Sync невозможно. (Включение Intel Quick Sync возможно и на таких конфигурациях, путём подключения виртуального монитора к встроенному графическому ядру и расширению рабочего стола на него.) Есть ещё одно решение этой проблемы, которое предлагает сторонняя компания LucidLogix, разработавшая технологию графической виртуализации Virtu.

Поддержка операционными системами

Microsoft Windows

Microsoft предоставляет в Windows широкую поддержку Quick Sync на основе драйверов от Intel и неплохую поддержку, как через DirectShow/DirectX, так и через WMF (Windows Media Foundation). Широкий спектр приложений основан на этой базовой поддержке технологии в Windows. Уже Windows Vista и более поздние версии поддерживают Quick Sync Video.

macOS

Apple добавила поддержку Quick Sync начиная с OS X Mountain Lion для: AirPlay, FaceTime, iTunes, Safari, QuickTime X, iMovie, Final Cut Pro X, Motion и Compressor. Поддержка в сторонних программах: MacX Video Converter Pro, DaVinci Resolve, IINA, VLC и в других.

1.3. Использование специальных декодеров, реализующих декодирование на графических процессорах

В состав FFmpeg входят два семейства кодеков, реализующих кодирование и декодирование на графических процессорах.

Одно семейство использует технологию Intel Quick Sync Video (QSV), реализованную на видеопроцессорах, интегрированных в процессоры Intel семейств i3, i5, i7, i9. Подробнее см. . Эти кодеки имеют суффикс . В рассматриваемой сборке FFmpeg есть следующие декодеры: , , , , .

Другое семейство использует технологии NVDEC, NVENC реализованные на платах Nvidia. Декодеры имеют суффикс . В рассматриваемой сборке FFmpeg есть следующие декодеры: , , , , , , , .

После открытия входного потока доступ к декодеру обычно реализуется следующим образом:

Но таким образом можно получить только декодер по умолчанию для данного идентификатора кодека. Для альтернативных декодеров нужно использовать имя декодера примерно таким образом:

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

ffmpeg -c:v h264_qsv -i INPUT ...

2. Измерение скорости декодирования

Для экспериментов по измерению скорости декодирования были выбраны два видеоролика, один закодирован в H264, другой в HEVC(H265). Размер кадра — 3840х2160 (Ultra HD), скорость — 30 к/с. Тестировались стандартные декодеры — , и соответствующие QSV декодеры — , . Стандартные декодеры настраивались в 4х вариантах: по умолчанию, два рабочих потока, четыре рабочих потока, аппаратное ускорение . В наших экспериментах показал лучшие результаты, чем , поэтому последний не участвовал в измерениях скорости декодирования. Для проведения тестов была написана программа которая извлекала пакеты из файла и декодировала их с максимально возможной скоростью, игнорируя метки времени и не выполняя рендеринг или иную обработку. Было два режима этой программы: в первом выполнялось только декодирование, в втором еще производилось конвертирование декодированного кадра в 32-битный формат с использованием библиотеки . (На выходе декодера кадр обычно имеет 12-битный планарный формат или .) Проводилось измерение времени, затраченного программой, и фиксировалось относительное время по отношению к номинальной длительности видеопотока (в процентах). Таким образом, если результат меньше 100%, то у нас есть шанс обработать видеопоток в реальном масштабе времени, если больше, то таких шансов нет. Также с помощью Диспетчера задач фиксировалась примерная загрузка ЦП и графического процессора. Использовалась 64-битная сборка FFmpeg.

Таблица. Измерение скорости декодирования
h264hevc
Config#ВремяCPUGPUВремяCPUGPU
default1752612525
21322818027
threads=2147427442
2794810446
threads=4135604664
260547170
dxva21451472342870
21072835993036
xxxx_qsv1253480253472
2703954704050

Большого обсуждения результаты, наверное, не требуют

Единственно на что стоит обратить внимание — это заметные затраты на преобразование в. И главное, что эти затраты сильно меняются в зависимости от тестовой конфигурации, хотя работа во всех случаях выполнялась очень близкая

Эксперименты проводились также для 32-битной сборки FFmpeg. Результаты довольно близкие, кроме одного случая: декодер в конфигурациях без аппаратного ускорения показал падение производительности в 2-3 раза. Весьма неожиданный результат.

Описанные тесты можно выполнить в командной строке. Надо использовать глобальную опцию и установить нулевой выход. Вот несколько примеров:

ffmpeg -benchmark -i INPUT -an -f null -
ffmpeg -benchmark -threads N -i INPUT -an -f null -
ffmpeg -benchmark -c:v h264_qsv -i INPUT -an -f null -
ffmpeg -benchmark -hwaccel dxva2 -i INPUT -an -f null -
ffmpeg -benchmark -i INPUT -an -pix_fmt bgra -f null -

На выходе будет показан фактический , а параметр покажет во сколько раз он выше номинального. Если не задана опция с ключом или для указано специальное значение , то декодер использует максимально возможное число потоков, загрузка ЦП при этом 100%.

3. Замечания о QSV декодерах

В рассматриваемой сборке FFmpeg есть следующие QSV декодеры: , , , , . Два последних оказались неработоспособными. Декодер выдавал искаженную картинку, а выдавал ошибку при передаче пакета на декодирование. Правда, эти декодеры не особо актуальны, но, все-таки, зачем выкладывать неработоспособные компоненты, не вполне понятно.

К оставшимся декодерам тоже есть претензии. В целом они работают, за исключением одного момента — они некорректно отрабатывают вызов . Ошибки нет, но после этого вызова позиционирование работает некорректно.

Заводим аппаратное ускорение в Хакинтош для Final Cut Pro X

Для начала, стоит сказать, что статья рассчитана для тех кто уже знаком как ставить Хакинтош и что для этого надо.

Kexts и загрузчик

  1. Для начал установите новую версию загрузчика Clover
  2. Обновите или установите следующие Kext в раздел EFI/CLOVER/kexts/Other
  3. или
  4. , вам необходимо скопировать два FakePCIID.kext и FakePCIID_Intel_HD_Graphics.kext
  5. После установки всех kexts перезагружаем компьютер

config.plist

Переходим к внесению изменений в файл config.plist, для этого вам понадобиться Clover Configurator.

  1. Раздел ACPI, DSDT Patches
    1. Rename GFX0 to IGPU,  Find* : 47465830   Replace : 49475055
    2. COPR_MATH, Find* : 434F5052  Replace* : 4D415448
    3. PEG0_POP2 Find* : 50454730  Replace : 50305032
    4. PEGP_GFX0 Find* : 50454750   Replace : 47465830
    5. change EHC1 to EH01 Find* : 45484331   Replace : 45483031
    6. change EHC2 to EH02 Find* : 45484332    Replace : 45483032  
  2. Раздел Boot, добавляем аргумент в загрузку  или 
  3. Раздел Graphics, выбираем из списка или принудительно указываем ig-platform-idв зависимости от вашего процессора (имеется поколение, Kaby Lake Sky Lake)
  4. Сохраняем изменения и выключаем компьютер

Quick Start 17.10 & 18.04

Ubuntu 17.10 (beta 2) introduces out-of-the box support for video acceleration that’s much simpler than previous Ubuntu releases.

  1. If you are installing Ubuntu from scratch, make sure you connect to wifi/network during the setup. Assuming you have internet access while installing Ubuntu then simply ticking the «Install third-party software» option will install most of what you need.
  2. If you already have Ubuntu installed or failed to get third-party software installed because you weren’t connected to the internet during setup then all you need to do to catch up is:
     $ sudo apt install ubuntu-restricted-addons
  3. You now have working hardware accelerated video playback in totem («Videos» app) only. You can verify this by installing the vainfo tool:

     $ sudo apt install vainfo
     $ vainfo
  4. However totem has a few performance problems that are still yet to be fixed so for smoother playback and lower power usage we recommend mpv instead, which in Ubuntu 17.10 and later is configured to provide working hardware acceleration out-of-the-box:

     $ sudo apt install mpv
     $ mpv myvideo.mp4

    Unfortunately we cannot recommend gnome-mpv right now. Only mpv.

Аппаратное декодирование и кодирование

Предварительная поддержка аппаратного декодирования с помощью Quick Sync форматов H.264, MPEG2, и VC-1 доступна с использованием фильтра ffdshow, выпущенным Eric Gur, инженером компании Intel.

Аппаратная поддержка кодирования медиаданных, адаптированного для Quick Sync, широко доступна. Примерами такого программного обеспечения с поддержкой Quick Sync во время процесса кодирования являются Badaboom Media Converter, Cyberlink PowerDirector, MediaEspresso, ArcSoft MediaConverter, XSplit Broadcaster, XSplit Gamecaster (все коммерческие продукты), и проекты подобные HandBrake (только сборки для Windows), VidCoder, Open Broadcaster Software или программы для работы с видео из пакета Adobe CC2018.

Installing the Media SDK on Linux

Install with open source MSDK stack

Install MSDK and iHD driver:

  • Follow the guide of ​https://github.com/Intel-Media-SDK/MediaSDK to build from source code.
  • Starting from Ubuntu 19.04, it is possible to install via apt (see: ​https://github.com/Intel-Media-SDK/MediaSDK/wiki/Intel-media-stack-on-Ubuntu):
sudo apt-get install libva-dev libmfx-dev

Install with MediaServerStudio?

Note that the kernel patches and modified system libraries are all required. It is recommended not to install this on any machine also used for other purposes, as it does not use normal distribution mechanisms and may break / be broken by other packages unexpectedly.

Build machine:

Build and install the packaged dispatcher: . (It is also possible to extract the necessary files from the Media SDK installation as described in the install manual — this is not recommended, just use the package instead.)

Target machine:

  • Ensure the target machine has a supported CPU. Current versions only support gen8/gen9 graphics on expensive CPUs («Xeon»/»Core i» branding). The same graphics cores on cheaper CPUs («Pentium»/»Celeron»/»Atom» branding) are explicitly disabled, presumably for commercial reasons.
  • Get a clean version of the supported kernel version (currently 4.4: <​https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz>) and apply the supplied patches. Build and install.
  • Build and install the supplied libva and libdrm trees.
  • Run the Media SDK install script to install the proprietary components.
  • Reboot.

Сравнение возможностей экрана и звука

ВозможностьОписаниеСемейство процессоров Intel Core 5-го поколения (Intel Iris Graphics 6100, Intel HD Graphics 5500/5600) Intel Iris Pro Graphics 6200 (середина 2015 г.) Процессор Intel Core M (Intel HD Graphics 5300) Семейство процессоров Intel Core 4-го поколения (Intel Iris Pro Graphics 5200/Intel Iris Graphics 5100, Intel HD Graphics 5000/4600/4400/4200)
Максимальное разрешение экрана Благодаря более высокому разрешению можно отображать изображения с более высокой детализацией. DisplayPort* 1.2/eDP*
Процессоры серии U: 3840 x 2160 при 60 Гц
Процессоры серии H: 4096 x 2304 при 60 Гц
HDMI*: 4096 x 2304, 3840 x 2160 при 24 Гц/24bpp
DVI: 1920 x 1200 при 60 Гц
DisplayPort* 1.2/eDP*
Процессоры серии Y: 2560 x 1600 при 60 Гц, 3840 x 2160 при 60 Гц (один экран с разрешением 3840 x 2160 при 60 Гц, второй экран с разрешением 2560 x 1600 при 60 Гц, без третьего экрана, требуется дополнительное охлаждение)
HDMI*: 4096 x 2304, 3840 x 2160 при 24 Гц/24bpp
DVI: 1920 x 1200 при 60 Гц
DisplayPort* 1.2/eDP*
Процессоры серии H: 3840 x 2160 при 60 Гц (Ultra HD)
Процессоры серии U: 3200 x 2000 при 60 Гц, 3840 x 2160 при 30 Гц
Процессоры серии Y: 2560 x 1600 при 60 Гц
HDMI*: 4096 x 2304, 3840 x 2160 при 24 Гц/24bpp
DVI: 1920 x 1200 при 60 Гц
Поддержка экранов
Независимые цифровые экраны Можно подключать к ПК несколько мониторов. Да (поддерживается одновременно
до 3 экранов)
3 (поддерживается одновременно
до 3 экранов)
3 (поддерживается одновременно
до 3 экранов)
HDMI* с HDCP Удобный для пользователей однокабельный разъем, поддерживающий передачу высококачественного несжатого цифрового видео и звука. Версия 1.4
(3-D, Deep Color, расширенная поддержка звука, автоматическая синхронизация губ, разрешение Ultra HD)
Версия 1.4
(3-D, Deep Color, расширенная поддержка звука, автоматическая синхронизация губ, разрешение Ultra HD)
Версия 1.4
(3-D, Deep Color, расширенная поддержка звука, автоматическая синхронизация губ)
DisplayPort* с HDCP Масштабируемый, эффективный и удобный интерфейс для подключения мониторов к ПК. Версия 1.2
(со звуком)
Версия 1.2
(со звуком)
Версия 1.2
(со звуком)
Встроенный интерфейс DisplayPort Удобный и эффективный интерфейс для подключения мониторов к ноутбукам. Да
(eDP 1.2 на
настольных ПК и eDP 1.3 на мобильных устройствах)
Да
(eDP 1.2 на
настольных ПК и eDP 1.3 на мобильных устройствах)
Да
(eDP 1.2 на
настольных ПК и eDP 1.3 на мобильных устройствах)
DVI с HDCP Цифровой видеоинтерфейс с наивысшим качеством изображения для цифровых экранов, таких как ЖК-мониторы и цифровые проекторы. Да Да Да
VGA Аналоговые интерфейсы для подключения экранов, такие как VGA, обеспечивают базовое качество изображения при подключении к мониторам с ЖК-экраном или ЭЛТ, а также при подключении к телевизорам. Да Да Да
Поддержка передачи звука
Dolby* TrueHD, DTS* Premium Suite* Высококачественный звук, поддерживаемый на значительном количестве
выпущенных дисков Blu-ray*.
Да Да Да

Linux

A whole open source media stack is provided with much wider HW platforms and Linux distributions supported.
(You can also download the installation binary Media Server Studio from ​https://software.intel.com/en-us/intel-media-server-studio/.
However, only limited HW platforms and Linux distributions are supported by Media Server Studio.)

Intel open source media stack

Project Name Supported Gen Graphics Open Source Repo
MSDK gen8+ ​https://github.com/Intel-Media-SDK/MediaSDK
Libva gen5+ ​https://github.com/intel/libva
i965 driver gen5 ~ gen9.5 ​https://github.com/intel/intel-vaapi-driver
iHD driver gen8+ ​https://github.com/intel/media-driver

VAAPI VS libmfx

VAAPI / i965

  • Packaged as standard in most Linux distributions.
  • Runs on all usable hardware, including older and cheaper devices.
  • Wider codec support.
  • Common API for applications which may also use AMD / Nvidia hardware with Mesa.
  • Interopable with standard APIs (EGL/OpenGL, OpenCL).

libmfx / iHD

  • May give better encode quality in some cases (such as look_ahead).
  • May give higher encode throughput in some cases (such as MFE, particularly on Iris graphics).
  • Common API for applications which may also run on Windows.
  • Interoperable with Intel OpenCL implementation.

The iHD libva driver also provides similar VAAPI functionality as the opensource i965 driver. But; HEVC encoding is for evaluation purposes only and will limit the encode to a mere 1000 frames.

Ref: ​https://gist.github.com/SeanMollet/0eed16e80630ab67532890a9d42132af

Аппаратное декодирование и кодирование

Предварительная поддержка аппаратного декодирования с помощью Quick Sync форматов H.264, MPEG2, и VC-1 доступна с использованием фильтра ffdshow, выпущенным Eric Gur, инженером компании Intel.

Аппаратная поддержка кодирования медиаданных, адаптированного для Quick Sync, широко доступна. Примерами такого программного обеспечения с поддержкой Quick Sync во время процесса кодирования являются Badaboom Media Converter, Cyberlink PowerDirector, MediaEspresso, ArcSoft MediaConverter, XSplit Broadcaster, XSplit Gamecaster (все коммерческие продукты), и проекты подобные HandBrake (только сборки для Windows), VidCoder, Open Broadcaster Software или программы для работы с видео из пакета Adobe CC2018.

Full Examples

Decode-only

Check supported qsv decoder list

ffmpeg -decoders|grep qsv

H264 video decode and download as yuv420p raw file

ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf hwdownload,format=nv12 -pix_fmt yuv420p output.yuv

H264 video decode and display with sdl

ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -vf hwdownload,format=nv12 -pix_fmt yuv420p -f sdl -

H264 video decode without output (this can be used as a crude benchmark of the decoder)

ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -f null -

HEVC 10bit video decode and download as p010le yuv file

ffmpeg -hwaccel qsv -c:v hevc_qsv -load_plugin hevc_hw -i input.mp4 -vf hwdownload,format=p010 -pix_fmt p010le output.yuv

Encode-only

Check supported qsv decoder list

ffmpeg -encoders|grep qsv

Check private option list of h264 encoder

ffmpeg -h encoder=h264_qsv

Encode a 1080p raw yuv input as H264 with 5Mbps using VBR mode

ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -i input.yuv -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M output.mp4

Encode a 1080p p010le raw yuv input as HEVC main10 profile (supported since Kaby Lake platform)

ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -v verbose -f rawvideo -video_size 1920x1080 -pix_fmt p010le -i input.yuv -an \
-vf 'hwupload=extra_hw_frames=64,format=qsv' -c:v hevc_qsv -profile:v main10 output.mp4

Transcode

Software decode + h264 qsv encode with 5Mbps using CBR mode

ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -i input.mp4 -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M -maxrate 5M output.mp4

Software decode + h264 qsv encode with CQP mode

ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -i input.mp4 -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -q 25 output.mp4

H264 qsv decode + h264 qsv encode with 5Mbps using VBR && Look_ahead mode (look_ahead may not be supported on some platforms)

ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv -b:v 5M -look_ahead 1 output.mp4

As previous, but use ICQ mode (which is similar to crf mode of x264)

ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv -global_quality 25 output.mp4

As previous, but use ICQ && Look_ahead mode

ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv -global_quality 25 -look_ahead 1 output.mp4

Hevc qsv decode + qsv scaling to 1080p@60fps + h264 qsv encode

ffmpeg -hwaccel qsv -c:v hevc_qsv -i input.mp4 -vf 'vpp_qsv=framerate=60,scale_qsv=w=1920:h=1080' -c:v h264_qsv output.mp4

Hevc qsv decode + qsv scaling to 1080p@60fps and color space convert from nv12 to rgb32 + output as sdl

ffmpeg -hwaccel qsv -c:v hevc_qsv -i input.mp4 -vf 'vpp_qsv=framerate=60,scale_qsv=w=1920:h=1080:format=rgb32,hwdownload,format=rgb32' -f sdl -

1:N transcoding: (MFE will be enabled by default if MSDK can support it)

   ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 \
        -filter_complex "split=2; scale_qsv=1280:720;scale_qsv=960:540" \
        -map  -c:v h264_qsv -b:v 3200k 3200a.mp4 \
        -map  -c:v h264_qsv -b:v 1750k 1750a.264

M:N transcoding

   ffmpeg -hwaccel qsv -c:v h264_qsv -i input1.mp4 -hwaccel qsv -c:v h264_qsv -i input2.mp4 \
     -filter_complex 'split=2,split=2' \
     -map '' -c:v h264_qsv output1.mp4 -map '' -c:v h264_qsv output2.mp4 \
     -map '' -c:v h264_qsv output3.mp4 -map '' -c:v h264_qsv output4.mp4

-qsv_device is an qsv customized option can be used to specify a hardware device and avoid the default device initialization failure when multiple devices usable (eg: an Intel integrated GPU and an AMD/Nvidia discrete graphics card).
One example on Linux (more details please see ​https://trac.ffmpeg.org/ticket/7649)

fmpeg -hwaccel qsv -qsv_device /dev/dri/renderD128 -c:v h264_qsv -i input.mp4 -c:v h264_qsv output.mp4

Hybrid transcode

It is also possible to use «vaapi decode + vaapi scaling + qsv encode» (available on Linux platform)

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -i input.mp4 -vf 'scale_vaapi=1280:720,hwmap=derive_device=qsv,format=qsv' -c:v h264_qsv output.mp4

Or use «dxva decode + qsv scaling + qsv encode» (available on Windows)

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -i input.mp4 -vf 'hwmap=derive_device=qsv,format=qsv,scale_qsv=w=1280:h=720' -c:v h264_qsv output.mp4

Поддержка операционной системы

Ядро Quick Sync Video SIP должно поддерживаться драйвером устройства . Драйвер устройства предоставляет один или несколько интерфейсов , например VDPAU , Video Acceleration API (VA API) или DXVA для декодирования видео и OpenMAX IL или VA API для кодирования видео. Затем один из этих интерфейсов используется программным обеспечением конечного пользователя, например медиаплеером VLC или GStreamer , для доступа к оборудованию Quick Sync Video и его использования.

Linux

Доступна поддержка Quick Sync с помощью Intel Media SDK в Linux , а с ноября 2013 года она поддерживается Wowza Streaming Engine (ранее известный как Wowza Media Server) для транскодирования медиапотоков с использованием надстройки транскодера. Quick Sync также поддерживается VA API как для кодирования, так и для декодирования с помощью ffmpeg в качестве примера.

Windows

Microsoft предлагает поддержку Quick Sync в Windows (в Windows Vista и более поздних версиях) на основе программного обеспечения драйверов от Intel и поддержки как через DirectShow / DirectX, так и через WMF (Windows Media Foundation). На этой базовой поддержке технологии в Windows основан широкий спектр приложений.

macOS

Apple добавила поддержку Quick Sync в OS X Mountain Lion для AirPlay , FaceTime , iTunes , Safari , QuickTime X , iMovie , Final Cut Pro X , Motion и Compressor . Стороннее программное обеспечение включает Adobe Premiere Pro , Adobe Media Encoder, DaVinci Resolve и другие.

Поддержка операционными системами

Microsoft Windows

Microsoft предоставляет в Windows широкую поддержку Quick Sync на основе драйверов от Intel и неплохую поддержку, как через DirectShow/DirectX, так и через WMF (Windows Media Foundation). Широкий спектр приложений основан на этой базовой поддержке технологии в Windows. Уже Windows Vista и более поздние версии поддерживают Quick Sync Video.

macOS

Apple добавила поддержку Quick Sync начиная с OS X Mountain Lion для: AirPlay, FaceTime, iTunes, Safari, QuickTime X, iMovie, Final Cut Pro X, Motion и Compressor. Поддержка в сторонних программах: MacX Video Converter Pro, DaVinci Resolve, IINA, VLC и в других.

* Windows 7 and 8 users

You can activate the Intel Quick Sync Video by adding the display device

Screen resolution

DetectAnother display not detectedIntel(R) HD GraphicsTry to connect anyway on: VGAIntel(R) HD Graphics

Extend these displaysOK

HEVC (Intel Quick Sync video)H.264 (Intel Quick Sync video)View the comparison of video codecs of Bandicam

  •  1   VBR (Variable bitrate) — Quality-based: VBR allows a higher bitrate for faster scenes and a lower bitrate for slower scenes, as a result, the recorded video size can be made smaller. (Recommended)
  •  2   CBR (Constant Bitrate) — Bitrate-based: CBR always uses the same bitrate, as a result, you can predict the video file size (But, the recorded video size might be larger.)
  •  3   Keyframe interval: If you choose «150» as the Keyframe interval, keyframes will be created every 150 frames.
  •  4   FourCC code: To play the recorded video on media players, choose «H264«. To edit the recorded video with Sony Vegas, Adobe Premiere with the AVI container, choose «X264«. See more

Дополнительные ресурсы

  1. Установите и запустите Intel Media SDK в Windows
  2. FFMPEG.ORG
  3. Интеграция Intel Media SDK с FFMPEG для операций мультиплексирования, демультиплексирования, кодирования и декодирования звука
  4. Учебные руководства по Intel Media SDK для клиентов и серверов
  5. Intel Graphics Performance Analyzers
  6. Intel VTune Amplifier
  7. Intel Media Server Studio
  8. Ускорение приложений на основе FFmpeg с помощью Intel Quick Sync Video
  9. Intel QuickSync Video и FFmpeg*
  10. Intel QuickSync Video и FFmpeg: установка и проверка
  11. Доступ к Intel Media Server Studio для кодеков Linux с помощью FFmpeg
  12. Значение кодека HEVC (H.265)

Установка драйвера видеокарт

Для этого в диспетчере устройств, кликаем правой мышью на встроенном видеоадаптере и выбираем в меню «Обновить драйверы…».

Если драйвер автоматически не установится, то устанавливаем драйвера с диска или скачиваем драйвер на официальном сайте материнской платы или сайте Intel.

ВАЖНО!!! Бывает, что в Edius галочка «use Hardware Encoder» стоит, но просчет по времени идет долго, как и без неё. То есть Intel Quicksync не работает

Такое происходит из-за драйвера видеокарты. Помогает установка драйвера другой версии, как правило более ранней. В Edius с каждым обновлением добавляют поддержку новых устройств и драйверов, но не всегда успевают. Например, купив современную (на тот момент) материнскую плату Gigabyte GA-Z170 и установив самый последний драйвер версии 4352 обнаружили, что Quicksync не работает, хотя галочка «use Hardware Encoder» стоит. Помогла установка более старой версии драйвера 4300, все заработало. На официальном сайте Intel есть архив драйверов и можно скачать любые версии. Попробуйте подобрать подходящий драйвер методом перебора, либо спросите у коллег какой драйвер подойдет для вашего чипсета.
Постоянно выходят обновления для Edius, поэтому возможно уже будет работать и с более новыми версиями драйверов. Однако до сих пор, драйвер 4300 является самым рабочим.

С установкой подходящего по версии драйвера, могут быть проблемы у пользователей Windows 10, где по умолчанию включено автоматическое обновление драйверов. Что бы установить нужный драйвер, обновление необходимо отключить. Для этого нужно:
— Кликнуть правой кнопкой мыши по «Пуск», выбрать пункт контекстного меню «Система», затем в разделе «Имя компьютера, имя домена и параметры рабочей группы» нажмите «Изменить параметры». На вкладке «Оборудование» нажмите «Параметры установки устройств».
— Через правый клик по пуску зайдите в «Панель управления» — «Устройства и принтеры» и кликните правой кнопкой мыши по вашему компьютеру в списке устройств. Выберите пункт «Параметры установки устройств».
— В параметрах установки вы увидите единственный запрос «Скачивать автоматически приложения производителя и настраиваемые значки, доступные для ваших устройств?». Выберите пункт «Нет» и сохраните настройки. В дальнейшем вы не будете получать новые драйвера автоматически из центра обновления Windows 10.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации