前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【FFmpeg】Filter 过滤器 ④ ( 图片水印 - movie 过滤器 / overlay 过滤器 | movie 过滤器内置参数值简介 | 图片水印示例 )

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

作者头像
韩曙亮
发布于 2024-05-16 07:00:15
发布于 2024-05-16 07:00:15
37800
代码可运行
举报
运行总次数:0
代码可运行

博客总结 : 执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i input.mp4 -vf "movie=icon.png[icon_watermark];[in][icon_watermark]overlay=x=40:y=40[out]" output.mp4

命令 , 向视频中添加图片水印 , 效果如下 :

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i input.mp4 -vf "movie=icon.png[icon_watermark];[in][icon_watermark]overlay=x=mod(50*t\,main_w):y=abs(sin(t))*main_h*0.7[out]" output.mp4

命令 , 实现跑马灯效果 ;

一、图片水印 - movie 过滤器 / overlay 过滤器


1、movie 过滤器简介

FFmpeg 中 的 movie 过滤器 可用于 向 视频中添加 图片水印 ;

movie 过滤器的语法如下 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
movie=file_path[:option1=value1:option2=value2...]
  • file_path 参数 : 上述 movie 过滤器语法中 , file_path 是必须指定的参数 , 设置输入文件路径 , 可以是 文件 / 协议 / 设备 ;

下面的参数都是可选参数 , 不是必须得 , 可选参数 与 file_path 参数 之间都使用冒号 : 隔开 ;

  • format_name 参数 : 设置 输入文件的封装格式 ; FFmpeg 可以自动识别出文件的格式 , 因此该选项一般情况下不需要显示指定 , 除非设置的文件没有后缀 ;
  • stream_index 参数 : 可以简写成 si 参数 , 设置输入流的索引编号 , 如果有多个输入流则使用该索引编号选择为哪个输入流添加滤镜 ;
  • seek_point 参数 : 可以简写成 s 参数 , 设置输入流视频的起始时间点 , 从该起始点开始加载视频内容 , 不是从视频开头开始加载 ;
  • loop 参数 : 设置 视频文件 的 循环播放次数 , 默认情况下只播放一次 , 设置负数则无限循环 ;
  • discontinuity 参数 : 设置支持跳动的时间戳差值 , 即在加载视频文件时是否允许发生不连续性 ; FFmpeg 默认会保持加载的视频流的连续性 , 但是如果文件损坏 , 就需要设置该参数 , 设置加载视频流的连续性 ;

2、movie 过滤器内置参数值简介

movie 过滤器内置参数 : 在 movie 过滤器中 , 可以使用如下内置参数 , 进行一些特别的定制设置 ;

  • main_w : 输入视频的画面宽度 ;
  • main_h : 输入视频的画面高度 ;
  • overlay_w : 水印图片的宽度 ;
  • overlay_h : 水印图片的高度 ;

上述宽度和高度的单位都是 像素 ;

下图是将 图片 作为水印 添加到输入视频中 ,

  • 图片的宽高是 63x58 像素 , 则 overlay_w 的值就是 63 , overlay_h 的值就是 58 ;
  • 视频的画面大小是 848x480 像素 , 则 main_w 的值是 848 , main_h 的值是 480 ;

使用上述四个内置参数值 , 可以计算出 图片水印 在不同位置时的 (x , y) 坐标位置 ;

  • 图片水印 打在 视频 " 左上角 " , 设置 (x , y) 值为 (0 , 0) ;
  • 图片水印 打在 视频 " 右上角 " , 设置 (x , y) 值为 (main_w-overlay_w , 0) ;
  • 图片水印 打在 视频 " 左下角 " , 设置 (x , y) 值为 (0 , main_h-overlay_h) ;
  • 图片水印 打在 视频 " 右下角 " , 设置 (x , y) 值为 (main_w-overlay_w , main_h-overlay_h) ;

3、overlay 过滤器简介

FFmpeg 中的 overlay 过滤器 用于 将一个视频流叠加在另一个视频流上 , 可以用于 实现 水印 / 字幕 / 画中画 效果 ;

overlay 过滤器 基本语法如下 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
overlay=x=position_x:y=position_y
  • position_x 参数 : 是 叠加内容 的 水平位置 ;
  • position_y 参数 : 是 叠加内容 的 垂直位置 ;

二、图片水印示例


1、添加图片水印 - 基础设置

下面的命令 , 就是 向视频中 添加一个图片水印 的命令 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i input.mp4 -vf "movie=icon.png[icon_watermark];[in][icon_watermark]overlay=x=40:y=40[out]" output.mp4
  • -i input.mp4 参数 指定 input.mp4 为输入文件 , 该视频文件是要添加图片水印的视频 ;
  • -vf "movie=icon.png[icon_watermark];[in][icon_watermark]overlay=x=40:y=40[out]" 参数 用于 设置 视频过滤器 , 也就是添加图片水印的主体设置 ;
    • movie=icon.png[icon_watermark] 参数 设置 movie 过滤器 参数 ,
      • 将 icon.png 文件 加载成为视频流 ,
      • 将 加载的 视频流 命名为 icon_watermark , 名字可以任意设置 , 是个自定义字符串 , 该 视频流 就是图片水印 ;
    • [in][icon_watermark]overlay=x=40:y=40[out] 参数 设置的是 overlay 过滤器 参数 , 将 输入视频流 [in] 和 水印视频流 [icon_watermark] 叠加在一起 ;
      • [in] 表示 输入视频流 , 这里指的是 input.mp4 文件 ;
      • [icon_watermark] 表示之前 使用 movie 过滤器 加载的 icon.png 图片对应的 图片水印 视频流 ;
      • [in][icon_watermark]overlay 表示 将 两个 视频流 进行叠加 ;
      • x=40y=40 分别 指定水印在视频中的水平和垂直位置 , 这里是将水印放置在视频的左上角 ;
      • [out] 指的是输出视频流 , 也就是 output.mp4 输出文件 , 在该 overlay 过滤器 中的作用是 将 叠加后的视频流输出到 [out] 输出文件中 ;
  • output.mp4 参数 : 指定输出文件为 output.mp4 , 这是添加水印后生成的新视频文件 ;

执行结果如下 : 执行后 , 将 icon.png 图片作为 水印 , 添加到了 input.mp4 视频文件中 , 得到的输出文件 output.mp4 播放效果如下 , 在视频文件的左上角 ( 40 , 40 ) 位置处 , 出现了 icon.png 图片水印 ;

2、添加图片水印 - 将水印设置到视频右下角

将 图片水印 位置 , 设置在右下角 , 设置 设置 (x , y) 值为 (main_w-overlay_w , main_h-overlay_h) , 对应的命令如下 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i input.mp4 -vf "movie=icon.png[icon_watermark];[in][icon_watermark]overlay=x=main_w-overlay_w:y=main_h-overlay_h[out]" output.mp4

执行上述命令 , 得到的输出文件播放效果如下 :

执行上述命令 , 图片水印被打到了视频的右下角 ;

3、添加图片水印 - 水印跑马灯不停移动

将 图片水印 位置 , 设置为跑马灯效果 , 需要通过 不停地改变 x 和 y 的位置进行实现 , 这里需要通过表达式实现 ;

设置 x 的值为 mod(50*t\,main_w) , 这是计算 每当 50 * t 的结果达到视频的宽度时 , 取其余数 , 实现效果是每秒向右移动 50 像素 ;

  • mod() 是 FFmpeg 中的 数学函数 , 进行取模运算 , 计算 50 * t 模 main_w 的结果 ,
  • t 是 时间 , 单位是 秒 ;
  • main_w 是视频的宽度 , 单位像素 ;

设置 y 的值为 abs(sin(t))*main_h*0.7 , 这是计算时间 t 的正弦值的绝对值 , 乘以视频的高度 , 并乘以一个常数 0.7 , 以调整振幅 ;

  • abs() 是 FFmpeg 中的 绝对值函数 ;
  • sin() 是 FFmpeg 中的 正弦函数 ;
  • t 代表时间 , 单位是 秒 ;

最终的 图片水印 跑马灯效果 的命令如下 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i input.mp4 -vf "movie=icon.png[icon_watermark];[in][icon_watermark]overlay=x=mod(50*t\,main_w):y=abs(sin(t))*main_h*0.7[out]" output.mp4

执行上述命令 , 得到的输出文件播放效果如下 :

