FFMPEG常用命令 音视频合并

news2025/1/9 0:18:58

       

目录

一、音频合并

1.获取音频时长

2.合并两段音频

3.合并音频插入空白

二、视频加背景图

三、音视频合成

1.保留视频声音

2.不保留视频声音

四、合并视频


        本文将用几个实例,介绍ffmpeg命令的综合使用,主要涉及音频处理、视频处理和音视频合成。

一、音频合并

1.获取音频时长

ffprobe -i 1.mp3 -show_entries format=duration -v quiet -of csv="p=0"

2.合并两段音频

ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3

参数解释:

-ac:设定声音的channel数 

-c:a:指定音频编码器

libmp3lame:mp3音频编码器

-q:a:表示输出的音频质量,一般是1到5之间(1 为质量最高) 

3.合并音频插入空白

        合并三段音频,在每段之间加入一秒的空白。

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex "[1:a]adelay=1000[a1];[2:a]adelay=1000[a2];[0:a][a1][a2]concat=n=3:v=0:a=1" output.mp3

参数解释:

[1:a]adelay=1000[a1]:第2段素材的音频(如果是视频就是[1:v]),延迟1000毫秒播放,并且赋值为a1,供后面使用。同理定义了a2。

[0:a][a1][a2]concat=n=3:将第一段素材的音频、a1和a2合并,n=3表示三段。

v=0:a=1:不要声音,只要音频。

二、视频加背景图

        将横版视频放在一个1080x1920的竖版背景前面,上下距离一样;然后把一个透明背景的字幕图片房子爱最上面,实现如下效果:

ffmpeg -i 1.mp4 -i bg.jpg -i font.png -filter_complex "[0:v]scale=1080:-1[video];[1:v][video]overlay=x=0:y=(1920-h)/2[v1];[v1][2:v]overlay" -codec:a copy  output1.mp4

参数解释:

[0:v]scale=1080:-1[video]:第一个素材的只取视频,按比例resize成宽1080,输出赋值为video。

[1:v][video]overlay=x=0:y=(1920-h)/2[v1]:将第video放在背景图上层,位置是x,y,输出赋值为v1.

[v1][2:v]overlay:将第三个素材的视频放在v1上层。

-codec:a copy:指定声音的编码器,需使用能力集列表中的名称(编码器设定为”copy“表示不进行编解码)。

三、音视频合成

1.保留视频声音

        原视频有声音,在保持原视频声音不变的情况下,添加背景音,并让背景音音量变小。

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[1:a]volume=0.3[a1];[0:a][a1]amix=inputs=2:duration=first[a]" -map 0:v -map "[a]" -c:v copy -c:a aac -y output.mp4

参数解释:

[1:a]volume=0.3[a1]:第二个素材的音频音量取30%,输出赋值为a1;

[0:a][a1]amix=inputs=2:duration=first[a]:第一个素材(视频)的声音和背景音混合,时长为第一个素材的声音,输出赋值a;

-map 0:v:视频流式拼接,这里只有一个视频;

-map "[a]":音频流式拼接,这里取刚刚输出的a;

-c:v copy:视频编码不变;

-c:a aac :音频编码acc。

2.不保留视频声音

        去掉原视频的声音,重新配音,并且声音前增加1秒的空白。

ffmpeg -i 1.mp4 -i 1.mp3 -filter_complex "[0:v]trim=0:10.1[v];[1:a]adelay=1000[a];[v][a]concat=n=1:v=1:a=1" -c:v libx264 -c:a aac -movflags +faststart output.mp4

参数说明:

[0:v]trim=0:10.1[v]:视频取1-10.1秒,这里单位是秒,输出赋值v;

[1:a]adelay=1000[a]:音频演示1000毫秒播放,这里单位是毫秒;

[v][a]concat=n=1:v=1:a=1:音视频合在一起,输出需要视频和音频;

-c:v libx264:视频编码使用x264;

-c:a aac:音频编码acc;

-movflags +faststart :这个参数跟mp4的元数据有关,设为faststart表示会将moov移动到mdat的前面,在线播放的时候会稍微快一些。

