-
- return checkFFmpegEncoders()
-}
-
-// Optional encoders, if present, can be used to improve transcoding
-// Here we ask ffmpeg if it detects their presence on the system, so that we can later use them
-let supportedOptionalEncoders: Map<string, boolean>
-async function checkFFmpegEncoders (): Promise<Map<string, boolean>> {
- if (supportedOptionalEncoders !== undefined) {
- return supportedOptionalEncoders
- }
-
- const Ffmpeg = require('fluent-ffmpeg')
- const getAvailableEncodersPromise = promisify0(Ffmpeg.getAvailableEncoders)
- const encoders = await getAvailableEncodersPromise()
- const optionalEncoders = [ 'libfdk_aac' ]
- supportedOptionalEncoders = new Map<string, boolean>()
-
- for (const encoder of optionalEncoders) {
- supportedOptionalEncoders.set(encoder, encoders[encoder] !== undefined)
- }
-
- return supportedOptionalEncoders