最终得到的输出文件中 , 图片水印的位置 不停地移动 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【FFmpeg】Filter 过滤器 ⑤ ( 画中画 - overlay 过滤器 | overlay 过滤器可选参数设置 | 内置参数 | 基础用法 | 控制画中画尺寸及播放效果 | 跑马灯效果 )
overlay 过滤器 可以 将多个 视频流 / 设备 / 视频文件 合并到一个 视频界面 中 ,
韩曙亮
2024/05/24
4990
【FFmpeg】Filter 过滤器 ⑤ ( 画中画 - overlay 过滤器 | overlay 过滤器可选参数设置 | 内置参数 | 基础用法 | 控制画中画尺寸及播放效果 | 跑马灯效果 )
【FFmpeg】Filter 过滤器 ③ ( 文字水印 - drawtext 过滤器 | drawtext 过滤器支持库编译配置 | drawtext 过滤器常用参数 )
drawtext 过滤器 是 FFmpeg 中的一个 视频过滤器 , 用于 在 视频画面帧 上绘制文本 , 也就是添加文字水印 , 也可用于添加 标题 , 字幕 等元素 ;
韩曙亮
2024/05/14
1.5K0
【FFmpeg】Filter 过滤器 ③ ( 文字水印 - drawtext 过滤器 | drawtext 过滤器支持库编译配置 | drawtext 过滤器常用参数 )
【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )
FFmpeg 裁剪过滤器 Crop Filter 可用于 裁剪 视频或图像 的特定区域 ;
韩曙亮
2024/05/14
6610
【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )
使用ffmpeg增删水印
其中: - Duration行的bitrate: 548 kb/s, 为视频比特率 - Stream行的640x360为分辨率
跑马溜溜的球
2020/12/07
2.8K0
使用ffmpeg增删水印
使用 FFmpeg 添加水印的详细指南
在多媒体处理领域,给视频添加水印是一项常见而重要的任务。水印不仅可以用于保护版权,还能提升品牌识别度。FFmpeg 是一个强大的开源工具,支持视频和音频的处理、转换、编辑等操作。本文将详细介绍如何使用 FFmpeg 为视频添加水印,包括基本操作、不同类型的水印、位置调整、高级效果等,内容将易于理解,适合初学者。
繁依Fanyi
2024/09/23
8630
ffmpeg过滤器filter理论与实战
ffmpeg 过滤器,当然也有人称为 ffmpeg 滤镜。(用滤镜听起来好像是给 video 用的,所以不太好,因为 audio 也可以用),ffmpeg 目录下,有个文件夹叫 libavfilter,它可以单独编译为一个库。干嘛用的呢?用于音视频过滤。 比如,我有一个 mp4,想把它缩小一半,输出一个新的 mp4,那么,做缩小动作的,就是 libavfilter。
Gnep@97
2023/12/12
8790
ffmpeg过滤器filter理论与实战
FFmpeg 滤镜相关
FFmpeg 除了具有强大的封装/解封装、编/解码功能外,还包含了一个非常强大的组建—滤镜avfilter。avfilter组建经常用于进行多媒体的处理与编辑,FFmpeg中包含多种滤镜。
码客说
2019/10/21
2.8K0
音视频八股文(4)--ffmpeg常见命令(3)
按照处理数据的类型,通常多媒体的filter分为:● 音频filter ● 视频filter ● 字幕filter
福大大架构师每日一题
2023/06/09
5670
音视频八股文(4)--ffmpeg常见命令(3)
【FFmpeg】Filter 过滤器 ① ( FFmpeg 过滤器简介 | 过滤器概念 | 过滤器用法 | 过滤器工作流程 | 过滤器文档 | 过滤器分类 )
FFmpeg 过滤器 又称为 " 滤镜 " , 是 FFmpeg 的重要的组件 , 用于 处理音视频流 和 处理多媒体操作 ;
韩曙亮
2024/05/14
4950
【FFmpeg】Filter 过滤器 ① ( FFmpeg 过滤器简介 | 过滤器概念 | 过滤器用法 | 过滤器工作流程 | 过滤器文档 | 过滤器分类 )
【FFmpeg】Filter 过滤器 ⑥ ( 九宫格画面拼接 | nullsrc 过滤器 | setpts 过滤器 | scale 过滤器 | 内置输入/输出流表示 )
博客资源下载地址 : https://download.csdn.net/download/han1202012/89320137 , 本博客的视频资源 ;
韩曙亮
2024/05/24
3230
【FFmpeg】Filter 过滤器 ⑥ ( 九宫格画面拼接 | nullsrc 过滤器 | setpts 过滤器 | scale 过滤器 | 内置输入/输出流表示 )
FFmpeg filter浅析--上篇
FFmpeg的滤镜模块AVFilter是一种以管道的方式对音视频进行滤镜(filter)操作以添加特效功能的框架
雪月清
2022/11/19
9370
FFmpeg filter浅析--上篇
音视频八股文(4)--ffmpeg常见命令(3)
● intrafilters: used while encoding (and are thus an integral part of a video codec)
福大大架构师每日一题
2023/04/23
1K0
ffmpeg常用命令
FFmpeg是一个强大的开源多媒体处理工具,它可以用于录制、转换以及流化音频和视频。它是一个跨平台的项目,可以在多种操作系统上运行,包括Windows、Mac OS和Linux。这个工具可以执行各种各样的音视频处理任务,包括但不限于:
Jensen_97
2024/04/18
4440
rodert教你学FFmpeg实战这一篇就够了
链接:https://pan.baidu.com/s/11kIaq5V6A_pFX3yVoTUvzA
JavaPub
2022/03/18
1.2K0
rodert教你学FFmpeg实战这一篇就够了
FFmpeg中overlay滤镜用法-水印及画中画
overlay技术又称视频叠加技术。overlay视频技术使用非常广泛,常见的例子有,电视屏幕右上角显示的电视台台标,以及画中画功能,画中画是指在一个大的视频播放窗口中还存在一个小播放窗口,两个窗口不同的视频内容同时播放。
叶余
2019/04/02
6.9K2
FFmpeg中overlay滤镜用法-水印及画中画
1.ffmpeg、ffplay、ffprobe命令使用
ffmpeg命令- 用于转码的应用程序, 也可以从url/现场音频/视频源抓取输入源
诺谦
2020/05/18
2.6K0
1.ffmpeg、ffplay、ffprobe命令使用
FFmpeg从入门到精通-云享读书会
FFmpeg是一款开源软件,用于生成处理多媒体数据的各类库和程序。FFmpeg可以转码、处理视频和图片(调整视频、图片大小,去噪等)、打包、传输及播放视频。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。
DS小龙哥
2022/10/06
5.4K0
FFmpeg从入门到精通-云享读书会
FFmpeg命令也就这几类了吧
FFmpeg作为多媒体处理领域的强大开源工具,提供了丰富的音视频处理命令,广泛用于视频转换、格式处理、流媒体传输等。FFmpeg操作基于命令行,灵活而高效,涵盖多种应用场景。本文将为您提供最全的FFmpeg命令讲解,从基础命令结构到各类详细应用示例,帮助您轻松掌握FFmpeg的实用技巧。
程序员的园
2024/11/14
2120
FFmpeg命令也就这几类了吧
2020 FFmpeg 滤镜详解
在多媒体处理中,术语滤镜(filter)指的是修改未编码的原始音视频数据帧的一种软件工具。
jerrypxiao
2020/09/09
7.2K0
2020 FFmpeg 滤镜详解
【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )
在 ffmpeg 命令中 , -vframes 参数 的 作用是 指定要输出的视频帧数 , 通过该参数 可以 控制 视频处理的长度 , 即 : 在输出多少帧后 停止处理 视频流 ;
韩曙亮
2024/03/05
8K0
【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )
推荐阅读
【FFmpeg】Filter 过滤器 ⑤ ( 画中画 - overlay 过滤器 | overlay 过滤器可选参数设置 | 内置参数 | 基础用法 | 控制画中画尺寸及播放效果 | 跑马灯效果 )
4990
【FFmpeg】Filter 过滤器 ③ ( 文字水印 - drawtext 过滤器 | drawtext 过滤器支持库编译配置 | drawtext 过滤器常用参数 )
1.5K0
【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )
6610
使用ffmpeg增删水印
2.8K0
使用 FFmpeg 添加水印的详细指南
8630
ffmpeg过滤器filter理论与实战
8790
FFmpeg 滤镜相关
2.8K0
音视频八股文(4)--ffmpeg常见命令(3)
5670
【FFmpeg】Filter 过滤器 ① ( FFmpeg 过滤器简介 | 过滤器概念 | 过滤器用法 | 过滤器工作流程 | 过滤器文档 | 过滤器分类 )
4950
【FFmpeg】Filter 过滤器 ⑥ ( 九宫格画面拼接 | nullsrc 过滤器 | setpts 过滤器 | scale 过滤器 | 内置输入/输出流表示 )
3230
FFmpeg filter浅析--上篇
9370
音视频八股文(4)--ffmpeg常见命令(3)
1K0
ffmpeg常用命令
4440
rodert教你学FFmpeg实战这一篇就够了
1.2K0
FFmpeg中overlay滤镜用法-水印及画中画
6.9K2
1.ffmpeg、ffplay、ffprobe命令使用
2.6K0
FFmpeg从入门到精通-云享读书会
5.4K0
FFmpeg命令也就这几类了吧
2120
2020 FFmpeg 滤镜详解
7.2K0
【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )
8K0
相关推荐
【FFmpeg】Filter 过滤器 ⑤ ( 画中画 - overlay 过滤器 | overlay 过滤器可选参数设置 | 内置参数 | 基础用法 | 控制画中画尺寸及播放效果 | 跑马灯效果 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验