/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/ffmpeg/encode/default.go
39 строк
1 KB
Michael Mayer
NVIDIA: Refactor ffmpeg.DefaultAvcEncoder() function
30 сен 2025, 23:51
30 сен 2025, 23:51
9315e87
Код
Авторство
О чём код?
package encode import ( "os" "strings" "github.com/photoprism/photoprism/pkg/fs" "github.com/photoprism/photoprism/pkg/txt" ) // defaultAvcEncoder is the default FFmpeg AVC encoder if it has already been determined. var defaultAvcEncoder = Encoder("") // DefaultAvcEncoder determines and returns the default FFmpeg AVC encoder type: func DefaultAvcEncoder() Encoder { if defaultAvcEncoder != "" { return defaultAvcEncoder } // See: https://docs.photoprism.app/getting-started/config-options/#docker-image init := os.Getenv("PHOTOPRISM_INIT") // See: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/docker-specialized.html dCap := os.Getenv("NVIDIA_DRIVER_CAPABILITIES") vDev := os.Getenv("NVIDIA_VISIBLE_DEVICES") // Check if a GPU is shared through the NVIDIA Container Toolkit. switch { case fs.DeviceExists("/dev/nvidia0") && !strings.Contains(init, "ffmpeg") && (dCap == "video" || dCap == "all") && (txt.IsUInt(vDev) || vDev == "all"): // Enable Nvidia AVC encoder. defaultAvcEncoder = NvidiaAvc default: // Use AVC software encoder. defaultAvcEncoder = SoftwareAvc } return defaultAvcEncoder }