diff --git a/classes/AWSPipeline.html b/classes/AWSPipeline.html index 2273b25..ae63a36 100644 --- a/classes/AWSPipeline.html +++ b/classes/AWSPipeline.html @@ -1 +1 @@ -AWSPipeline | @eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • AWSPipeline

Implements

Index

Constructors

Properties

ecs: ECSClient
mediaConvert: MediaConvertClient
s3: S3Client
MAX_WAIT_TIME: 28800 = 28800

Methods

  • analyzeQuality(reference: string, distorted: string, output: string, model: QualityAnalysisModel): Promise<string>
  • fileExists(bucket: string, key: string): Promise<boolean>
  • stringReplacement(input: string, search: string, replacement: string): string
  • transcode(input: string, targetResolution: Resolution, targetBitrate: number, output: string, variables?: Record<string, string>): Promise<string>
  • Parameters

    • input: string
    • targetResolution: Resolution
    • targetBitrate: number
    • output: string
    • Optional variables: Record<string, string>

    Returns Promise<string>

  • uploadIfNeeded(filename: string, bucket: string, targetDir: string, targetFilename?: string): Promise<string>
  • uploadToS3(localFilename: string, targetBucket: string, targetFilename: string): Promise<void>
  • waitForObjectInS3(S3Bucket: string, S3Key: string): Promise<boolean>

Generated using TypeDoc

\ No newline at end of file +AWSPipeline | @eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • AWSPipeline

Implements

Index

Constructors

Properties

ecs: ECSClient
mediaConvert: MediaConvertClient
s3: S3Client
MAX_WAIT_TIME: 28800 = 28800

Methods

  • analyzeQuality(reference: string, distorted: string, output: string, model: QualityAnalysisModel): Promise<string>
  • fileExists(bucket: string, key: string): Promise<boolean>
  • stringReplacement(input: string, search: string, replacement: string): string
  • transcode(input: string, targetResolution: Resolution, targetBitrate: number, output: string, variables?: Record<string, string>): Promise<string>
  • Parameters

    • input: string
    • targetResolution: Resolution
    • targetBitrate: number
    • output: string
    • Optional variables: Record<string, string>

    Returns Promise<string>

  • uploadIfNeeded(filename: string, bucket: string, targetDir: string, targetFilename?: string): Promise<string>
  • uploadToS3(localFilename: string, targetBucket: string, targetFilename: string): Promise<void>
  • waitForObjectInS3(S3Bucket: string, S3Key: string): Promise<boolean>

Generated using TypeDoc

\ No newline at end of file diff --git a/classes/LocalPipeline.html b/classes/LocalPipeline.html index 148015c..1fca3df 100644 --- a/classes/LocalPipeline.html +++ b/classes/LocalPipeline.html @@ -1 +1 @@ -LocalPipeline | @eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class LocalPipeline

Hierarchy

  • LocalPipeline

Implements

Index

Constructors

Properties

Methods

  • analyzeQuality(reference: string, distorted: string, output: string, model: QualityAnalysisModel): Promise<string>
  • transcode(input: string, targetResolution: Resolution, targetBitrate: number, output: string, variables?: Record<string, string>): Promise<string>
  • Parameters

    • input: string
    • targetResolution: Resolution
    • targetBitrate: number
    • output: string
    • Optional variables: Record<string, string>

    Returns Promise<string>

Generated using TypeDoc

\ No newline at end of file +LocalPipeline | @eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class LocalPipeline

Hierarchy

  • LocalPipeline

Implements

Index

Constructors

Properties

Methods

  • analyzeQuality(reference: string, distorted: string, output: string, model: QualityAnalysisModel): Promise<string>
  • transcode(input: string, targetResolution: Resolution, targetBitrate: number, output: string, variables?: Record<string, string>): Promise<string>
  • Parameters

    • input: string
    • targetResolution: Resolution
    • targetBitrate: number
    • output: string
    • Optional variables: Record<string, string>

    Returns Promise<string>

Generated using TypeDoc

\ No newline at end of file diff --git a/classes/Pipeline.html b/classes/Pipeline.html index c5aa85e..7acf183 100644 --- a/classes/Pipeline.html +++ b/classes/Pipeline.html @@ -1,3 +1,3 @@ Pipeline | @eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Pipeline Abstract

