ffmpeg滤镜使用

背景:现在有2个mp4文件,一个文件分辨率是854x480,另一个是320x240,想要通过ffmpeg实现把多路视频流进行拼接,实现不同效果

overlay滤镜拼接多路视频流实现画中画效果

ffmpeg -i input_854x480.mp4 -i input_320x240.mp4 -filter_complex "1:vscale=240:-1,setsar=1small; 0:vsmalloverlay=W-w-10:H-h-10:shortest=1" -c:v libx264 -preset fast -c:a copy output_overlay.mp4

overlay 滤镜将 ‌320x240‌ 的小视频作为画中画展示在右下角,如下图所示:

下面针对各个参数做解释:

  1. 缩放小视频(320x240 → 240x135)
bash 复制代码
[1:v]scale=240:-1,setsar=1[small]
  • scale=240:-1‌:将小视频宽度缩放到 240px,高度按比例自适应(原始宽高比 320:240=4:3 → 缩放后 240x135,保持 16:9)
  • setsar=1‌:强制设置像素宽高比为 1:1(防止播放时变形)
  1. 叠加到主视频右下角
bash 复制代码
[0:v][small]overlay=W-w-10:H-h-10:shortest=1
  • W-w-10‌:X 坐标 = 主视频宽度 (854) - 小视频宽度 (240) - 右边距 (10px) → 854-240-10=604
  • H-h-10‌:Y 坐标 = 主视频高度 (480) - 小视频高度 (135) - 下边距 (10px) → 480-135-10=335
  • ‌shortest=1‌:以最短的输入流时长为准(若两路视频时长不同)
  1. 其他参数
  • c:a copy‌:直接复制主视频的音频流(若需混合两路音频,改用 amix 滤镜)
  • ‌-preset fast‌:平衡编码速度与压缩率
相关推荐
风哥2号2 天前
数据库教程FGMT02‑生产环境Linux+Oracle19c安装配置与项目实战
linux·数据库·ffmpeg
Bruce_Liuxiaowei3 天前
录屏片段无损合并:从 ffmpeg concat 原理到 Python 自动化脚本
python·ffmpeg·自动化
工具派4 天前
口播视频怎么自动剪掉冷场?视频静音删除的阈值实测
ffmpeg·音视频·视频
❀͜͡傀儡师4 天前
移动端 360° 商品展示方案:从 20MB 雪碧图到 800KB 丝滑视频
ffmpeg·webgl·sprite
2501_930472445 天前
深度复盘|数据库迁移实战(上):腾讯云助手解析慢查询日志,定位索引缺失与语法不兼容
数据库·阿里云·ffmpeg·云计算·腾讯云·aws
我就是DaLing呀!5 天前
flutter + ffmpeg_kit_extended_flutter 大视频合并下载
flutter·ffmpeg·音视频
可乐鸡翅yeah_7 天前
多浏览器 HLS 兼容性差异排查,Chrome、Firefox、Safari 表现不一致定位
chrome·ffmpeg·音视频·firefox·safari·m3u8
行者-全栈开发8 天前
Spring Boot + FFmpeg 视频批量处理实战:压缩、HLS切片与异步任务引擎
spring boot·ffmpeg·异步处理·视频压缩·hls切片·批量任务·redis队列
可乐鸡翅yeah_8 天前
M3U8测试流使用指南,流媒体开发自测与环境校验标准化方案
网络·ffmpeg·音视频·m3u8·m3u8在线·音视频在线播放
heqingchun168 天前
Ubuntu 22.04 交叉编译 RK3568 MPP + FFmpeg 完整指南
linux·ubuntu·ffmpeg