Re: как определить Интел энкодер QSV
От: DiPaolo Россия  
Дата: 23.08.24 14:30
Оценка: 2 (1) +1
V>Пробовал через FFMPEG (avcodec_find_encoder_by_name("h264_qsv")) — на одном компе определяет, на другом нет.

Именно так и надо. Если доступно и правильно настроено – оно там и будет. Тут зависит от нескольких вещей:
— как и с какими флагами собирался FFmpeg
— что есть в наличии на таргет машине: поколение процессора, драйвера, АПИ для доступа к нему, ОСь

Подробнее советую почитать тут: https://trac.ffmpeg.org/wiki/HWAccelIntro

А здесь – подробнее про нюансы драйверов и АПИ к QSV, через которые работает FFmpeg – https://trac.ffmpeg.org/wiki/Hardware/QuickSync

Ну и можно проверить командой FFmpeg CLI:
ffmpeg -codecs | grep 264

Ну либо без грепа или как там под Виндой.

В скобках будут указаны доступные реализации. Например, у меня:
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb h264_videotoolbox)

Ну и ессно в зависимости от машины и что на ней и как установлено/настроено – будут разные доступные енкодеры.

Upd а кроме как в этой реализации обертки нигде такого названия как h264_qsv и нет https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/qsvenc_h264.c#L193
Патриот здравого смысла
Отредактировано 23.08.2024 14:34 DiPaolo . Предыдущая версия .
Re: как определить Интел энкодер QSV
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.08.24 13:06
Оценка: 2 (1)
Здравствуйте, Vicul, Вы писали:

V>Пробовал через FFMPEG (avcodec_find_encoder_by_name("h264_qsv")) — на одном компе определяет, на другом нет.

V>MS Windows 10, 11.

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

V>Может у Интела что-нибудь есть, небольшое


Вроде что-то есть.
Re[3]: как определить Интел энкодер QSV
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.08.24 13:55
Оценка: 2 (1)
Здравствуйте, Vicul, Вы писали:

V>Если собирать проект на машине с NVIDIA и QSV кодеками, и перенести собранный бинарник на машину, где только QSV в наличии — все определяется. Но если же собирать на машине c одним QSV, эта хрень и выдазит. Хотя для всех машин весь проект скачивается с одного и того же SVN.


Смотрите зависимости при сборке, они явно закладываются на конфигурацию целевой машины. Для Windows это нетипично, это классический униховый костыль.
как определить Интел энкодер QSV
От: Vicul  
Дата: 23.08.24 08:50
Оценка:
Пробовал через FFMPEG (avcodec_find_encoder_by_name("h264_qsv")) — на одном компе определяет, на другом нет.
MS Windows 10, 11. MSVC 2022 version 17.11.1

Если использовать av_hwdevice_ctx_create(), h264_nvenc определяется, h264_qsv — нет

Может у Интела что-нибудь есть, небольшое, чтобы можно было в программу вставить?
Re[2]: как определить Интел энкодер QSV
От: Vicul  
Дата: 23.08.24 13:35
Оценка:
ЕМ>Правильнее всего запрашивать через тот API, через который будете использовать. Если собираетесь использовать через FFMPEG, а он кодека не видит, то что может дать выяснение напрямую?

FFMPEG будет. Тут заметил одну особенность. Если собирать проект на машине с NVIDIA и QSV кодеками, и перенести собранный бинарник на машину, где только QSV в наличии — все определяется. Но если же собирать на машине c одним QSV, эта хрень и выдазит. Хотя для всех машин весь проект скачивается с одного и того же SVN.
Короче есть над чем подумать. На той машине с двумя кодеками я собирал FFMPEG, может чтото там добавилось, что не вошло в SVN

ЕМ>Вроде что-то есть.

За ссылочку спасибо, после разберусь, что там к чему
Re[3]: как определить Интел энкодер QSV
От: Vicul  
Дата: 24.08.24 06:21
Оценка:
V>На той машине с двумя кодеками я собирал FFMPEG, может чтото там добавилось, что не вошло в SVN

Так и есть, на дебаговской сборке были старые длл без Интел СДК. Банальная невнимательность.

Всем спасибо за помощь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.