当前位置: 首页 > 知识库问答 >
问题:

如何使用ffmpeg在多个区域添加水印?

司马同
2023-03-14

我使用laravel框架,也使用ffmpeg PHP库。其实我做了差不多百分之七十的工作。但是我面临的问题是在视频的多个区域显示水印。我做了左上角的水印,在那个视频上运行得很好。但是我想在左上,左下,右下添加水印。我使用这个代码的左上角水印(视频):-

$inputVideo = public_path('input/airplane_flight_airport_panorama_1080.mp4');
$outputVideo = public_path('uploads/output.mp4');
$watermark = public_path('input/watermark.jpg');

$wmarkvideo = "ffmpeg -i ".$inputVideo." -i ".$watermark." -filter_complex ". '"overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)/(main_h-overlay_h)"'." ".$outputVideo;
exec($wmarkvideo );

请帮助我如何在这些区域的左上角、左下角和右下角添加水印。提前感谢:)

共有1个答案

于恺
2023-03-14

这是用于多个水印的ffmpeg命令

ffmpeg -i inputVideo -i watermark-tr -i watermark-tl -i watermark-br -i watermark-bl 
       -filter_complex "[0][1]overlay=x=W-w:y=0[tr];
                        [tr][2]overlay=x=0:y=0[tl];
                        [tl][3]overlay=x=W-w:y=H-h[br];
                        [br][4]overlay=x=0:y=H-h"  outputfile

tr=右上;tl=左上;br=右下;bl=左下

还有中锋,

ffmpeg -i inputVideo -i watermark-tr -i watermark-tl -i watermark-br -i watermark-bl -i watermark-c
       -filter_complex "[0][1]overlay=x=W-w:y=0[tr];
                        [tr][2]overlay=x=0:y=0[tl];
                        [tl][3]overlay=x=W-w:y=H-h[br];
                        [br][4]overlay=x=0:y=H-h[bl];
                        [bl][5]overlay=x=(W-w)/2:y=(H-h)/2"  outputfile
 类似资料:
  • 问题内容: 我正在用JavaScript 编辑。问题是当我在其中换行时,它们将不会显示。我怎样才能做到这一点? 我正在获取编写函数的值,但不会产生换行符。 问题答案: 问题来自以下事实:换行符(?)与HTML 标签不同

  • 我有一个与docusign的开发人员帐户,能够上传一个单一的PDF文件,并签署这样。但根据我的要求,我需要在docusign内一次上传多个PDF文件,并相应地签名。我们目前使用的是docusign SOAP API,下面是示例访问URL:http://etplprojects.net/docusign_API/SOAP/这可能吗?请建议。

  • 我试图测试如何使用if语句添加彩色方块覆盖到视频,但得到以下错误。 找不到颜色“if(1==1,red,green)”[AVFilterGraph@000002D24A659440]用参数“x=0:y=0:w=200:h=200:color=if(1==1,red,green):t=fill”初始化筛选器“drawbox”时出错,重新初始化筛选器时出错!无法将帧注入筛选器网络:处理流#0:0的解码

  • 问题 我希望将UDF的返回值添加到seperate列中的现有dataframe中。我如何以足智多谋的方式实现这一点? Edit:我注释掉了StructType的使用(并编辑了udf赋值),因为示例函数的返回类型不需要使用StructType。但是,如果返回值类似于

  • 我正在尝试将日志从单台机器上的不同目录收集到本地文件系统文件或 HDFS。 我已经注册了 2 个来源 r1、r2。两个源都指向单通道C1。有一个接收器连接到通道。K1 请找到下面的配置文件: 但是当我使用代理 a1 启动 Flume 时,只有一个源 (r2) 正在启动。水槽代理启动日志: 谢谢

  • 问题内容: 使用css-in-js方法将类添加到React组件,如何添加多个组件? 这是class变量: 这是我的用法: 上面的作品,但有没有办法添加两个类,而无需使用npm包?就像是: 问题答案: 您可以使用字符串插值: