【音视频开发】使用ffmpeg实现多个视频合成一个视频(按宫格视图)

先上结果

在这里插入图片描述

环境

硬件:通用PC
系统:Windows 测试有效
软件:ffmpeg

解决

0、命令

ffmpeg.exe -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex  "[0:v]scale=iw/2:ih/2,pad=2*iw:2*ih[a]; [1:v]scale=iw/2:ih/2[b]; [2:v]scale=iw/2:ih/2[c];  [3:v]scale=iw/2:ih/2[d];[a][b]overlay=w[x];[x][c]overlay=0:h[y];[y][d]overlay=w:h[v];[0:a][1:a][2:a][3:a]amix=inputs=4[a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac output.mp4

1、参数说明

  1. -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4:这些是输入文件的参数,指定了四个视频文件作为输入。为了简单我这里采用一个视频复制4份使用。
  2. -filter_complex:这个参数用来指定一个复杂的过滤器图,用于处理和组合视频和音频流。
    [0:v]scale=iw/2:ih/2,pad=2iw:2ih[a];:这个过滤器首先将第一个视频流([0:v])的大小缩小到原来的一半(scale=iw/2:ih/2),然后使用pad过滤器将视频画面扩大到原始宽度的两倍和原始高度的两倍,准备放置其他视频。结果标记为[a]。
    [1:v]scale=iw/2:ih/2[b]; [2:v]scale=iw/2:ih/2[c]; [3:v]scale=iw/2:ih/2[d];:这些过滤器将其他三个视频流的大小也缩小到原来的一半,并分别标记为[b]、[c]、[d]。
    [a][b]overlay=w[x];:这个过滤器将视频[b]覆盖到视频[a]上,位置为宽度w的位置,即右上角,结果标记为[x]。
    [x][c]overlay=0:h[y];:将视频[c]覆盖到[x]上,位置为高度h的位置,即左下角,结果标记为[y]。
    [y][d]overlay=w:h[v];:将视频[d]覆盖到[y]上,位置为宽度w和高度h的位置,即右下角,最终的视频流标记为[v]。
  3. [0:a][1:a][2:a][3:a]amix=inputs=4[a]:这个过滤器将四个视频的音频流混合成一个音频流。amix=inputs=4表示混合四个输入,结果标记为[a]。
  4. -map “[v]” -map “[a]”:这些参数指定了要从过滤器图中映射到输出文件的流。"[v]“是最终的视频流,”[a]"是混合后的音频流。
  5. -c:v libx264 -c:a aac:这些参数指定了视频和音频的编码器。视频使用libx264编码器,音频使用aac编码器。
  6. output.mp4:这是输出文件的名称。

OK!
至此,问题解决。欢迎留言交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/428196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS学习(九)选址分析

ArcGIS学习(九)选址分析 本任务给大家带来的案例是租房选址分析。选址分析是我们平时经常接触到的分析场景。概括起来说,选址分析就是根据选址条件来确定哪些区域满足我们的选址要求。首先,先来看看我们这个案例的场景和基础数据。我们以某个城市某一租客的租房选址为例。…

深入理解Docker

文章目录 1 Docker理论1.1 背景知识1.2 是什么1.3 Docker基本三要素1.4 镜像原理1.5 安装教程 2 Docker常用命令2.0 防火墙相关命令2.1 镜像命令2.2 容器命令2.3 进阶命令 3. 实战之Docker部署springboot项目步骤一:Springboot项目配置1.1 添加docker的maven依赖1.2…

vue项目中使用antvX6新手教程,附demo案例讲解(可拖拽流程图、网络拓扑图)

前言: 之前分别做了vue2和vue3项目里的网络拓扑图功能,发现对antv X6的讲解博客比较少,最近终于得闲码一篇了! 需求: 用户可以自己拖拽节点,节点之间可以随意连线,保存拓扑图数据后传给后端&…

力扣61:旋转链表

题目 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2输出:[4,5,1,2,3] 示例 2: 输入:head [0,1,2], k 4输出:…

【硬件相关】Mellanox网络配置及参数优化

文章目录 一、前言1、硬件配置2、网卡信息 二、驱动安装1、驱动介绍2、软件架构2.1、mlx4 VPI Driver2.2、mlx5 Driver 3、驱动安装3.1、常规安装3.2、驱动编译方法一方法二 4、RDMA配置 三、交换机配置四、mlnx-tools管理工具1、软件安装2、软件使用ibdev2netdeva、说明b、用法…

【MySQL系列】在 MacOS 上安装 MySQL

在 MacOS 上有两种方式安装 MySQL 服务器:通过 brew 安装和通过安装包安装。 文章目录 1、通过 brew 安装 MySQL1.1、安装 MySQL1.2、启动 MySQL 服务器1.3、配置 MySQL 服务器1.4、MySQL 服务器管理命令 2、通过安装包安装 MySQL2.1、下载安装包2.2、安装 MySQL2.3…