四、合并视频

        将多个视频进行合并,可以先生成视频列表文件,如merge_video.txt,内容下:

file '1.mp4'
file '2.mp4'
file '3.mp4'
file '4.mp4'

        然后使用这个文件进行视频合并:

ffmpeg.exe -f concat -safe 0 -i merge_video.txt -c copy -y merge_video.mp4

参数说明:

-f concat:表示拼接操作;

-safe 0:标记文件安全检查的级别为0,即不考虑安全因素;

-c copy:编码不变;

-y:输出文件覆盖

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何搭建自己的CentOS系统

CentOS是一个完全免费的操作系统,这对于开发人员来说非常有吸引力。他们可以使用CentOS来开发和测试应用程序,而不需要支付任何费用。那么作为程序员如果搭建自己的CentOS服务器呢? 搭建自己的CentOS系统需要以下步骤: 1、下载Ce…

借助KafkaTool在海量Kafka数据快速精准定位/查询目标数据

如何在海量的Kafka数据定位/查询精准到秒级的数据? 解决方案:Kafka命令 KafkaTool 1. 使用Kafka命令定位Offset sh ./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list $ip:$port -topic ${topic.name} -time $timestamp参数说明&#…

程序员大战黄牛党,破解演唱会门票秒光之困

反黄牛,为何是场持久战? 撰文 | 林秋艺 编辑 | 龚 正 这个五月,似乎都被五月天霸屏了。从5月9日的30万张五月天演唱会门票被5秒扫光;到粉丝群起反抗,喊出“宁可鸟巢门口站,也不能让黄牛赚”,…

基于实体类导出excel模板

很多需求是导入excel的功能&#xff0c;但是导入的时候需要excel模板。如果很多模板的&#xff0c;就需要一个通过工具类来实现了&#xff0c;根据配置好一个实体类来实现模板的导出。 <dependency><groupId>org.jodd</groupId><artifactId>jodd-core&…

创建型设计模式03-原型模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 &#x1f3e1;账号&#xff1a;CSDN 、个人博客 、Github &#x1f38a;公众号&#xff1a;猫十二懿 原型模式 1、原型模式介绍 原型模式是一种创建型设计模式&#xff0c;它允许通过复制现有对象来生成新对象&#xf…

【大数据处理与可视化】五、数据聚合与分组运算

【大数据处理与可视化】五、数据聚合与分组运算 实验目的实验内容实验步骤一、案例——运动员信息的分组与聚合1、统计男篮、女篮运动员的平均年龄、身高、体重2、统计男篮运动员的平均年龄、身高、体重的极差值3、统计男篮运动员的体质指数 实验小结 实验目的 能够熟练运用gr…

NISEDIT如何发布,Qt如何发布文章?难道还有人不会(超详细教学,跟着走,不会你怪我)

一、自动发布 直接运行即可&#xff0c;不过多阐述。 二、手动发布 文件清单&#xff1a; ExamSys.exe account.txt、exam.txt Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll libstdc-6.dll、libwinpthread-1.dll、libgcc_s_sjlj-1.dll、libgcc_s_dw2-1.dll 注意&#xff1a…

Vue项目中vuex的安装和使用

Vue项目中vuex的安装和使用 1. 安装vuex2. 导入vuex包并创建store仓库3. 在main.js中导入store实例4. 检测vuex是否能正常使用 1. 安装vuex npm install vuex --save2. 导入vuex包并创建store仓库 在项目文件目录中&#xff0c;在src目录下创建一个名为store的文件夹&#xf…

图表控件LightningChart JS使用指南 - 如何创建仪表图

LightningChart JS是性能最高的JavaScript图表库&#xff0c;专注于实时数据可视化。是Web上性能最高的图表库具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用&#xff0c;从而实现高刷新率和流畅的动画。…

【大数据处理与可视化】六、数据可视化

【大数据处理与可视化】六、数据可视化 实验目的实验内容实验步骤一、案例——画图分析某年旅游景点数据1、河北省总面积和游客量位居前三的景点2、河北省旅游量的占比哪个最多&#xff0c;哪个最少。 实验小结 实验目的 1.能够详述常见图表的类型和特点。 2.能够熟练运用Matp…