Abstract class for a pipeline which can be used for transcoding and analysis.

-

Hierarchy

  • Pipeline

Implemented by

Index

Constructors

Methods

  • analyzeQuality(reference: string, distorted: string, output: string, model: QualityAnalysisModel): Promise<string>
  • transcode(input: string, targetResolution: Resolution, targetBitrate: number, output: string, variables?: Record<string, string>): Promise<string>
  • Parameters

    • input: string
    • targetResolution: Resolution
    • targetBitrate: number
    • output: string
    • Optional variables: Record<string, string>

    Returns Promise<string>

Generated using TypeDoc

\ No newline at end of file +

Hierarchy

Implemented by

Index

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/enums/QualityAnalysisModel.html b/enums/QualityAnalysisModel.html index f9e08ce..ed358e6 100644 --- a/enums/QualityAnalysisModel.html +++ b/enums/QualityAnalysisModel.html @@ -1,3 +1,3 @@ QualityAnalysisModel | @eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration QualityAnalysisModel

An enum representing the 3 supported quality analysis models by VMAF.

-

Index

Enumeration members

Enumeration members

HD = 1
PhoneHD = 0
UHD = 2

Generated using TypeDoc

\ No newline at end of file +

Index

Enumeration members

Enumeration members

HD = 1
PhoneHD = 0
UHD = 2

Generated using TypeDoc

\ No newline at end of file diff --git a/modules.html b/modules.html index 81d72d7..1aea263 100644 --- a/modules.html +++ b/modules.html @@ -1,4 +1,4 @@ -@eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

@eyevinn/autovmaf

Index

Type aliases

AWSPipelineConfiguration: { ecsCluster: string; ecsContainerName: string; ecsSecurityGroup: string; ecsSubnet: string; ecsTaskDefinition: string; inputBucket: string; mediaConvertEndpoint: string; mediaConvertRole: string; mediaConvertSettings: any; outputBucket: string }

Type declaration

  • ecsCluster: string
  • ecsContainerName: string
  • ecsSecurityGroup: string
  • ecsSubnet: string
  • ecsTaskDefinition: string
  • inputBucket: string
  • mediaConvertEndpoint: string
  • mediaConvertRole: string
  • mediaConvertSettings: any
  • outputBucket: string
BitrateRange: { max?: number; min?: number }

Type declaration

  • Optional max?: number
  • Optional min?: number
BitrateResolutionVMAF: { bitrate: number; resolution: Resolution; vmaf: number }

Type declaration

JobDescription: { bitrates?: number[]; encodingProfile: string | Record<string, string>; method?: "bruteForce" | "walkTheHull"; models?: ("HD" | "PhoneHD" | "UHD")[]; name: string; pipeline: string | LocalPipelineConfiguration; pipelineVariables?: {}; reference: string; resolutions?: Resolution[]; skipExisting?: boolean; skipTranscode?: boolean }
+@eyevinn/autovmaf
Options
All
  • Public
  • Public/Protected
  • All
Menu

@eyevinn/autovmaf

Index

Type aliases

AWSPipelineConfiguration: { ecsCluster: string; ecsContainerName: string; ecsSecurityGroup: string; ecsSubnet: string; ecsTaskDefinition: string; inputBucket: string; mediaConvertEndpoint: string; mediaConvertRole: string; mediaConvertSettings: any; outputBucket: string }

Type declaration

  • ecsCluster: string
  • ecsContainerName: string
  • ecsSecurityGroup: string
  • ecsSubnet: string
  • ecsTaskDefinition: string
  • inputBucket: string
  • mediaConvertEndpoint: string
  • mediaConvertRole: string
  • mediaConvertSettings: any
  • outputBucket: string
BitrateRange: { max?: number; min?: number }

Type declaration

  • Optional max?: number
  • Optional min?: number
BitrateResolutionVMAF: { bitrate: number; resolution: Resolution; vmaf: number }

Type declaration

