首页 > 其他分享 >ffmpeg 视频 图形叠加

ffmpeg 视频 图形叠加

时间:2023-04-24 15:24:15浏览次数:28  
标签:视频 叠加 scale 20 ffmpeg overlay mp4 main 10

使用scale视频过滤器将输入缩放(调整大小)为特定大小,然后使用overlay视频过滤器将视频放置在静态图像上。

ffmpeg -loop 1 -i background.png -i video1.mp4 -i video2.mp4 -filter_complex \\
"[1:v]scale=(iw/2)-20:-1[a]; \\
 [2:v]scale=(iw/2)-20:-1[b]; \\
 [0:v][a]overlay=10:(main_h/2)-(overlay_h/2):shortest=1[c]; \\
 [c][b]overlay=main_w-overlay_w-10:(main_h/2)-(overlay_h/2)[video]" \\
-map"[video]" output.mkv

非过滤选项

  • loop 1 连续循环下一个输入background.png。

  • background.png 背景图像。流说明符为[0:v],尺寸为1280x720。

  • video1.mp4 这是第一个视频输入(示例图像中为Big Buck Bunny)。流说明符为[1:v]。尺寸为640x360。

  • video2.mp4 第二个视频输入(示例图像中的varmints)。流说明符为[2:v]。尺寸为640x360

筛选选项

-filter_complex启动复杂过滤图的选项。

  • [1:v]scale=(iw/2)-20:-1[a] 这将使用video1.mp4(称为[1:v])进行缩放。 iw是输入宽度的别名,在这种情况下,它是640的值。我们将其除以一半,并减去20个像素作为填充,因此每个视频在重叠时都会有空间。 -1表示自动计算将保留宽高比的值。如果可以,您可以忽略幻想并手动提供诸如scale=320:240的值。然后使用名为[a]的输出链接标签,以便我们稍后可以参考此输出。

  • [2:v]scale=(iw/2)-20:-1[b]与上面相同,但是使用video2.mp4作为输入,并将输出链接标签命名为[b]。

  • [0:v][a]overlay=10:(main_h/2)-(overlay_h/2):shortest=1 使用background.png作为第一个叠加输入,并将我们的第一个比例过滤器(称为[a])的结果用作第二个叠加输入。将[a]放在[0:v]上。 main_h是主高度的别名,它是指背景输入([0:v])的高度。 overlay_h是覆盖高度的别名,是指前景([a])的高度。本示例将大雄兔兔放在左侧。 shortest=1将在最短输入终止时强制输出终止;否则它将永远循环,因为background.png正在循环。将此过滤器的结果命名为。

  • [c][b]overlay=overlay_w*2:overlay_h:shortest=1使用作为第一个叠加输入,使用[b]作为第二个叠加输入。使用覆盖参数overlay_w和overlay_h(覆盖输入宽度和高度)。本示例将把蠕虫变种放在右侧。将输出标记为。

  • map""将过滤器的输出映射到输出文件。过滤器图末尾的链接标签不是必需的,但建议在映射时使用明确的链接标签。

音讯

有两个独立的音频流

默认情况下,如流选择中所定义,仅遇到的第一个输入音频通道将用于输出中。您可以使用-map选项从第二个视频输入添加一个附加的音轨(输出将有两个音频流)。此示例将流式复制音频,而不是重新编码:

ffmpeg -loop 1 -i background.png -i video1.mp4 -i video2.mp4 -filter_complex \\
"[1:v]scale=(iw/2)-20:-1[a]; \\
 [2:v]scale=(iw/2)-20:-1[b]; \\
 [0:v][a]overlay=10:(main_h/2)-(overlay_h/2):shortest=1[c]; \\
 [c][b]overlay=main_w-overlay_w-10:(main_h/2)-(overlay_h/2)[video]" \\
-map"[video]" -map 1:a -map 2:a -codec:a copy output.mkv

合并两个音频流

或使用amerge和pan音频滤波器将两个音频输入合并为一个(假设两个输入均为立体声,并且您想要立体声输出):

ffmpeg -loop 1 -i background.png -i video1.mp4 -i video2.mp4 -filter_complex \\
"[1:v]scale=(iw/2)-20:-1[a]; \\
 [2:v]scale=(iw/2)-20:-1[b]; \\
 [0:v][a]overlay=10:(main_h/2)-(overlay_h/2):shortest=1[c]; \\
 [c][b]overlay=main_w-overlay_w-10:(main_h/2)-(overlay_h/2)[video]" \\
 [1:a][2:a]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[audio]" \\
-map"[video]" -map"[audio]" output.mkv

叠加2个视频实现一大一小布局,可指定开始时间,生成视频的总时长

