bytedeco/javacv
View on GitHubHow to record a video that each frame has watermark.
Open
#1,064 opened on Sep 27, 2018
enhancementhelp wanted
Repository metrics
- Stars
- (6,985 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
I have using FFmpegFrameRecorder to write video. I want to add watermark to Frame, But load image png(transparent) and using addWeighted to add. But opaque of the image has lost and image after loaded incorrectly.
opencv_core.Mat videoFrame = opencv_imgcodecs.imread(fileName);
opencv_core.Mat borderFrame = mFrameBorder.getMat();
destFrame = new opencv_core.Mat(videoFrame.size(), videoFrame.type());
opencv_core.addWeighted(videoFrame, 1.0, borderFrame, 1.0, 0, destFrame, -1);
I have using FFmpegFrameFilter. But not effect.
// Filter adds WaterMark
String watermark = "movie="+mFrameBorder.getFilePath()+" [watermark];[in][watermark]overlay=W-w-15:15:format=rgb[out]";//[logo];[in][logo]overlay=0:0:1:format=rgb [out]
frameFilter = new FFmpegFrameFilter(watermark, 540, 960);
frameFilter.setPixelFormat(avutil.AV_PIX_FMT_BGR24);
frameFilter.start();
for (int i = 0; i < frameCount; i++) {
frameFilter.push(videoFrame);
recorder.record(frameFilter.pull());
}
- Because In OpenCV has not support load png transparent.