HarmonyOS鸿蒙Next系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?

HarmonyOS鸿蒙Next系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?

  1. 鸿蒙系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?
  2. iOS上使用系统提供的AVFoundation框架。
  3. 搜索鸿蒙提供的能力没有发现这个能力?如果有,方便提供个链接地址吗?
4 回复

录制/选择视频添加水印,暂无简单的系统 api 接口,若实现功能较为复杂,无简单 Demo

获取视频首帧图片,您参考下获取视频缩略图: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/avimagegenerator-V5

实时录制视频添加水印方法:

  1. 通过监听相机预览流的 imageArrival 事件,获取预览帧

  2. 获取预览帧后,对每一帧图片添加水印,图片添加水印案例: https://developer.huawei.com/consumer/cn/forum/topic/0207151268119912225?fid=0109140870620153026

  3. 将添加水印的后的图片 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 command
    // 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);
}

更多关于HarmonyOS鸿蒙Next系统支持自定义相机录制视频时或者录制视频后增加水印(图片/文字)吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


楼主实现了吗

HarmonyOS鸿蒙Next系统支持在相机录制视频时或录制视频后增加水印(图片/文字)。系统提供了API接口,允许开发者在视频录制过程中或录制完成后,通过代码动态添加水印。开发者可以使用Watermark类来设置水印的内容、位置、大小、透明度等属性。具体实现可以通过调用Camera相关的API,结合MediaRecorderVideoEncoder来实现水印的添加。

是的,HarmonyOS鸿蒙Next系统支持在录制视频时或录制后添加水印(图片/文字)。开发者可以通过调用系统提供的API实现自定义水印功能,用户可以在相机设置中启用水印选项,并选择水印内容。这一功能增强了视频的个性化和版权保护。

回到顶部