Last active
June 12, 2023 10:07
-
-
Save suissa/8561624 to your computer and use it in GitHub Desktop.
Add watermark with Node.js and ffmpeg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var ffmpeg = require('ffmpeg'); | |
try { | |
var process = new ffmpeg('example.mp4'); | |
process.then(function (video) { | |
console.log('The video is ready to be processed'); | |
var watermarkPath = 'watermark-suissa.png', | |
newFilepath = './video-com-watermark.mp4', | |
settings = { | |
position : "SE" // Position: NE NC NW SE SC SW C CE CW | |
, margin_nord : null // Margin nord | |
, margin_sud : null // Margin sud | |
, margin_east : null // Margin east | |
, margin_west : null // Margin west | |
}; | |
var callback = function (error, files) { | |
if(error){ | |
console.log('ERROR: ', error); | |
} | |
else{ | |
console.log('TERMINOU', files); | |
} | |
} | |
//add watermark | |
video.fnAddWatermark(watermarkPath, newFilepath, settings, callback) | |
}, function (err) { | |
console.log('Error: ' + err); | |
}); | |
} catch (e) { | |
console.log(e.code); | |
console.log(e.msg); | |
} |
how can i add (overlay) ?
updated syntax for nodeJS
const fs = require("fs")
var ffmpeg = require("ffmpeg")
async createVideoWatermark() {
var video = await new ffmpeg("example.mp4")
var watermarkPath = "example_watermark.png"
var newFilepath = "watermarked_video.mp4"
var settings = {
position: "SE", // Position: NE NC NW SE SC SW C CE CW
margin_nord: null, // Margin nord
margin_sud: null, // Margin sud
margin_east: null, // Margin east
margin_west: null // Margin west
}
// deletes any existing video so we can replace it
fs.unlinkSync(newFilepath)
// creates our watermarked video
await video.fnAddWatermark(watermarkPath, newFilepath, settings)
}
how to edit watermark pixel?
how can change the margin values ?
only remove existing video file if there is one. otherwise there will be error.
Fix is below
// deletes any existing video so we can replace it
if (fs.existsSync(newFilepath)) {
fs.unlinkSync(newFilepath);
}
it helped me a lot i am very thankfull to you for sharing this
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks Awesome