6.0.1 • Published 18 days ago

@whiteguru/capacitor-plugin-video-editor v6.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
18 days ago

capacitor-plugin-video-editor

Capacitor plugin to edit videos

Install (Capacitor 6.x)

npm install @whiteguru/capacitor-plugin-video-editor
npx cap sync

or for Capacitor 5.x

npm install @whiteguru/capacitor-plugin-video-editor@^5.0.6
npx cap sync

or for Capacitor 4.x

npm install @whiteguru/capacitor-plugin-video-editor@^4.0.4
npx cap sync

or for Capacitor 3.x

npm install @whiteguru/capacitor-plugin-video-editor@^3.0.1
npx cap sync

Android

This API requires the following permissions be added to your AndroidManifest.xml:

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

You can also specify those permissions only for the Android versions where they will be requested:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>

The storage permissions are for reading video files.

Read about Setting Permissions in the Android Guide for more information on setting Android permissions.

Example

import {
  VideoEditor,
  MediaFileResult,
} from '@whiteguru/capacitor-plugin-video-editor';

const sourceVideoPath =
  'file:///var/mobile/Containers/Data/...../sourceVideo.mp4';

// Transcode with progress
const progressListener = await VideoEditor.addListener(
  'transcodeProgress',
  info => console.log('info', info),
);

VideoEditor.edit({
  path: sourceVideoPath,
  transcode: {
    width: 720,
    height: 480,
    keepAspectRatio: true,
  },
  trim: {
    startsAt: 3 * 1000, // from 00:03
    endsAt: 10 * 1000, // to 00:10
  },
}).then(
  (mediaFileResult: MediaFileResult) => {
    progressListener.remove();

    console.log('mediaPath', mediaFileResult.file.path);
  },
  error => {
    console.error('error', error);
  },
);

// Thumbnail
VideoEditor.thumbnail({
  path: sourceVideoPath,
  width: 150,
  height: 150,
  at: 4 * 1000, // at 00:04
}).then(
  (thumbMediaFileResult: MediaFileResult) => {
    console.log('thumbPath', thumbMediaFileResult.file.path);
  },
  error => {
    console.error('error', error);
  },
);

API

edit(...)

edit(options: EditOptions) => Promise<MediaFileResult>
ParamType
optionsEditOptions

Returns: Promise<MediaFileResult>


thumbnail(...)

thumbnail(options: ThumbnailOptions) => Promise<MediaFileResult>
ParamType
optionsThumbnailOptions

Returns: Promise<MediaFileResult>


addListener('transcodeProgress', ...)

addListener(eventName: 'transcodeProgress', listenerFunc: (info: ProgressInfo) => void) => Promise<PluginListenerHandle> & PluginListenerHandle
ParamType
eventName'transcodeProgress'
listenerFunc(info: ProgressInfo) => void

Returns: Promise<PluginListenerHandle> & PluginListenerHandle


Interfaces

MediaFileResult

PropType
fileMediaFile

MediaFile

PropTypeDescription
namestringThe name of the file, without path information.
pathstringThe full path of the file, including the name.
typestringThe file's mime type
sizenumberThe size of the file, in bytes.

EditOptions

PropType
pathstring
trimTrimOptions
transcodeTranscodeOptions

TrimOptions

PropTypeDescription
startsAtnumberStartsAt in milliseconds
endsAtnumberEndsAt in milliseconds

TranscodeOptions

PropType
heightnumber
widthnumber
keepAspectRatioboolean

ThumbnailOptions

PropTypeDescription
pathstring
atnumberThe time position where the frame will be retrieved in milliseconds.
widthnumber
heightnumber

PluginListenerHandle

PropType
remove() => Promise<void>

ProgressInfo

PropType
progressnumber
6.0.1

18 days ago

5.0.6

6 months ago

5.0.5

8 months ago

5.0.4

9 months ago

5.0.3

9 months ago

5.0.2

9 months ago

5.0.1

12 months ago

4.0.4

1 year ago

3.0.1

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

4.0.1

2 years ago

4.0.3

1 year ago

4.0.2

1 year ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago