video-transcoding.model.ts 953 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { VideoResolution } from './video-resolution.enum'
  2. // Types used by plugins and ffmpeg-utils
  3. export type EncoderOptionsBuilder = (params: {
  4. input: string
  5. resolution: VideoResolution
  6. inputBitrate: number
  7. fps?: number
  8. streamNum?: number
  9. }) => Promise<EncoderOptions> | EncoderOptions
  10. export interface EncoderOptions {
  11. copy?: boolean // Copy stream? Default to false
  12. scaleFilter?: {
  13. name: string
  14. }
  15. inputOptions?: string[]
  16. outputOptions?: string[]
  17. }
  18. // All our encoders
  19. export interface EncoderProfile <T> {
  20. [ profile: string ]: T
  21. default: T
  22. }
  23. export type AvailableEncoders = {
  24. available: {
  25. live: {
  26. [ encoder: string ]: EncoderProfile<EncoderOptionsBuilder>
  27. }
  28. vod: {
  29. [ encoder: string ]: EncoderProfile<EncoderOptionsBuilder>
  30. }
  31. }
  32. encodersToTry: {
  33. vod: {
  34. video: string[]
  35. audio: string[]
  36. }
  37. live: {
  38. video: string[]
  39. audio: string[]
  40. }
  41. }
  42. }