JobDescription: { bitrates?: number[]; encodingProfile: string | Record<string, string>; method?: "bruteForce" | "walkTheHull"; models?: ("HD" | "PhoneHD" | "UHD")[]; name: string; pipeline: string | LocalPipelineConfiguration; pipelineVariables?: {}; reference: string; resolutions?: Resolution[]; skipExisting?: boolean; skipTranscode?: boolean }

Describes a ABR-analysis job and can be used to create jobs using the createJob()-function.

Type declaration

  • Optional bitrates?: number[]

    A list of bitrates to test. By default a list of bitrates between 150 kbit/s to 9000 kbit/s.

    @@ -25,7 +25,7 @@

    Skip transcode if outfile allready exists

  • Optional skipTranscode?: boolean

    Skip transcode and run analysis only, files are assumed to be allready present

    -
LocalPipelineConfiguration: { easyVmafExtraArgs?: {}; easyVmafPath: string; ffmpegEncoder: "libx264" | "h264_videotoolbox"; ffmpegOptions: {}; ffmpegPath: string; pythonPath: string; singlePass?: boolean; skipDefaultOptions?: boolean }

Type declaration

  • Optional easyVmafExtraArgs?: {}
    • [key: string]: string
  • easyVmafPath: string
  • ffmpegEncoder: "libx264" | "h264_videotoolbox"
  • ffmpegOptions: {}
    • [key: string]: string
  • ffmpegPath: string
  • pythonPath: string
  • Optional singlePass?: boolean
  • Optional skipDefaultOptions?: boolean
Resolution: { height: number; range?: BitrateRange; width: number }

Type declaration

Variables

logger: Logger

Functions

  • createJob(description: JobDescription, pipelineData?: any, encodingProfileData?: any, concurrency?: boolean): Promise<void>
LocalPipelineConfiguration: { easyVmafExtraArgs?: {}; easyVmafPath: string; ffmpegEncoder: "libx264" | "h264_videotoolbox"; ffmpegOptions: {}; ffmpegPath: string; pythonPath: string; singlePass?: boolean; skipDefaultOptions?: boolean }

Type declaration

  • Optional easyVmafExtraArgs?: {}
    • [key: string]: string
  • easyVmafPath: string
  • ffmpegEncoder: "libx264" | "h264_videotoolbox"
  • ffmpegOptions: {}
    • [key: string]: string
  • ffmpegPath: string
  • pythonPath: string
  • Optional singlePass?: boolean
  • Optional skipDefaultOptions?: boolean
Resolution: { height: number; range?: BitrateRange; width: number }

Type declaration

Variables

logger: Logger

Functions

  • createJob(description: JobDescription, pipelineData?: any, encodingProfileData?: any, concurrency?: boolean): Promise<void>
  • Creates a analysis job according to a job description.

    example

    Example of creating a job from a job description.

    const { createJob, qualityAnalysisModelToString } = require('@eyevinn/autovmaf');

    const abrLadder = await = createJob({
    name: "hello",
    pipeline: "pipeline.yml",
    encodingProfile: "profile.json",
    reference: "reference.mp4",
    models: ["HD", "PhoneHD"],
    resolutions: [{ width: 1280, height: 720, range: undefined }],
    bitrates: [600000],
    method: "bruteForce"
    }); @@ -38,7 +38,7 @@

    Parameters

    • description: JobDescription

      An object that describes the job to create.

      -
    • Optional pipelineData: any
    • Optional encodingProfileData: any
    • concurrency: boolean = true

    Returns Promise<void>

  • getVmaf(filename: string, onProgress?: (index: number, filename: string, total: number) => void): Promise<{ filename: string; vmaf: number }[]>
  • +
  • Optional pipelineData: any
  • Optional encodingProfileData: any
  • concurrency: boolean = true

