Options
All
  • Public
  • Public/Protected
  • All
Menu

Accurate Player Cutlist API

Index

Enumerations

Classes

Interfaces

Variables

Functions

Object literals

Variables

Const ACCURATE_PLAYER_VERSION_TAG

ACCURATE_PLAYER_VERSION_TAG: "apVer" = "apVer"

Const DEFAULT_FRAME_RATES

DEFAULT_FRAME_RATES: number[] = [24,24000 / 1001,25,30,30000 / 1001,50,60,60000 / 1001,120,120000 / 1001]

Const DROP_FRAME_RATES

DROP_FRAME_RATES: number[] = [30000 / 1001, 60000 / 1001]

Const SAFE_RAPID_PLAYBACK

SAFE_RAPID_PLAYBACK: 16 = 16

Const TOLERATED_RATE_DIFF

TOLERATED_RATE_DIFF: 0.01 = 0.01

Const chromeAgent

chromeAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36" = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"

Const coreInfo

coreInfo: any = require("../../package.json")

Const dropFrame

dropFrame: false = false

Const duration

duration: 5000 = 5000

Const firefoxAgent

firefoxAgent: "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0" = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"

Const frameRate

frameRate: 25 = 25

Const playerInfo

playerInfo: any = require("../package.json")

Const safariAgent

safariAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13 Safari/605.1.15" = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13 Safari/605.1.15"

Functions

assignVideo

  • assignVideo(cut: InternalCut, video: HTMLVideoElement, offset?: number): void
  • Assign a video element to a new cut. Will seek to the start of the new clip.

    Parameters

    • cut: InternalCut

      The cut to assign the video.

    • video: HTMLVideoElement

      The video to assign to a cut.

    • Default value offset: number = 0

      (default: 0) start offset in relation to the clips start.

    Returns void

estimateDropFrame

  • estimateDropFrame(frameRate: number, dropRates?: number[]): boolean
  • Estimates whether the given frame rate should be considered as a drop frame frame rate.

    Parameters

    • frameRate: number

      The frame rate to test.

    • Default value dropRates: number[] = DROP_FRAME_RATES

      Optional, a list of frame rates concidered to be drop frame.

    Returns boolean

estimateFrameRate

  • estimateFrameRate(frameRate: number, rates?: number[]): number
  • Estimates frame rate by finding the nearest matching value.

    Parameters

    • frameRate: number

      The frame rate to estimate.

    • Default value rates: number[] = DEFAULT_FRAME_RATES

      The rates to compare with.

    Returns number

findCutForTime

  • Find a cut that contains the provided time.

    Parameters

    • time: number

      The time to find in a clip.

    • clips: InternalCut[]

      The list of clips to find.

    Returns InternalCut | undefined

findPreferredVideo

  • findPreferredVideo(clip: InternalCut, videos: HTMLVideoElement[], offset?: number): HTMLVideoElement
  • Find a preferred video for a clip. Will first check if video have same source, then check if clip time is buffered.

    Parameters

    • clip: InternalCut

      The clip to find a video-element to.

    • videos: HTMLVideoElement[]

      The list of available video elements.

    • Default value offset: number = 0

      (default: 0) offset from clips start, used when checking if buffered.

    Returns HTMLVideoElement

Const frameRateToFraction

  • frameRateToFraction(quota: number): FrameRate
  • Converts a calculated frame rate to a FrameRate object (Numerator, denominator).

    Parameters

    • quota: number

      the calculated frame rate.

    Returns FrameRate

frameToSMPTE

  • frameToSMPTE(frameNumber: number, frameRate: number, dropFrame: boolean, offset?: number, baseFrameRate?: number): string
  • Converts from a frame number into a drop frame SMPTE time code.

    Parameters

    • frameNumber: number

      Frame number (integer).

    • frameRate: number

      Frame rate (double).

    • dropFrame: boolean

      Use drop frames in calculation? For manually toggling dropFrame support.

    • Default value offset: number = 0

      This number of frames will be added to the resulting time code.

    • Default value baseFrameRate: number = frameRate

      The base frame rate used to determine the number of digits for frame value.

    Returns string

    SMPTE time code.

