// app import { s3 as ownS3 } from '@ownzones/lib'; import { S3ByteProvider, MxfFileReader } from '@ownzones/imf'; import { ITimedTextSegment } from '../playlist-builder'; import { ISegmentTranscoder, ISegmentTranscodeResult } from './segment-transcoder'; export class TimedTextSegment implements ISegmentTranscoder { private readonly segment: ITimedTextSegment; public constructor(segment: ITimedTextSegment) { this.segment = segment; } public async transcode(): Promise { const { url } = this.segment; const { bucket, key } = ownS3.parseUrl(url as string); const mxfFileReader = new MxfFileReader(new S3ByteProvider(bucket, key)); return { segmentData: await mxfFileReader.extractEssence() }; } }