Returns Promise<void>

  • getVmaf(filename: string, onProgress?: (index: number, filename: string, total: number) => void): Promise<{ filename: string; vmaf: number }[]>
  • Returns the VMAF-values from a JSON-file or a directory of JSON-files. Can be used on both local paths as well as S3-URIs.

    example

    Example of retrieving a list of VMAF-scores from S3.

    const vmafFiles = await getVmaf('s3://path/to/vmaf/');
    vmafFiles.forEach(file => {
    console.log(file.filename + ': ' + file.vmaf);
    }); @@ -46,29 +46,29 @@

    Parameters

    • filename: string

      The path to the file or directory. Can be a local path or a S3-URI.

    • onProgress: (index: number, filename: string, total: number) => void = ...
        • (index: number, filename: string, total: number): void
        • Parameters

          • index: number
          • filename: string
          • total: number

          Returns void

    Returns Promise<{ filename: string; vmaf: number }[]>

    A list of objects with filename and VMAF-scores.

    -
  • loadPipeline(pipelineFilename: string, encodingProfile?: string): Promise<Pipeline>
  • loadPipeline(pipelineFilename: string, encodingProfile?: string): Promise<Pipeline>
  • Loads a pipeline from a YAML file and an encoding profile from a JSON file.

    Parameters

    • pipelineFilename: string

      The local path to the pipeline YAML.

    • Optional encodingProfile: string

      The local path to the encoding profile JSON. If left undefined, the encoding profile will be set to an empty object.

    Returns Promise<Pipeline>

    A pipeline that can be used to transcode or analyze videos with.

    -
  • loadPipelineFromObjects(pipelineData: any, encodingProfileData?: any): Promise<Pipeline>
  • loadPipelineFromObjects(pipelineData: any, encodingProfileData?: any): Promise<Pipeline>
  • Loads a pipeline and an encoding profile from a JSON object.

    Parameters

    • pipelineData: any

      The object containing the pipeline data.

    • Optional encodingProfileData: any

    Returns Promise<Pipeline>

    A pipeline that can be used to transcode or analyze videos with.

    -
  • Converts from a string to a QualityAnalysisModel-enum.

    Parameters

    • model: "HD" | "PhoneHD" | "UHD"

      The string to convert. Can be either "HD", "PhoneHD", or "UHD".

    Returns QualityAnalysisModel

    A QualityAnalysisModel-enum depending on the input string.

    -
  • suggestLadder(directoryWithVmafFiles: string, filterFunction?: (bitrate: number, resolution: Resolution, vmaf: number) => boolean, includeAllBitrates?: boolean, onProgress?: (index: number, filename: string, total: number) => void): Promise<LadderAndVmafPairs>
  • suggestLadder(directoryWithVmafFiles: string, filterFunction?: (bitrate: number, resolution: Resolution, vmaf: number) => boolean, includeAllBitrates?: boolean, onProgress?: (index: number, filename: string, total: number) => void): Promise<LadderAndVmafPairs>
  • Suggests an optimal ABR-ladder from a directory of VMAF-files. Only supports loading from S3 at the moment.

    Parameters

    • directoryWithVmafFiles: string

      URI to the directory with VMAF-files.

      diff --git a/modules/initJobLambda.html b/modules/initJobLambda.html index 84db7dc..6b31d26 100644 --- a/modules/initJobLambda.html +++ b/modules/initJobLambda.html @@ -1 +1 @@ -initJobLambda | @eyevinn/autovmaf
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Namespace initJobLambda

      Index

      Functions

      Functions

      • handler(event: ALBEvent): Promise<ALBResult>

      Legend

      • Constructor
      • Property
      • Method
      • Private property

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file +initJobLambda | @eyevinn/autovmaf
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Namespace initJobLambda

      Index

      Functions

      Functions

      • handler(event: ALBEvent): Promise<ALBResult>

      Legend

      • Constructor
      • Property
      • Method
      • Private property

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file diff --git a/modules/startJobLambda.html b/modules/startJobLambda.html index 7b0084b..cd60db4 100644 --- a/modules/startJobLambda.html +++ b/modules/startJobLambda.html @@ -1 +1 @@ -startJobLambda | @eyevinn/autovmaf
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Namespace startJobLambda

      Index

      Functions

      Functions

      • handler(event: any): Promise<any>

      Legend

      • Constructor
      • Property
      • Method
      • Private property

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file +startJobLambda | @eyevinn/autovmaf
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Namespace startJobLambda

      Index

      Functions

      Functions

      • handler(event: any): Promise<any>

      Legend

      • Constructor
      • Property
      • Method
      • Private property

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file