Привет! Для openSUSE существует репозиторий CUDA: https://developer.nvidia.com/cuda-downloads
На локалхосте проблем нет: 1). Установил CUDA. 2). Скомпилировал свою прогу.
А что насчёт OBS? Можно ли как-то добавить туда RPM-ки по ссылке выше? Импортировать или сделать SPEC-файл, который тупо перепакует официальные пакеты?
Какую именно прогу я хочу пересборать с поддержкой CUDA, я напишу в первом сообщении темы.
Задействовать CUDA при сборке пакета
Модератор: Модераторы разделов
Задействовать CUDA при сборке пакета
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
Re: Задействовать CUDA при сборке пакета
CUDA может понадобиться например для ffmpeg. По ссылке - официальная документация NVIDIA, в которой разъяснена работа с ffmpeg, который собран со следующими параметрами:
Первый параметр не зависит от CUDA, он зависит только от header-файлов из nvenc_5.0.1_sdk.zip + библиотеки libnvidia-encode.so.1, появившейся в драйвере 340.xx и ставшей доступной для использования в 346.xx.
Второй параметр зависит от CUDA: разработчики разделили реализацию NVENC в ffmpeg на часть без CUDA и часть с ней. Часть с CUDA - маленькая и опциональная: в то время как параметр "nvenc" позволяет записывать видео с экрана, сжимать файл с несжатым видео, и стримить в онлайн (99% моих потребностей), то параметр "nvresize" оказался необходим для команды ниже:
Это команда обрезки по размеру картинки. Она прекрасно работает с libx264, но для аппаратного кодирования нужна та самая опциональная часть, зависящая от CUDA.
Код: Выделить всё
--enable-nvenc --enable-nvresize
Первый параметр не зависит от CUDA, он зависит только от header-файлов из nvenc_5.0.1_sdk.zip + библиотеки libnvidia-encode.so.1, появившейся в драйвере 340.xx и ставшей доступной для использования в 346.xx.
Второй параметр зависит от CUDA: разработчики разделили реализацию NVENC в ffmpeg на часть без CUDA и часть с ней. Часть с CUDA - маленькая и опциональная: в то время как параметр "nvenc" позволяет записывать видео с экрана, сжимать файл с несжатым видео, и стримить в онлайн (99% моих потребностей), то параметр "nvresize" оказался необходим для команды ниже:
Код: Выделить всё
ffmpeg -i captured_video.mkv -acodec copy -vcodec nvenc -preset hq -tune film -filter:v "crop=1280:720:316:50" cropped_video.mkv
Это команда обрезки по размеру картинки. Она прекрасно работает с libx264, но для аппаратного кодирования нужна та самая опциональная часть, зависящая от CUDA.
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Задействовать CUDA при сборке пакета
Нет. Правила пользования сервисом запрещают сборку проприетарных пакетов, а также пакетов, подпадающих под действие патентов, в том числе x264 и ffmpeg (за исключением урезанных версий).
https://en.opensuse.org/openSUSE:Build_Serv...ation_blacklist
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Задействовать CUDA при сборке пакета
В качестве плацдарма для сборки ffmpeg, я решил использовать уже имеющийся у меня репозиторий. Когда-то я создавал его, чтобы пересобрать несколько пакетов (VLC, MPlayer, Audacity) с нестандартными параметрами, которых не включили даже в Packman! И ffmpeg там уже лежит как зависимость (скрыт публикации, потому что от Packman-овского он ничем не отличается).
Три шага:
1). Добавить драйвер NVIDIA в репозиторий (или выдрать из него отдельный файл libnvidia-encode.so.1). Готовые пакеты с драйвером есть, например, здесь: ftp://download.nvidia.com/opensuse/
2). Создать "с нуля" пакет с заголовочными файлами из NVENC SDK.
3). Добавить пакеты с CUDA (в принципе, для сборки ffmpeg хватает заголовочного файла cuda.h, который и так есть в драйвере. Поэтому третий шаг может и не понадобиться. Но всё равно надо научиться добавлять CUDA в OBS - для других пакетов)
4). В случае успеха, закоммитить в Packman - пусть у всех будет nvenc! В связке с obs-studio (это такая программа для записи видео с экрана) вообще огонь!
Bizdelnick, спасибо за разъяснение! А я могу собрать проприетарный пакет и скрыть его? Не публиковать в общий доступ, а только для себя?
Три шага:
1). Добавить драйвер NVIDIA в репозиторий (или выдрать из него отдельный файл libnvidia-encode.so.1). Готовые пакеты с драйвером есть, например, здесь: ftp://download.nvidia.com/opensuse/
2). Создать "с нуля" пакет с заголовочными файлами из NVENC SDK.
3). Добавить пакеты с CUDA (в принципе, для сборки ffmpeg хватает заголовочного файла cuda.h, который и так есть в драйвере. Поэтому третий шаг может и не понадобиться. Но всё равно надо научиться добавлять CUDA в OBS - для других пакетов)
4). В случае успеха, закоммитить в Packman - пусть у всех будет nvenc! В связке с obs-studio (это такая программа для записи видео с экрана) вообще огонь!
Bizdelnick, спасибо за разъяснение! А я могу собрать проприетарный пакет и скрыть его? Не публиковать в общий доступ, а только для себя?
А йа Ктулху! А йа - Медве-ед! А где Путин? Путина не-ет! Если встретишь - зохавай моск! А вернёшься - скажи ПРЕВЕД! Превед, Ктулху! Превед, Медвед!
- Bizdelnick
- Модератор
- Сообщения: 20795
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Задействовать CUDA при сборке пакета
Я бы не нарывался на немилость админов OBS, а собирал всё локально osc build.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали: