首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Swift 3中为视频添加每秒变化的文本水印?

在Swift 3中为视频添加每秒变化的文本水印,可以通过以下步骤实现:

  1. 导入AVFoundation框架:在代码文件的顶部添加import AVFoundation
  2. 创建AVMutableComposition对象:使用AVMutableComposition来合成视频和音频轨道。
  3. 创建AVMutableVideoComposition对象:使用AVMutableVideoComposition来处理视频轨道。
  4. 创建AVMutableVideoCompositionInstruction对象:使用AVMutableVideoCompositionInstruction来设置视频处理指令。
  5. 创建AVMutableVideoCompositionLayerInstruction对象:使用AVMutableVideoCompositionLayerInstruction来设置视频图层指令。
  6. 创建CATextLayer对象:使用CATextLayer来创建文本图层。
  7. 设置文本图层属性:设置文本内容、字体、颜色、位置等属性。
  8. 将文本图层添加到视频图层指令中:使用AVMutableVideoCompositionLayerInstruction的setLayer(_:at:)方法将文本图层添加到视频图层指令中。
  9. 将视频图层指令添加到视频处理指令中:使用AVMutableVideoCompositionInstruction的setLayerInstructions(_:)方法将视频图层指令添加到视频处理指令中。
  10. 将视频处理指令添加到视频合成对象中:使用AVMutableVideoComposition的instructions属性将视频处理指令添加到视频合成对象中。
  11. 将视频合成对象与原始视频关联:使用AVMutableComposition的addMutableTrack(withMediaType:preferredTrackID:)方法将视频合成对象与原始视频关联。
  12. 导出合成后的视频:使用AVAssetExportSession将合成后的视频导出为新的文件。

以下是一个示例代码,用于在Swift 3中为视频添加每秒变化的文本水印:

代码语言:txt
复制
import AVFoundation

func addTextWatermarkToVideo(inputURL: URL, outputURL: URL, watermarkText: String) {
    let videoAsset = AVURLAsset(url: inputURL)
    let composition = AVMutableComposition()
    
    guard let videoTrack = composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid),
          let audioTrack = composition.addMutableTrack(withMediaType: .audio, preferredTrackID: kCMPersistentTrackID_Invalid),
          let assetVideoTrack = videoAsset.tracks(withMediaType: .video).first,
          let assetAudioTrack = videoAsset.tracks(withMediaType: .audio).first else {
        return
    }
    
    do {
        try videoTrack.insertTimeRange(CMTimeRangeMake(start: .zero, duration: videoAsset.duration), of: assetVideoTrack, at: .zero)
        try audioTrack.insertTimeRange(CMTimeRangeMake(start: .zero, duration: videoAsset.duration), of: assetAudioTrack, at: .zero)
    } catch {
        return
    }
    
    let videoSize = assetVideoTrack.naturalSize
    
    let videoComposition = AVMutableVideoComposition()
    videoComposition.renderSize = videoSize
    videoComposition.frameDuration = CMTimeMake(value: 1, timescale: 30)
    
    let instruction = AVMutableVideoCompositionInstruction()
    instruction.timeRange = CMTimeRangeMake(start: .zero, duration: videoAsset.duration)
    
    let layerInstruction = AVMutableVideoCompositionLayerInstruction(assetTrack: videoTrack)
    instruction.layerInstructions = [layerInstruction]
    
    let textLayer = CATextLayer()
    textLayer.string = watermarkText
    textLayer.font = UIFont.systemFont(ofSize: 24)
    textLayer.fontSize = 24
    textLayer.foregroundColor = UIColor.white.cgColor
    textLayer.alignmentMode = .center
    textLayer.frame = CGRect(x: 0, y: videoSize.height - 100, width: videoSize.width, height: 100)
    
    let overlayLayer = CALayer()
    overlayLayer.addSublayer(textLayer)
    overlayLayer.frame = CGRect(x: 0, y: 0, width: videoSize.width, height: videoSize.height)
    
    let parentLayer = CALayer()
    let videoLayer = CALayer()
    parentLayer.frame = CGRect(x: 0, y: 0, width: videoSize.width, height: videoSize.height)
    videoLayer.frame = CGRect(x: 0, y: 0, width: videoSize.width, height: videoSize.height)
    parentLayer.addSublayer(videoLayer)
    parentLayer.addSublayer(overlayLayer)
    
    videoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videoLayer, in: parentLayer)
    
    let exportSession = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetHighestQuality)
    exportSession?.outputURL = outputURL
    exportSession?.outputFileType = .mp4
    exportSession?.videoComposition = videoComposition
    
    exportSession?.exportAsynchronously(completionHandler: {
        if exportSession?.status == .completed {
            // 导出成功
        } else {
            // 导出失败
        }
    })
}

