New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

react-native-video-overlay

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-video-overlay

A lightweight React Native Turbo Module (Android only) that adds image and text overlays to videos using FFmpeg. Perfect for content review, watermarking, and branded video generation.

latest
Source
npmnpm
Version
0.7.6
Version published
Maintainers
1
Created
Source

react-native-video-overlay

npm version MIT License

A lightweight and native Android-only React Native TurboModule for applying image and text overlays on videos using FFmpeg. Ideal for branding, watermarking, or offline field use cases.

⚠️ Experimental Notice

This library is currently under testing and may not be fully stable for production. Use at your own risk. We do not guarantee correctness or provide support at this stage. External contributions are not being accepted currently.

✨ Features

  • ⚡ Fast FFmpeg-based video overlay processing
  • 🖼️ Add multiple image and text overlays
  • 🎯 Define predefined or custom positions per overlay
  • 🖏️ Control width, height, font size, opacity, and more
  • ✂️ Text truncation support based on space
  • 🎮 Frame-safe overlay rendering
  • 📱 Android only, offline-ready

📦 Installation

yarn add react-native-video-overlay
# or
npm install react-native-video-overlay

🛠️ Setup

1. Android Permissions

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2. FFmpeg Binary Bundled

FFmpeg is included in the native module — no extra download or setup needed.

🚀 Usage Example

import { applyOverlay } from 'react-native-video-overlay';

const options = {
  inputPath: '/storage/emulated/0/DCIM/input.mp4',
  outputPath: '/storage/emulated/0/DCIM/output.mp4',
  overlays: [
    {
      type: 'image',
      source: '/storage/emulated/0/DCIM/logo.png',
      position: 'top-left',
      width: 100,
      height: 100,
      opacity: 0.9,
    },
    {
      type: 'text',
      text: 'ReviewDekho - Hyderabad',
      position: 'bottom-center',
      fontSize: 28,
      fontColor: 'white',
      opacity: 1.0,
    },
  ],
  onProgress: (line: string) => {
    console.log('[FFmpeg]', line);
  },
};

const resultPath = await applyOverlay(options);
console.log('Video saved at:', resultPath);

🎯 Overlay Position Options

Use predefined string positions or custom coordinates:

  • 'top-left'
  • 'top-center'
  • 'top-right'
  • 'center-left'
  • 'center'
  • 'center-right'
  • 'bottom-left'
  • 'bottom-center'
  • 'bottom-right'
  • { x: number, y: number } – Custom absolute position

🔤 Text Overlay Options

PropertyTypeDescription
textstringRequired. The overlay text
fontSizenumberOptional. Defaults to 24
fontColorstringOptional. Defaults to white
opacitynumberOptional. Range: 0 to 1
positionstring/objectPredefined or custom position

Text is automatically truncated if it exceeds layout bounds.

🖼️ Image Overlay Options

PropertyTypeDescription
sourcestringRequired. Image file path
widthnumberOptional. Image width
heightnumberOptional. Image height
opacitynumberOptional. Range: 0 to 1
positionstring/objectPredefined or custom position

📞 Progress Callback

To stream FFmpeg output lines (for loading state, logging, etc.):

onProgress?: (logLine: string) => void;

🧪 Requirements

  • React Native >= 0.71
  • Android only (no iOS support)

👨‍💻 Author

ALN Labs GitHub: @alnlabs Email: alnlabs1@gmail.com

📄 License

MIT © ALN Labs

Keywords

react-native

FAQs

Package last updated on 26 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts