Skip to content

📹 a TypeScript package for generating custom video previews

Notifications You must be signed in to change notification settings

OSintt/video-previewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

video-previewer

Generate .webp video previews from .mp4 files using TypeScript and ffmpeg

Installation

$ npm install video-previewer
$ pnpm add video-previewer
$ yarn add video-previewer

Usage

import VideoPreviewer from "./generator/VideoPreviewer";

const preview = new VideoPreviewer(
  "video.mp4",
  "output/path.webp", //output path
  [
    { start: "00:00:01", end: "00:00:04" }, // clips to take from video, string with 'HH:MM:SS' format
    { start: "00:04:01", end: "00:04:04" },
    { start: "00:12:01", end: "00:12:04" },
    { start: "00:13:01", end: "00:13:04" },
  ],
  {
    clipCount: 5,
    clipTime: 5,
    clipSelectStrategy: "max-size", // options: 'max-size', 'min-size', 'random'
    clipRange: [0.1, 0.9],
    fpsRate: 10, // number, -1 (default)
    output: {
      type: "buffer", // options: 'buffer' (default), 'file', 'dir'
      path: "", // Required if output type is not 'buffer' (specify file or directory path)
    },
    speedMulti: 2,
    width: 320, // number, video normal dimensions (default)
    height: -1, // number, video normal dimensions (default)
    bitrate: 1000, // optional, video bitrate in kbps
    videoCodec: "libx264", // optional, codec for video encoding
    audioCodec: "aac", // optional, codec for audio encoding
    audioBitrate: 128, // optional, audio bitrate in kbps
    format: "webp", // optional, output format for the preview
    useHardwareAcceleration: false, // optional, enable hardware acceleration for processing
    additionalOptions: "", // optional, any additional command line options for ffmpeg
  }
);
preview.exec();

Available options:

Option Type Default
clipCount number -
clipTime number -
clipSelectStrategy string 'max-size'
clipRange number[] -
fpsRate number -1 (default: original fps)
output OutputOptions {type: 'buffer'}
speedMulti number -
width number (default: original width)
height number (default: original heigth)
bitrate number -
videoCodec string 'libx264'
audioCodec string 'aac'
audioBitrate number 128
format string 'webp'
useHardwareAcceleration boolean false
additionalOptions string -

🐼 @me

You can find me on twitter as 🐤 @osinthappyemo or on instagram as 🍢 @osintxv

Releases

No releases published

Packages

No packages published