An open API service indexing awesome lists of open source software.

https://github.com/ericfrancis12/video-to-cartoon


https://github.com/ericfrancis12/video-to-cartoon

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Video To Cartoon

A tool for applying cartoon-like effects to full videos. Written in nodejs, dependent on:

photo2cartoon (https://www.npmjs.com/package/photo2cartoon)
fluent-ffmpeg (https://www.npmjs.com/package/fluent-ffmpeg)

There are quite a few options to achieve the "cartoon" effect on images, however I've yet to find a solution for entire videos. This tool works by breaking appart your video frame-by-frame, applying the "cartoon" effect to each, then putting them back together in order and adding the original audio track back in.

## Usage
### Basic Usage
Step 1: Insert a video into ./main/input

Step 2: Run $ node extract.js - This will extract all frames of the video into individual .png files, and write them to ./main/images. Note that if you have more than one file in ./main/input, it takes only the first one.

Step 3: Run $ node p2c.js - This will take all image files in ./main/images, cartoonify them, and write them to ./main/cartoon-images

Step 4: Run $ node compile.js - This will take all image files in ./main/cartoon-images, combine them into one video per the frame rate of the original video, and write it to ./main/temp. Then it adds the audio stream from the oroginal video, and writes the final output inside ./main/output

### Notes
- You can modify whether folders are cleared in ./main/settings/settings.js

### Examples
See ./examples

## Photo Effects
### Explanation
The opt object is passed into new cartoonization():

{
blurMode: {
name,
radius
},
edgeWeakening,
resize
}

------------------------------------------------------------------------
(copied and pasted from https://www.npmjs.com/package/photo2cartoon):

blurMode.name:
bilateral: use bilateral filter to blur. Cost longer time.
gaussian: perform gaussian blur.
fast: perform mean-value filter

resize
Resize the input image to 400px width, and scale the height accordingly.
------------------------------------------------------------------------

### Examples
See ./library/settings-examples for visual examples.

The naming syntax for these images refer to the opt object:
`${blurMode.name}-${blurMode.radius}-${edgeWeakening}-${resize}.png`

### Settings
Modify photo effects in ./main/settings/settings.js

settings.p2c: {
names,
radii,
edgeWeakenings,
resizes
}