Vue3:使用 Composition API 不需要 Pinia

在 Vue.js 开发的动态环境中,在单个组件中处理复杂的业务逻辑可能会导致笨重的文件和维护噩梦。虽然 Pinia 提供集中式状态管理,但仅依赖它来处理复杂的业务逻辑可能会导致代码混乱。本文探讨了使用 Composition API 的替代方法,说明开发人员…

mysql学习笔记5——对表的修改操作

对表的列进行操作 对表可以进行创建create与删除drop,同时可以对表进行修改alter 修改字段 添加字段 删除具体的某一列 添加列时可以指定添加位置 对表的数据进行操作 select查询操作可以指定查询条件 删除具体数据(而非删除表中某一列某一行&#xf…

【重要公告】对BSV警报系统AS的释义

​​发表时间:2024年2月15日 由BSV区块链协会开发并管理的BSV警报系统(Alert System,以下简称“AS”)是BSV网络的重要组件。它是一个复杂的系统,主要职能是在BSV区块链网络内发布信息。这些信息通常与网络访问规则NAR相…

ChatGPT论文指南|ChatGPT如何助力论文中的数据分析!【建议收藏】

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 公众号原文▼▼▼▼: ChatGPT论文指南|ChatGPT如何助力论文中的数据分析!【建议收藏】 小编在之前的论文写作流程中,介绍了大量论文文字工作&#xff…

VUE引入高德地图区域划分district结果为空(Cannot read properties of undefined (reading ‘0‘))

1.错误 Uncaught TypeError: Cannot read properties of undefined (reading 0) 通过debugger去看status、result结果status为no_data,而result为空 2.原因 大概率就是key过期了或者配置错了 3.正确配置 </script> <!-- 注意&#xff1a;导入密钥要在接口上面&…

2024.3.4 作业

1、流式域套接字 1>tcp服务端实现 #include<myhead.h> int main(int argc, const char *argv[]) {//1、创建套接字int sfd socket(AF_UNIX, SOCK_STREAM, 0);if(sfd -1){perror("socket error");return -1;}//2、判断套接字文件是否存在&#xff0c;如果…

史上最细,企业性能测试步骤详细,测试老鸟带你一篇打通!

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、性能测试流程 …

总线要点笔记

1. AXI/AHB/APB差异 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance Bus) 高级高性能总线 ASB (Advanced System Bus) 高级系统总线 APB (Advanced Peripheral Bus) 高级外围总线 AXI (Advanced eXtensible Interface) …

【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+差分)

[蓝桥杯 2019 省 B] 等差数列 题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列&#xff0c;只记得其中 N N N 个整数。 现在给出这 N N N 个整数&#xff0c;小明想知道包含这 N N N 个整数的最短的等差数列有几项&#xff1f; 输…

探究大语言模型如何使用长上下文

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 论文链接&#xff1a;https://doi.org/10.1162/tacl_a_00638 论文标题&#xff1a;Lost in the Middle: How Language Models Use Long Contexts 论文发表期刊&#xff1a;Transactions of the Assoc…

【Apple Vision Pro应用】Cinephile——Cinema Mode for Local Video(苹果眼睛视频播放器)

Cinephile 为您提供了一个完全无干扰、无限制的无限空间&#xff0c;让您尽享视频的精彩。它创造了一种身临其境的环境&#xff0c;您可以在能够想象到的最大屏幕上&#xff0c;从任何角度或位置观看内容。 您可以根据个人喜好自由调整视频的大小和位置。添加视频中的环境光&am…

MoonBit 新增 += 运算符,引入 super trait 和 List 字面量机制

MoonBit更新 1. 添加了 系列语句 包括、-、*、/&#xff0c;支持运算符重载&#xff1a; fn init {let array [1,2,3,4]array[2] * 10println(array) // [1, 2, 30, 4] }fn init {let mut a 1a 20println(a) // 21 } struct Foo {data : Array[Int] } derive(Debug)fn o…

转载-七种Java常用序列化框架的选型与对比

七种Java常用序列化框架的选型与对比 本文章转自&#xff1a;乐字节 文章主要讲解&#xff1a;Java常用序列化框架 获取更多前端相关资料可以点击链接加入群聊【Java技术交流群】&#xff1a;正在跳转暗号&#xff1a;166 转载地址&#xff1a;七种Java常用序列化框架的选型…

Linux设备模型(九) - bus/device/device_driver/class

一&#xff0c;设备驱动模型 1&#xff0c;概述 在前面写的驱动中&#xff0c;我们发现编写驱动有个固定的模式只有往里面套代码就可以了&#xff0c;它们之间的大致流程可以总结如下&#xff1a; 实现入口函数xxx_init()和卸载函数xxx_exit() 申请设备号 register_chrdev_r…
最新文章