ffmpeg -ss 00:00:20 -i test3.mp4 -i test2.mp4 -filter_complex "[1:v]scale=320:240[v1];[0:v][v1]overlay=10:10" -s 640x480  -c:v libx264 -preset ultrafast -r 20 -b:v 200k -t 1200 output.mp4

-ss 00:00:20 test3.mp4开始时间
320:240为小视频的宽高
10:10小视频左上角坐标
-t 1200 视频总时长(s)

在多个时间点上叠加视频

ffmpeg  -i background.mp4 -i overlay.mov -filter_complex"[1]setpts=PTS+2/TB[ts],[0][ts]overlay=0:0:eof_action=pass[out];[1]setpts=PTS+4/TB[b],[out][b]overlay=-200:200:eof_action=pass[out]" -map"[out]" -t 00:00:10 -y output.mp4

 

标签:视频,叠加,scale,20,ffmpeg,overlay,mp4,main,10
From: https://www.cnblogs.com/sttchengfei/p/17349610.html

相关文章

  • 视频直播源码,android动画小飞机旋转效果
    视频直播源码,android动画小飞机旋转效果 //小飞机旋转动效果publicclassPlaneViewextendsView{  privatePaintpaint;  privateintwidth;  privateintheight;  privatefloatcurLength;  privatefloatallLength;  privatefloatmAnimato......
  • 如何解决安卓七,客户端用的webview打包视频切换有暂停图标
    可以用video中的html5poster属性poster="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7为最小的base64图片并且透明也可以选择黑色:data:image/gif;b......
  • 视频分享 点赞 收藏,分享数接口开发研究
    Q44804487已于2022-10-0920:13:43修改386收藏1文章标签:androidjava开发语言版权最近应客户需求研究了下某音分享的接口对该接口做了个测试这里测试了个风控点就是单个作品请求到一个上限后成功率低数据增长比较缓慢这个上限目前测试是5000-20000(5K的多一点,正常来说一个......
  • 抖音视频播放量 视频搜索接口算法 XG XK 算法 设备注册
    Q44804487于2022-08-2221:31:48发布1067收藏11文章标签:音视频ios版权最近应客户要求研究了下抖音搜索视频和播放视频的接口现在已做完放出部分接口给大家参考下注:全套需要配合抖音设备使用视频搜索接口   defsearch_video_ios(query,page,sort_type,publish_time......
  • 【视频版】基于飞腾芯片的设计与调试入门指导
    飞腾爱好者技术交流群码公众号“乌拉大喵喵” 本文已录制讲解视频发布到B站,可以搜索UP主“乌拉大喵喵”或者扫二维码进入B站专辑进行查看:  一、啥是自主可控国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但......
  • 音视频八股文(4)--ffmpeg常见命令(3)
    17FFmpeg滤镜17.1filter的分类按照处理数据的类型,通常多媒体的filter分为:●音频filter●视频filter●字幕filter另一种按照处于编解码器的位置划分:●prefilters:usedbeforeencoding●intrafilters:usedwhileencoding(andarethusanintegralpartofavi......
  • 视频上传的接口开发
    如何视频上传的接口的开发原本我是按照文本一样的将数据添加,和修改。但是视频的话接口是要发生了一些的变化,和原本的接口有所不同,我通过金师附小的上传图片的案例,到其中找到关系。后来我通过网上的资源,发现了若依有自带视频或者图片上传的工具类。Controller/**  *上......
  • java架构师视频教程
    我真的希望大家能坚持学完我的这套java架构师视频教程,我知道这的确要花费很多的时间和精力,还有大量的练习,我在开始学习的时候也和大家一样的厌倦学习,中途想要放弃。但想想看,既然知道我的这套java架构师的确是非常有效果的,并能改变我们的技术能力,让我们在工作中一生受益,那为什么不......
  • mac:使用VLC播放纯视频YUV文件和纯音频pcm文件(命令行)
    一、使用vlc播放yuv有时候,我们需要播放一些纯视频文件,判断YUV数据是否可用。举个例子,我们使用命令行,播放/Users/domain/Desktop目录下的:test\_yuv420p\_320x180.yuv文件,命令如下:$/Applications/VLC.app/Contents/MacOS/VLC--demuxrawvideo--rawvid-fps15--rawvid-width320......
  • 如何把视频合并在一起?视频合并软件合集!​
    如何把视频合并在一起?众所周知,将多个视频素材拼接在一起,可以创造出更具故事性和连贯性的视频作品,提高观看体验和吸引力,而且合并多个视频素材,可以形成更完整、更精细的宣传内容,从而为产品或品牌带来更好的推广效果,那么很多小伙伴不知道该使用什么软件进行操作,感兴趣的小伙伴一起来看......