0.1.0 • Published 6 months ago

react-native-forge v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

React Native Forge

A powerful video processing module for React Native and Expo. Providing essential video manipulation features with native implementation for iOS and Android

Demo

Installation

npx expo install react-native-forge

Features

  • Generate video frames at specific timestamps
  • Extract all frames from a video
  • Get video duration
  • Pad video to specific aspect ratios
  • Cross-platform support (iOS, Android, Web)

API Reference

getAllFrames

Extracts all frames from a video at one-second intervals.

function getAllFrames(
  inputPath: string,
  outputFolder: string,
  duration: number,
  size?: { width: number; height: number }
): Promise<string[]>;

Parameters:

  • inputPath : Path to the input video file
  • outputFolder : Directory where frames will be saved
  • duration : Duration of the video in seconds
  • size (optional): Desired dimensions for the output frames Returns: Promise resolving to an array of frame file paths

getFrame

Extracts a single frame from a video at a specific timestamp.

function getFrame(
  inputPath: string,
  outputPath: string,
  timestamp: number,
  quality?: number,
  size?: { width: number; height: number }
): Promise<string>;

Parameters:

  • inputPath : Path to the input video file
  • outputPath : Path where the frame will be saved
  • timestamp : Time in seconds to extract the frame from
  • quality (optional): JPEG compression quality (1-100, default: 15)
  • size (optional): Desired dimensions for the output frame Returns: Promise resolving to the output file path

padToRatio

Pads a video to match a specific aspect ratio.

function padToRatio(
  inputPath: string,
  outputPath: string,
  targetRatio: number
): Promise<{ outputPath: string; ratio: number }>;

Parameters:

  • inputPath : Path to the input video file
  • outputPath : Path where the processed video will be saved
  • targetRatio : Desired aspect ratio (width/height) Returns: Promise resolving to an object containing the output path and final ratio

getDuration

Gets the duration of a video in seconds.

function getDuration(inputPath: string): Promise<number>;

Parameters:

  • inputPath : Path to the video file Returns: Promise resolving to the video duration in seconds
FeatureiOSAndroid
Generate All Frames
Generate Single Frame
Pad Video
Get Duration

Example Usage

import ReactNativeForge from "react-native-forge";

// Extract a frame at 5 seconds
const frame = await ReactNativeForge.getFrame(
  "file:///path/to/video.mp4",
  "file:///path/to/output.jpg",
  5,
  80,
  { width: 1280, height: 720 }
);

// Get video duration
const duration = await ReactNativeForge.getDuration(
  "file:///path/to/video.mp4"
);

// Extract all frames
const frames = await ReactNativeForge.getAllFrames(
  "file:///path/to/video.mp4",
  "file:///path/to/frames",
  duration,
  { width: 1280, height: 720 }
);

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.