使用示例:

代码语言:txt
复制
let inputURL = URL(fileURLWithPath: "path_to_input_video")
let outputURL = URL(fileURLWithPath: "path_to_output_video")
let watermarkText = "Watermark Text"

addTextWatermarkToVideo(inputURL: inputURL, outputURL: outputURL, watermarkText: watermarkText)

请注意,以上代码仅为示例,实际使用时需要根据具体需求进行适当修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

视频八股文(4)--ffmpeg常见命令(3)

具体来说,我们使用 drawtext 滤镜将一段文本 helloworld 添加视频中,并根据一定规则设置它位置、大小、字体和内容。...,每秒钟移动 100 个像素,当超出屏幕宽度时自动循环;而 y=abs(sin(t))h*0.7 则表示 y 坐标随时间变化,根据正弦函数周期性地上下浮动,并占据整个屏幕高度 70%。...具体来说,我们使用 drawtext 滤镜将一段文本 liaoqingfu 添加视频中,并根据一定规则设置它位置、大小、颜色和透明度。...表示文本透明度 50%;fontcolor=white 表示字体颜色白色。...17.4.2 图片水印FFmpeg除了可以向视频添加文字水印之外,还可以向视频添加图片水印视频跑马灯等,本节将重点介绍如何为视频添加图片水印视频添加图片水印可以使用movie滤镜,下面就来熟悉一下

88800

视频八股文(4)--ffmpeg常见命令(3)

具体来说,我们使用 drawtext 滤镜将一段文本 helloworld 添加视频中,并根据一定规则设置它位置、大小、字体和内容。...,每秒钟移动 100 个像素,当超出屏幕宽度时自动循环;而 y=abs(sin(t))h0.7 则表示 y 坐标随时间变化,根据正弦函数周期性地上下浮动,并占据整个屏幕高度 70%。...具体来说,我们使用 drawtext 滤镜将一段文本 liaoqingfu 添加视频中,并根据一定规则设置它位置、大小、颜色和透明度。...表示文本透明度 50%;fontcolor=white 表示字体颜色白色。...17.4.2 图片水印 FFmpeg除了可以向视频添加文字水印之外,还可以向视频添加图片水印视频跑马灯等,本节将重点介绍如何为视频添加图片水印视频添加图片水印可以使用movie滤镜,下面就来熟悉一下

42630

JS黑科技:水印防删

JShaman原创资料,作者:w3sft,转载请保留此信息。 为了保护版权、防截图、防拍照等,有些我们会给网页中视频、图片或文字加水印。...实现方式,可能有多种,比如:对图片、视频而言,可以在服务端完成水印,但对于文字信息类,一般只能在前端页面中进行水印添加。 本文分享一种图层式防删水印技术。...其效果是:在页面渲染完成后,由JavaScript进行图层水印添加,并会实时检测水印状态,如果水印被删除、隐藏、或设置透明,都会重置水印。...MutationObserver是一个很有创意接口,它可以监听页面元素变化,任何元素修改,节点增减、属性值更新、文本内容改动都会触发MutationObserve事件,在本例中,会监测两种事件...,删除水印节点: 删除时触发事件,时此会还原节点、重置水印,结点属性被修改(修改displaynone使元素不可见,或修改opacity0使元素完全透明),都会触监听事件,并重置节点属性

1.5K30

【FFmpeg】Filter 过滤器 ③ ( 文字水印 - drawtext 过滤器 | drawtext 过滤器支持库编译配置 | drawtext 过滤器常用参数 )

- x / y 6、设置水印透明度参数 - alpha 三、drawtext 过滤器添加水印示例 1、添加水印 - 基础设置 2、添加水印 - 设置背景框和文本颜色 3、添加水印 - 显示当前时间 4...- drawtext 过滤器 1、drawtext 过滤器简介 drawtext 过滤器 是 FFmpeg 中一个 视频过滤器 , 用于 在 视频画面帧 上绘制文本 , 也就是添加文字水印 , 也可用于添加...动态时间戳显示 : drawtext 过滤器 可以 使用 时间戳 显示 动态变化 时间信息 , : 在视频上显示从 视频开始 到 当前时间 经过时间 ; 多语言支持 : 使用 drawtext...; fontsize 参数 用于设置 文本水印 字体大小 , 单位是像素 , : fontsize=24 表示字体大小 24 像素 ; 代码示例 : ffmpeg -i input.mp4 -...用于指定 文本水印 相对于 视频画面帧 左上角 水平位置 , 单位是 像素 ; y 参数 用于指定 文本水印 相对于 视频画面帧 左上角 垂直位置 , 单位是 像素 ; 命令行示例 : ffmpeg

22210

WWV 2018年十大必看视频

有最新API视频ARKit 2,Core ML 2,Create ML和Siri Shortcuts; 通过新Dark Mode支持和改进源代码编辑覆盖Xcode 10; 然后是Swift 4.2...注意:要在更短时间内观看更多视频,我们建议您从WWDC 2018视频站点下载高清/标清视频,然后使用VLC媒体播放器或QuickTime播放器将视频重播1.5倍速或2.0倍速。您可以稍后感谢我!...在示例应用程序中,Soup Chef,Apple演示了如何对快捷方式进行分类,然后添加一些参数,字符串,数字,人物或位置。一旦捐赠给Siri,您可以通过说出您提供短语来触发快捷方式。...渲染循环每秒更新120次。 重要是避免浪费工作,这可能会减慢或破坏性能。通常,在清除现有约束然后添加自己约束之后,您将在代码中设置约束。...调用systemLayoutSizeFitting创建引擎实例,添加约束,解决布局,返回大小调整并删除引擎。这可能反复发生,增加了流失。还包括围绕文本测量和不可满足约束消息其他技巧。

2.7K20

WWDC 2018年十大视频评论

有最新API视频ARKit 2,Core ML 2,Create ML和Siri Shortcuts; 通过新Dark Mode支持和改进源代码编辑覆盖Xcode 10; 然后是Swift 4.2...在示例应用程序中,Soup Chef,Apple演示了如何对快捷方式进行分类,然后添加一些参数,字符串,数字,人物或位置。一旦捐赠给Siri,您可以通过说出您提供短语来触发快捷方式。...这个游乐场会议可能对他们不熟悉用户提供了游乐场基础概述。发言人西藏鲁尼 - 拉布道评论标记支持,使你文字脱颖而出。她涵盖了文本样式格式,列表,导航,链接支持甚至在操场中包含视频播放。...渲染循环每秒更新120次。 重要是避免浪费工作,这可能会减慢或破坏性能。通常,在清除现有约束然后添加自己约束之后,您将在代码中设置约束。...调用systemLayoutSizeFitting创建引擎实例,添加约束,解决布局,返回大小调整并删除引擎。这可能反复发生,增加了流失。还包括围绕文本测量和不可满足约束消息其他技巧。

3.3K20

TRTC零基础上手 -- 视频入门篇

帧率 帧是指每个静止画面,视频每秒内显示帧数量叫做帧率(frame rate),单位是fps(frame per second)。...很多场景除了采集摄像头画面外,还需要添加水印或者logo,这时候可以通过下面方式设置: 方案一:设置水印效果 使用SDK水印接口设置Logo,先将你家Logo保存为一张图片,然后在开始推流前调用setWatermark...如果需要更新水印位置,可以调用该接口并对位置进行更新即可。 如果您要给主画面(一般摄像头)和辅路画面(一般用作屏幕分享)同时设置水印,需要调用该接口两次,并设定不同 streamType。...参见文档:添加水印 方案二:自定义采集推流 SDK提供了强大扩展功能,可以把logo图片和采集画面进行混合后,通过自定义采集功能,把混合后数据推流。...该方案可以精确到每一帧,所以支持动态水印效果,比如把一段视频作为水印logo,也可以是一些仪表盘类动态参数显示在画面里。 参见文档:自定义采集和渲染 5. 如何在通话画面添加美颜效果?

2.9K101

FFMPEG指令

提取视频流 提取音频 按帧截取图像 按时间截取图像 截取视频片段 截取视频区域 拼接视频 将图片合并为视频 添加音频 添加水印 添加动画 添加文字 添加字幕 旋转视频 基本概念 容器 我们熟悉mp4...我们通常用视频像素数来表示它分辨率1080x640, 640x320等。 比特率 比特率(bit rate)又称码率,表示多媒体流每秒输出字节数,单位KB/s, Kbps等。...所幸统计表明大多数视频相邻帧之间区别并不大,所以对于一段变化不大视频,我们可以先完整编码帧A,其后B帧只需要编码与A帧不同部分,B帧后C帧则只编码与B帧差异。...如此递推,将一段视频编码一个序列。 当某个图像与之前图像变化很大无法参考前面的帧来生成,我们就结束上一个序列将该帧完整编码开始一个新序列。...,可用于在视频添加水印和动画等操作。

5.7K202

AIGC下一站:期待、警惕充斥着AI剪辑师世界

eating spaghetti」提示,并以每秒 24 帧(FPS)速度生成。...Imagen Video 包括几个显著风格能力,例如根据著名画家作品(梵高画作)生成视频,生成 3D 旋转对象同时保留对象结构,以及渲染文本多种动画风格。...近日,由 Picsart AI Resarch(PAIR)团队介绍一种新颖零样本文本视频生成任务,提出了一种低成本方法,通过利用现有的文本到图像合成方法( Stable Diffusion)...此外,这种方法不仅适用于文本视频合成,还适用于其他任务,条件和内容专用视频生成,以及视频指导下图像到图像翻译。...在公告页面的底部,Meta 表示,所有来自 Make-A-Video 的人工智能生成视频内容都包含一个水印,以「帮助确保观众知道视频是用人工智能生成,而不是捕获视频」。

31110

AIGC下一站:期待、警惕充斥着AI剪辑师世界

提示,并以每秒 24 帧(FPS)速度生成。...Imagen Video 包括几个显著风格能力,例如根据著名画家作品(梵高画作)生成视频,生成 3D 旋转对象同时保留对象结构,以及渲染文本多种动画风格。...近日,由 Picsart AI Resarch(PAIR)团队介绍一种新颖零样本文本视频生成任务,提出了一种低成本方法,通过利用现有的文本到图像合成方法( Stable Diffusion)...此外,这种方法不仅适用于文本视频合成,还适用于其他任务,条件和内容专用视频生成,以及视频指导下图像到图像翻译。...在公告页面的底部,Meta 表示,所有来自 Make-A-Video 的人工智能生成视频内容都包含一个水印,以 “帮助确保观众知道视频是用人工智能生成,而不是捕获视频”。

43040

智能存储产品体验测评及建议

,建议除了说明无法查看外提供可以查看具体解决措施和方法 添加图片上传进度条,可能作为图片是否上传成功反馈 2.2 版权保护 2.2.1 图片水印 关于图片水印,我们可以简单将笑脸水印添加到原有图片上并下载添加水印之后图片...2.2.2 文字水印 关于文字水印,首先遇到问题就是文字水印无法添加汉字 上面说输入文字,下面却提示职能输入字母和数字 在我输入英文tecentcos后显示水印 当我点击生成水印后,水印消失了?...2.2.3 盲水印 关于盲水印,能够将水印图以不可见形式添加到图片频域,在图片资源被攻击泄露后(裁剪、涂抹等)仍可提取出水印信息,有效鉴权追责 不过处理速度有点慢 2.2.4 版权保护建议 关于水印 水印输入格式可以有除英文...提高视频审核识别效率 加快审核时间 建议说明违规类型 建议违规类型进行风险评分(类似于图片审核) 2.3.3 文本审核 文本审核功能很好 建议: 是否支持英文文本审核?...,不过视频水印处理速度很慢 3.4文本审核 测试中文本审核只支持上传文档,可不可以对输入一段话进行审核,而不需要转换成文本格式?

1.7K40

会声会影 2023怎么给视频水印,以及视频水印怎么处理掉

为了防止视频被盗用,很多剪刀手都会在剪辑结束时视频添加水印。会声会影 2023怎么给视频水印视频水印怎么处理掉?...会声会影2023旗舰版怎么给视频水印 会声会影是专业视频剪辑软件,使用它给视频水印简单又方便,下面我以会声会影 2023旗舰版例,大家介绍视频水印怎么加。...在软件主界面下方视频轨,在视频轨空白处右键单击,插入需要添加水印素材。 图1:插入素材 2、点击界面右上角工具栏中标题工具,再点击Text only,然后选择一个文本模板,把它拖到覆叠轨上。...如果是添加图片水印,直接在覆叠轨中插入水印素材即可。 图2:添加水印 3、将鼠标放置文本结束位置,当鼠标变为箭头时,长按鼠标左键并向右拖动,可以调整文本时长。...图10:处理水印效果 本篇文章大家详细介绍了会声会影2023怎么给视频水印视频水印怎么处理掉相关内容。大家按照本文操作下来,是不是感觉很简单呢!

1.5K00

隐秘印记:暗水印实践技术分享

一、前言 1.1、暗水印是什么 暗水印我们可以理解:在一些载体数据中添加隐藏标记,这些标记在人类和机器可轻易感知范围之外。相较于常见水印,比如图片和视频公司logo、纸币中水印纹理等。...空域水印可以简单理解直接对解码后图像像素值进行编辑和嵌入信息;变换域水印是将图像像素信息转换到变换域,然后在变换域添加信息后再转换到空域,这个过程中空域信息也会被修改。...所以变换域水印也可以理解间接空域水印。 1.2.1.1空域水印 直接选取空域特定位置像素值进行修改来嵌入信息。空间域水印难点在于如何在空域选择水印区域和在水印块中如何嵌入数据。...可见经过 DWT 处理后,可以滤出图片轮廓信息(右下角)和细节信息(左上角)。 1.2.2文本水印 文本水印指的是在文本信息中嵌入隐藏水印信息。这个主要是受手写字体启发。...时延很低水印算法。因为加水印过程需要在用户上传视频时实时添加。 较快水印算法。

11.7K81

【FFmpeg】Filter 过滤器 ④ ( 图片水印 - movie 过滤器 overlay 过滤器 | movie 过滤器内置参数值简介 | 图片水印示例 )

=x=40:y=40[out]" output.mp4 -i input.mp4 参数 指定 input.mp4 输入文件 , 该视频文件是要添加图片水印视频 ; -vf "movie=icon.png...中作用是 将 叠加后视频流输出到 [out] 输出文件中 ; output.mp4 参数 : 指定输出文件 output.mp4 , 这是添加水印后生成视频文件 ; 执行结果如下 :..., 出现了 icon.png 图片水印 ; 2、添加图片水印 - 将水印设置到视频右下角 将 图片水印 位置 , 设置在右下角 , 设置 设置 (x , y) 值 (main_w-overlay_w...; 3、添加图片水印 - 水印跑马灯不停移动 将 图片水印 位置 , 设置跑马灯效果 , 需要通过 不停地改变 x 和 y 位置进行实现 , 这里需要通过表达式实现 ; 设置 x mod(...50*t\,main_w) , 这是计算 每当 50 * t 结果达到视频宽度时 , 取其余数 , 实现效果是每秒向右移动 50 像素 ; mod() 是 FFmpeg 中 数学函数 , 进行取模运算

9510

在Typora中使用PicList上传图片

PicList 是一款云存储/图床平台管理和文件上传工具,基于 PicGo 进行了深度二次开发,保留了 PicGo 所有功能同时,相册添加了同步云端删除功能,同时增加了完整云存储管理功能,包括云端目录查看...、文件搜索、批量上传下载和删除文件,复制多种格式文件链接和图片/markdown/文本/视频预览等。...PicList特色功能 保留了 PicGo 所有功能,兼容已有的 PicGo 插件系统,包括和 typora、obsidian 等搭配 相册中可同步删除云端图片 内置水印添加、图片压缩、图片缩放、...、纯文本文件和 markdown 文件等 支持正则表达式批量云端文件重命名 管理界面使用内置数据库缓存目录,加速目录加载速度 对于私有存储桶等支持复制预签名链接进行分享 优化了 PicGo 界面,解锁了窗口大小限制...,同时美化了部分界面布局 如何在Typora使用 Windows平台 进入Typora设置界面,选择图像,将上传服务设置PicGo(app),然后在PicGo路径中填写PicList安装路径,如下图所示

1.6K20

3步搞定图像盲水印?试试云开发扩展能力

开发者使用云存储一半以上都在进行图像存储,但很多时候在不同应用场景对同一张图像有不同要求(尺寸、图像质量、图像格式、图像水印等),线下手动处理图像耗时久,不能满足业务多样化需要。...图像盲水印水印功能将水印图以不可见形式添加到原图信息中,不会对原图质量产生太大影响。在图片被盗取后,您可对疑似被盗取资源进行盲水印提取,验证图片归属。...在图像处理场景下,开发者有两种方式进行相关图像处理操作: 通过添加URL参数进行基础图像处理(智能裁剪、无损压缩、水印、格式转换等):开发者只需要在访问地址后添加处理规则即可获取到处理结果。...云开发图像处理扩展能力 Quick Start 接下来以调用图像盲水印例,教大家如何快速使用云开发扩展能力。 效果展示 1. 素材准备 2. 添加水印 添加水印后图像,图3。...视频处理:提供云端转码、音视频处理、叠加水印、内容审核和内容识别分析等一站式视频处理服务,全方面满足您视频处理需求。

1.4K10

AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架视频流App构建

是的,你可能可以做一些基本网络。 甚至可能会引入一些 JSON 并将一个像样table view与包含文本和图像单元格放在一起。...它需要一组视频 URL 才能播放。 您需要做第一件事是添加正确import语句,这次是 AVFoundation: import AVFoundation 好的开始!...当前视频发生变化时,您要检查播放器是否已移动到最终视频。 如果有,那么是时候将所有视频剪辑添加回队列了。 这里所有都是它! 构建并运行以查看您剪辑无限循环。 4....0.0 : 1.0 } 逐条看下: 1) 通过将速率设置 1.0,您可以像以前一样播放视频。 2) 当有人双击播放器视图时,您可以添加一个侦听器。 这会在 2x 和 1x播放速率之间切换。...好处是你知道如何在 SwiftUI 和 UIKit 之间建立桥梁。

6.9K10

10款免费无水印视频剪辑软件!2021年最新版

很多用户都在寻找一款免费视频剪辑软件,但是绝大多数免费剪辑软件都会强制添加水印或片头片尾在视频中。那到底有哪些视频剪辑软件是没有水印不强制加片头片尾呢?...烧录、视频转换、视频截取等 2. iMovie – 易于操作 适用于:macOS和iOS iMovie是苹果公司macOS和iOS设备所开发免费视频剪辑软件。...值得一提是,虽然iMovie是免费,但却不会添加任何水印到你视频中。...DaVinci Resolve一款有着惊人功能影片剪辑创新工具,切割页面、视觉效果、动作片段、色彩校正和更多功能。如果你是想创造高质量水印影片或电影,那就一定不要错过这个软件了。...此外,软件还可以精准地将视频声音转换为字幕文本,翻译字幕,帮助用户快速制作字幕文件。

87.5K73

开源一款云存储图床平台,支持很多云!

PicList是一款云存储/图床平台管理和文件上传工具,基于PicGo进行了深度二次开发,保留了PicGo所有功能同时,相册添加了同步云端删除功能,同时增加了完整云存储管理功能,包括云端目录查看...、文件搜索、批量上传下载和删除文件,复制多种格式文件链接和图片/markdown/文本/视频预览等,另外还有更加强大相册和多项功能新增或优化。...PicList-Core PicList内核使用是原版PicGo-Core基础上修改PicList-core,云端删除等功能做了适配,同时,新增了水印添加和图片压缩/缩放/旋转/格式转换等功能,...特色功能 保留了PicGo所有功能,兼容已有的PicGo插件系统,包括和typora、obsidian等搭配 相册中可同步删除云端图片,同时新增了高级搜索和排序,批量修改URL等功能 内置水印添加、...,包括图片、视频、纯文本文件和markdown文件等,具体支持格式请参考支持文件格式列表 支持正则表达式批量云端文件重命名 管理界面使用内置数据库缓存目录,加速目录加载速度 对于私有存储桶等支持复制预签名链接进行分享

1.8K10
领券