framesInTimebase

  • framesInTimebase(frames1: number, numerator1: number, denominator1: number, numerator2: number, denominator2: number): number
  • Converts a frame in a timebase to the corresponding frame in another timebase.

    Parameters

    • frames1: number

      Frames to convert.

    • numerator1: number

      Source time base numerator.

    • denominator1: number

      Source time base denominator.

    • numerator2: number

      Target time base numerator.

    • denominator2: number

      Target time base denominator.

    Returns number

getAacChannels

  • getAacChannels(aac_data: number): number
  • Parameters

    • aac_data: number

    Returns number

getAacSampleRate

  • getAacSampleRate(aac_data: number): number
  • Parameters

    • aac_data: number

    Returns number

getClosestIndex

  • getClosestIndex(value: number, values: number[]): number
  • Find the closest index of a number array

    Parameters

    • value: number

      The value to look for.

    • values: number[]

      The number array to look in.

    Returns number

    The index of the closest value.

getConfiguredS3Instance

  • getConfiguredS3Instance(AWS: any, awsAccessKeyId: string, awsSecretAccessKey: string, region: string): any
  • Helper method. Creates an S3 instance with credentials and region set. AWS parameter need to be loaded separatly i.e import AWS from "aws-cli"

    Parameters

    • AWS: any

      aws-cli reference.

    • awsAccessKeyId: string

      access key id

    • awsSecretAccessKey: string

      secret key

    • region: string

      Region of the bucket. e.g "eu-west-1"

    Returns any

getMediaInfo

  • Extract information from an Video container.

    Parameters

    • src: string

      Url to the video file to be analyzed.

    • Optional partialFile: Partial<VideoFile>

      Optional parameter to override the result from the analyse.

    Returns Promise<VideoFile>

getMinBufferedFromTime

  • getMinBufferedFromTime(time: number, timeRanges: TimeRanges[]): BufferedTimespan | undefined
  • Gets the closest ending timespan relative to a specific time in a array of TimeRanges. Or undefined if any TimeRange is undefined, or if a TimeRange doesn't contain a matching timespan.

    Parameters

    • time: number

      The time to look for.

    • timeRanges: TimeRanges[]

      An array of TimeRanges.

    Returns BufferedTimespan | undefined

    The closest ending timespan, or undefined.

getPresignedUrl

  • getPresignedUrl(AWS: any, url: string, awsAccessKeyId: string, awsSecretAccessKey: string, region: string): string | undefined
  • Get a presigned url for s3. Handles s3 (start with s3://) and ordinary https urls. AWS parameter need to be loaded separatly i.e import AWS from "aws-cli"

    Parameters

    • AWS: any

      aws-cli reference.

    • url: string

      The url to sign

    • awsAccessKeyId: string

      access key id

    • awsSecretAccessKey: string

      secret key

    • region: string

      Region of the bucket. e.g "eu-west-1"

    Returns string | undefined

getStartOffset

  • getStartOffset(parsed: any, videoStream: any): number
  • Parameters

    • parsed: any
    • videoStream: any

    Returns number

getTimespanFromTime

  • getTimespanFromTime(time: number, timeRanges: TimeRanges): BufferedTimespan | undefined
  • Gets the timespan that matches the given time, or undefined if no matching timespan is found.

    Parameters

    • time: number

      The time to look for.

    • timeRanges: TimeRanges

      The raw TimeRanges object from HTMLMediaElement.

    Returns BufferedTimespan | undefined

    The matching timespan, or undefined if no matching timespan is found.

isBuffered

  • isBuffered(time: number, video: HTMLVideoElement): boolean
  • Check if time is buffered in a video element.

    Parameters

    • time: number

      Time to check.

    • video: HTMLVideoElement

      Video to check.

    Returns boolean

isChrome

  • isChrome(): boolean
  • Checks if browser is Chrome

    Returns boolean

isFirefox

  • isFirefox(): boolean
  • Checks if browser is firefox.

    Returns boolean

Const isFrameRate

  • isFrameRate(object: any): object is FrameRate
  • Util guard to check if object can be assigned as frameRate.

    Parameters

    • object: any

      The object to be checked.

    Returns object is FrameRate

Const isLoaded

  • isLoaded(element: HTMLMediaElement, requiredState?: MediaReadyState): boolean
  • Util that checks if a HTMLMediaElement is considered loaded.

    Parameters

    • element: HTMLMediaElement

      Element to check.

    • Default value requiredState: MediaReadyState = MediaReadyState.HaveEnoughData

      Optional number deciding which readyState is required.

    Returns boolean

isSafari

  • isSafari(): boolean
  • Checks if browser is safari.

    Returns boolean

isTimeBuffered

  • isTimeBuffered(time: number, bufferedTimespan: BufferedTimespan, bufferMargin?: number): boolean
  • Checks if a specific time is considered to be buffered.

    Parameters

    • time: number

      The current time.

    • bufferedTimespan: BufferedTimespan

      The timespan to check against.

    • Default value bufferMargin: number = 0

      Optional margin for buffer end.

    Returns boolean

    True if timespan contains time with the current margin.

isTrickMode

  • isTrickMode(rate: number): boolean
  • Checks if playback rate is out of native elements range.

    Parameters

    • rate: number

      The playbackrate.

    Returns boolean

    True if the playbackrate is out of range.

parseAtoms

  • parseAtoms(requester: any, offset: any, end_of_file: any, level: any, media_info: any, stream: any): Promise<any>
  • Parameters

    • requester: any
    • offset: any
    • end_of_file: any
    • level: any
    • media_info: any
    • stream: any

    Returns Promise<any>

parseMp4

  • parseMp4(requester: any): Promise<any>
  • Parameters

    • requester: any

    Returns Promise<any>

parsePts

  • parsePts(requester: any, stream: any): Promise<void>
  • Parameters

    • requester: any
    • stream: any

    Returns Promise<void>

parseUrl

  • parseUrl(url: string): object | undefined
  • Extracts information of an url before signing. Extracts bucket, region and item from https urls. Extracts bucket and item from s3 url.

    Parameters

    • url: string

      The url to analyze.

    Returns object | undefined

scheduleBufferQueue

  • Assign video elements to sequential clips from active cut.

    Parameters

    • activeCut: InternalCut

      The currently playing cut.

    • cuts: InternalCut[]

      The list of cuts.

    • videos: HTMLVideoElement[]

      The list of available video elements.

    Returns void

secondsTo

  • secondsTo(time: number, frameRate: number, dropFrame: boolean, duration: number, outFormat: TimeFormat, frameOffset?: number, paused?: boolean): string | number
  • Helper method to convert seconds to another time format.

    Parameters

    • time: number

      The time to convert.

    • frameRate: number

      The frame rate of the video file.

    • dropFrame: boolean

      Should drop frame format be used.

    • duration: number

      The duration of the video file.

    • outFormat: TimeFormat

      The desired time format.

    • Default value frameOffset: number = 0

      The corresponding number of frames will be added the resulting value, iff outputFormat is SMPTE time code.

    • Default value paused: boolean = false

      Used for seconds and milliseconds output. If paused we hide the frameOffset.

    Returns string | number

secondsToFrames

  • secondsToFrames(time: number, frameRate: number): number
  • Converts the given time to an exact frame

    Parameters

    • time: number

      The time in seconds to convert

    • frameRate: number

      The frame rate of the media

    Returns number

secondsToTimecode

  • secondsToTimecode(time: number, frameRate: number, dropFrame: boolean, offset?: number, baseFrameRate?: number): string
  • Converts the given time to an SMPTE timecode

    Parameters

    • time: number

      The time in seconds to convert

    • frameRate: number

      The frame rate of the media

    • dropFrame: boolean

      Whether the returned timecode should be returned as a drop frame timecode.

    • Optional offset: number

      This number of frames will be added to the resulting time code.

    • Optional baseFrameRate: number

      The base frame rate used to determine the number of digits for frame value.

    Returns string

setUserAgent

  • setUserAgent(agent: string): void
  • Parameters

    • agent: string

    Returns void

toFrames

  • toFrames(time: string | number, format: TimeFormat, frameRate: number, dropFrame: boolean, duration: number, offset?: number): number
  • Convert a certain SMPTE time code, standard time code, frame, second or millisecond to a frame value.

    Parameters

    • time: string | number

      Time value.

    • format: TimeFormat

      Format of time value.

    • frameRate: number

      Frame rate.

    • dropFrame: boolean

      Drop frame setting.

    • duration: number

      Duration of media object in seconds.

    • Default value offset: number = 0

      The corresponding number of frames will be subtracted from the resulting value, iff input is SMPTE time code.

    Returns number

    Time in seconds.

toInternalCut

  • Convert a list of cuts to its internal representation.

    Parameters

    • cuts: Cut[]

      The cuts to convert.

    Returns InternalCut[]

toSeconds

  • toSeconds(time: string | number, format: TimeFormat, frameRate: number, dropFrame: boolean, duration: number, offset?: number): number
  • Convert a certain SMPTE time code, standard time code, frame, second or millisecond to an seconds value.

    Parameters

    • time: string | number

      Time value.

    • format: TimeFormat

      Format of time value.

    • frameRate: number

      Frame rate.

    • dropFrame: boolean

      Drop frame setting.

    • duration: number

      Duration of media object in seconds.

    • Default value offset: number = 0

      The corresponding number of frames will be subtracted from the resulting value, iff input is SMPTE time code.

    Returns number

    Time in seconds.

toValidTimeValue

  • toValidTimeValue(input: string | number, format: TimeFormat): string | number | undefined
  • Tries to convert input to a valid time value.

    Parameters

    • input: string | number

      Input string or number.

    • format: TimeFormat

      Format of input string which is also used for the result.

    Returns string | number | undefined

    A valid time value or undefined if not able to produce it.

trimNumber

  • trimNumber(num: number, fractionalDigits: number): number
  • Parameters

    • num: number
    • fractionalDigits: number

    Returns number

userAgentContains

  • userAgentContains(pattern: string): boolean
  • Check if user agent contains a given pattern. Case insensitive.

    Parameters

    • pattern: string

      Patern to match.

    Returns boolean

userInputToFrame

  • userInputToFrame(input: string, frameRate: number, duration: number, dropFrame: boolean, offset?: number, durationCap?: boolean): number | undefined
  • Converts user input to a frame, or undefined if it can't be parsed. Supports frame input, e.g. "123" -> 123 Supports 8 consecutive digits, e.g. 00000101 -> 00:00:01:01 -> 26 assuming frame rate is 25. Supports regular SMPTE timecodes, e.g. 00:00:00:01 -> 1. Returns undefined if input could not be converted to a frame.

    Parameters

    • input: string

      Input from user.

    • frameRate: number

      Frame rate to use.

    • duration: number

      Duration (in frames).

    • dropFrame: boolean

      Drop frame setting.

    • Default value offset: number = 0

      The corresponding number of frames will be subtracted from the resulting value, iff input is SMPTE time code.

    • Default value durationCap: boolean = true

      Ensures that the resulting frame never exceeds the duration.

    Returns number | undefined

verify

  • verify(key: string | undefined, apVer: string, callback: function): void
  • Parameters

    • key: string | undefined
    • apVer: string
    • callback: function
        • (ok: any, message: any): void
        • Parameters

          • ok: any
          • message: any

          Returns void

    Returns void

Object literals

Const DEFAULT_SETTINGS

DEFAULT_SETTINGS: object

minUpdateTime

minUpdateTime: number = 250

retriesUntilForceSeek

retriesUntilForceSeek: number = 5

verbose

verbose: boolean = false