ELFK日志分析系统并使用Filter对日志数据进行处理

目录 一、 FilebeatELK 部署Filebeat 节点上操作 二、Filtergrok 正则捕获插件内置正则表达式调用自定义表达式调用 mutate 数据修改插件multiline 多行合并插件date 时间处理插件 一、 FilebeatELK 部署 Node1节点&#xff08;2C/4G&#xff09;&#xff1a;node1/192.168.15…

【数据结构】虽然很难很抽象,但是你还是得努力弄懂的数据结构——数组,你常用但是你懂它吗

数组(Array) 数组是实现顺序存储结构的基础,数组(Array)存储具有相同数据类型的元素集合.一维数组占用一块内存空间,数组的存储单元个数称为数组容量,也称为数组长度. 每个存储单元的地址是连续的,即每个元素连续存储,计算第i个元素地址所需时间是一个常量,时间复杂度是O(1),…

【论文解读|GL-Cache 】基于组级学习的缓存替换算法

论文原文&#xff1a; GL-Cache: Group-level learning for efficient and high-performance caching | FAST 23 源码 地址&#xff1a; GitHub - Thesys-lab/fast23-GLCache: Repository for FAST23 paper GL-Cache: Group-level Learning for Efficient and High-Performance…

基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Pycharm 环境ChatterBot 环境 模块实现1. 模型构建2. 服务器端3. 客户端4. 语音录入5. 接口调用6.模型训练及保存 系统测试1. 模型效果2. 模型应用 参考资料其它资料下载 前言 本项目基于机器学习和语义识别技术…

Qt翻金币小游戏详细教程(内涵所有源码、图片资源)

一、项目简介 翻金币项目是一款经典的益智类游戏&#xff0c;我们需要将金币都翻成同色&#xff0c;才视为胜利。首先&#xff0c;开始界面如下&#xff1a; 点击start按钮&#xff0c;进入下层界面&#xff0c;选择关卡&#xff1a; 在这里我们设立了20个关卡供玩家选择&…

IDEA使用技巧

1. 安装教程 1.1 安装过程 1.2 安装后的软件目录结构 目录结构&#xff1a; bin&#xff1a;容器&#xff0c;执行文件和启动参数等 这里以我的电脑系统(64 位 windows7&#xff0c; 16G 内存)为例&#xff0c;说明一下如何调整 VM 配置文件&#xff1a; 1、大家根据电脑系统…

【(Ubuntu22.04 Jammy)安装ROS 2 Iron Irwini】

ROS2 IronIrwini的Debian软件包目前可用于Ubuntu22.04 Jammy 1、安装ROS2 IronIrwini前准备 需要先安装好Ubuntu22.04 Jammy的前提下开始安装ROS2 1.1 Set locale 请确保Set locale支持UTF-8 locale # check for UTF-8sudo apt update && sudo apt install locale…

Rhapsody新手提示(1)如何在安装之后更换界面语言

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 安装之后&#xff0c;如果还想更换界面语言&#xff0c;Windows平台操作如下&#xff1a; &#xff08;1&#xff09;在C:\ProgramData\IBM\Rhapsody\9.0.1x64文件夹下找到…

2023 年最新、最全、最实用的 Java 岗面试真题,已收录 GitHub

Java 面试 Java 作为编程语言中的 NO.1,选择入行做 IT 做编程开发的人&#xff0c;基本都把它作为首选语言,进大厂拿高薪也是大多数小伙伴们的梦想。以前 Java 岗位人才的空缺&#xff0c;而需求量又大&#xff0c;所以这种人才供不应求的现状&#xff0c;就是 Java 工程师的薪…

WIN32 API —— 最简单的Windows窗口封装类[通俗易懂]

1 开发语言抉择 1.1 关于开发Win32 程序的语言选择 C还是C 在决定抛弃MFC&#xff0c;而使用纯Win32 API 开发Window桌面程序之后&#xff0c;还存在一个语言的选择&#xff0c;这就是是否使用C。C作为C的超集&#xff0c;能实现所有C能实现的功能。其实反之亦然&#xff0c;…