HarmonyOS鸿蒙Next系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?
HarmonyOS鸿蒙Next系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗? 鸿蒙系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?
有实现方案了吗?卡壳了
更多关于HarmonyOS鸿蒙Next系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
实现了吗,
录制/选择视频添加水印,暂无简单的系统 api 接口,若实现功能较为复杂,无简单 Demo
获取视频首帧图片,您参考下获取视频缩略图: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/avimagegenerator-V5
实时录制视频添加水印方法:
-
通过监听相机预览流的 imageArrival 事件,获取预览帧: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-sendableimage-V5#on
-
获取预览帧后,对每一帧图片添加水印,图片添加水印案例, https://developer.huawei.com/consumer/cn/forum/topic/0207151268119912225?fid=0109140870620153026
-
将添加水印的后的图片 buffer,喂给编码器合成视频, https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/video-encoding-V5
以上做法的问题:仅能处理视频流
添加水印可以使用三方 ffmpeg 命令实现 videoPath:沙箱视频源 waterPath:沙箱中的水印图片(也可以自行通过 Canvas 绘制) outMP4:输出视频
依赖三方库,直接调用 ffmepg 命令,但三方库不支持 drawtext 等直接绘制水印接口,若需要可自行编译或找三四方库咨询 @ohos/mp4parser: 2.0.3-rc.0
public static addWaterMark(videoPath: string) {
let basePath = GlobalContext.getContext().cacheDir;
let sourceMP4 = basePath + "/" + videoPath;
let outMP4 = basePath + "/out.mp4";
fileIo.openSync(outMP4, fileIo.OpenMode.CREATE | fileIo.OpenMode.READ_WRITE);
let callBack: ICallBack = {
callBackResult(code: number) {
console.info("error " + code);
}
}
let waterPath = basePath + "/result.png"
// ffmpeg -hide_banner -i /data/storage/el2/base/haps/entry/cache/video1.mp4 -i /data/storage/el2/base/haps/entry/cache/water.jpg -filter_complex overlay=x=0:y=0 /data/storage/el2/base/haps/entry/cache/out.mp4 -y
let cmd = 'ffmpeg -hide_banner -i ' + sourceMP4 + " -i " + waterPath + " -filter_complex overlay=x=0:y=0 " + outMP4+ " -y"
MP4Parser.ffmpegCmd(cmd, callBack);
}
通过 MP4Parser 执行了您下面的命令,发现无效 callBack
返回的 code 为 1,MP4Parser 是不是可能不支持添加图片水印?
项目名称
- 状态:进行中
- 开始时间:2023-02-01
- 结束时间:2023-04-01
描述
这是项目的描述信息。
HarmonyOS鸿蒙Next系统支持在相机录制视频时或录制视频后添加水印。用户可以通过系统提供的API或设置选项,自定义水印内容,包括图片或文字。具体实现方式可以通过系统相机应用的相关设置或开发者模式进行配置。
是的,HarmonyOS鸿蒙Next系统支持在相机录制视频时或录制视频后添加水印(图片/文字)。开发者可以通过调用相关API接口实现自定义水印功能,用户可以在设置中选择是否启用以及自定义水印内容。