LINUX.ORG.RU

Не хватает use-флага

 , ,


0

1

Какое-то время назад мне понадобилось конвертировать большое количество видео и я задумался как сделать это побыстрее. Решил попробовать декодировать и кодировать средствами видеокарты(по причине наличия довольно мощной карточки от nvidia).

И если с декодированием на карточке, с помощью vdpau, проблем особо не возникло, то с кодированием оказалось не всё так просто.

Для кодирования на видяхе нужно использовать cuda, а если точнее, то отдельный «модуль»?? с названием cuvid. И вот тут я очень долго долбался с ffmpeg. Оказалось что для кодирования нужно было собрать его(ffmpeg) с опциями --enable-cuda и --enable-cuvid, которых в ебилде нет ни под каким соусом.

Я конечно скопировал ебилд локально и добавил их, но ведь это мои локальные решения. Которые ещё надо из ебилда в ебилд носить при смене версий.

Вот и решил поднять вопрос и узнать у знающих людей по какой причине такая вроде необходимая возможность не включена в виде use-флага? И если просто по недосмотру, то куда писать в спортлото?

cast Pinkbyte

★★★★★

Последнее исправление: Loki13 (всего исправлений: 1)

Могли элементарно недоработать, в первый раз что ли, и даже каст Пинкбуте не освобождает тебя от ответственности и обязанности написать об этом в багзиллу.

Bruce_Lee ★★
()

есть EXTRA_ECONF для таких случаев. для этого случая - EXTRA_FFMPEG_CONF

ещё

nvenc : Adds support for NVIDIA Encoder (NVENC) API for hardware accelerated encoding on NVIDIA cards.
opencl : Enable OpenCL support

Deleted
()
Последнее исправление: Lifun (всего исправлений: 2)
Ответ на: комментарий от Deleted

есть EXTRA_ECONF для таких случаев. для этого случая - EXTRA_FFMPEG_CONF

Это спасибо, не знал такие опции. Буду изучать.

nvenc есть, но он не добавляет сборку h264_cuvid который нужен для кодирования на видяхе. я вообще не понял что он делает применительно к ffmpeg.

Loki13 ★★★★★
() автор топика

Скопировать ebuild в локальный оверлей и добавть USE флаг. Это делается ну очень просто. А если еще и взлетит - добавить в апстрим: создать тикет на багзилле Gentoo и приложить свой ebuild.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Так я уже в локальном оверлее так и делаю. Тут я интересуюсь почему такая важная опция ещё не добавлена.

Мне вот выше посоветовали уже вариант с EXTRA_FFMPEG_CONF. Так что тему уже не зря создавал, узнал про полезную возможность.

А поиск привел вот к такому удобному варианту:

portage. добавить опции сборки (комментарий)

Loki13 ★★★★★
() автор топика
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от Bruce_Lee

и даже каст Пинкбуте не освобождает тебя от ответственности и обязанности написать об этом в багзиллу.

Ну вдруг не добавляется потому что нестабильно ещё или из-за того что проприетарная куда нужна.

Loki13 ★★★★★
() автор топика
Последнее исправление: Loki13 (всего исправлений: 1)

хвалёная гибкость генты это когда юзеры бинарных дистрибутивов давно уже кодируют на видеокартах, а гентушники в обломе потому как мантейнеры в ебилд нужного флага не завезли))

anonymous
()
Ответ на: комментарий от Kroz

сложно это. к mpv до сих пор многопоточность не прикрутили

Deleted
()
Ответ на: комментарий от Deleted

а можно это как нибудь к chromium приделать?

Deleted
()
Ответ на: комментарий от Loki13

nvenc есть, но он не добавляет сборку h264_cuvid который нужен для кодирования на видяхе.

NVENC - это тоже кодирование на видяхе.

devl547 ★★★★★
()
Ответ на: комментарий от devl547

NVENC - это тоже кодирование на видяхе.

Ок. Как без cuvid транскодировать видео? Условия: декодирование и кодирование на видяхе.

Мой способ:

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i video.mkv -vcodec h264_nvenc out.mkv

Разница по скорости больше чем в 4 раза при кодировании libx264(40fps) и h264_nvenc(190fps)

Упс. это я не тот вариант скописастил. исправил.

Упс2. У меня же ffmpeg сейчас собран без cuvid. Через пол час приведу замеры.

Loki13 ★★★★★
() автор топика
Последнее исправление: Loki13 (всего исправлений: 2)
Ответ на: комментарий от Loki13

Условия: декодирование и кодирование на видяхе.

Декодировать на PureVideo через vdpau, кодировать через NVENC.

CUDA-ядра вообще нет смысла использовать. Я на системе под онтопиком транскодированием не занимаюсь, но под виндой в MediaCoder оно так и работает, не грея видяху ненужной работой.

devl547 ★★★★★
()

bugs.gentoo.org

правда, ребята там медлительные - но всё равно лучше написать, а параллельно ebuild самому для себя подредактировать

BattleCoder ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.