20240127使用ffmpeg合并音轨和视频通道为mp4

20240127使用ffmpeg合并音轨和视频通道为mp4
2024/1/27 11:11


百度:ffmpeg 合并 音频和视频 mp4

ffmpeg -i 视频文件名.mp4 -i 音频文件名.mp3 -c:v copy -c:a aac -strict experimental 输出文件名.mp4
ffmpeg -i "videoplayback (1).mp4" -i videoplayback.m4a -c:v copy -c:a copy -strict experimental 888.mp4


https://www.zhihu.com/question/300182407/answer/3149900738
如何用ffmpeg合并音频和视频?

1.用ffmpeg来合并音频和视频
2.用野葱视频转换器
3.Online UniConverter的合并视频工具
首先,何必自己来使用ffmpeg合并音频和视频呢?你有点编程基础吗?

没有的话,即使你照猫画虎的把我的方法搬过去,但一旦出现问题,你就会手足无措,完全不会了,这样就又白白浪费了一些时间了。

所以,这里我就先简单给你说说咋用ffmpeg来合并,然后再给你讲讲其他一些更好的方法。

1.用ffmpeg来合并音频和视频
下面这段非常干货,希望你能理解哈!

1.安装FFmpeg: 首先,确保已经安装了FFmpeg。(安装包你自己找)

2.准备音频和视频文件: 将你要合并的音频和视频文件准备好,确保它们位于同一文件夹中。

3.打开命令行终端: 打开一个命令行终端窗口,进入存放音频和视频文件的文件夹。

4.使用FFmpeg命令合并: 使用以下命令来合并音频和视频文件:

ffmpeg -i 视频文件名.mp4 -i 音频文件名.mp3 -c:v copy -c:a aac -strict experimental 输出文件名.mp4
-i:指定输入文件。
-c:v copy:复制视频流,以避免重新编码视频。
-c:a aac:使用AAC编码音频流。
-strict experimental:启用实验性的AAC编码模式(某些情况下需要)。
5.运行命令: 在命令行终端中运行上述命令,等待FFmpeg完成合并过程。

6.等待合并完成: 一旦命令执行完毕,FFmpeg将开始合并音频和视频文件。合并完成后,您将在文件夹中找到生成的合并文件。

能看懂吗?哈哈,所以哈,还是用我说的下面的这些简单的方法吧。


N:\SAW\等待处理\2022年10月6日_PyTorch for Deep Learning & Machine Learning – Full Course_freeCodeCamp.org-SAW【中文字幕异常】>ffmpeg -i "videoplayback (1).mp4" -i videoplayback.m4a -c:v copy -c:a copy -strict experimental 888.mp4
ffmpeg version 2020-11-04-git-cfdddec0c8-essentials_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      56. 60.100 / 56. 60.100
  libavcodec     58.112.101 / 58.112.101
  libavformat    58. 64.100 / 58. 64.100
  libavdevice    58. 11.102 / 58. 11.102
  libavfilter     7. 88.102 /  7. 88.102
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'videoplayback (1).mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2023-11-29T23:00:26.000000Z
  Duration: 25:37:25.30, start: 0.000000, bitrate: 347 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 0 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2023-11-29T23:00:26.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'videoplayback.m4a':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    creation_time   : 2023-11-29T23:10:35.000000Z
  Duration: 25:37:25.36, start: 0.000000, bitrate: 129 kb/s
    Stream #1:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 0 kb/s (default)
    Metadata:
      creation_time   : 2023-11-29T23:10:35.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Output #0, mp4, to '888.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    encoder         : Lavf58.64.100
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 0 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc (default)
    Metadata:
      creation_time   : 2023-11-29T23:00:26.000000Z
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 0 kb/s (default)
    Metadata:
      creation_time   : 2023-11-29T23:10:35.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=2767359 fps=8257 q=-1.0 Lsize= 5428350kB time=25:37:25.33 bitrate= 482.1kbits/s speed= 275x
video:3873370kB audio:1441334kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.138332%

N:\SAW\等待处理\2022年10月6日_PyTorch for Deep Learning & Machine Learning – Full Course_freeCodeCamp.org-SAW【中文字幕异常】>

https://blog.csdn.net/xian0710830114/article/details/130921272
FFMPEG常用命令 音视频合并

三、音视频合成
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的前面,在线播放的时候会稍微快一些。

参考资料:
https://www.zhihu.com/question/300182407/answer/2864026177
如何用ffmpeg合并音频和视频?

有人不知道ffmpeg是什么吗?这里先给大家简单科普一下~

Ffmpeg是一个开源的跨平台多媒体处理工具集,用于对音频、视频和多媒体流进行编解码、转换和编辑。

要想用它来合并音视频,可以使用下面的命令?
ffmpeg -i 视频文件.mp4 -i 音频文件.mp3 -c:v copy -c:a aac -strict experimental 输出文件.mp4
(-c:v copy 表示直接复制视频流;-c:a aac 使用 AAC 编码来处理音频流;-strict experimental是一个可选参数)
?这里我只是给大家举个例子,若真正要运行命令时,需把“视频文件.mp4”、“音频文件.mp3”以及“输出文件.mp4”替换成实际的文件名和路径。

执行了该命令后,ffmpeg就会合并视频和音频,并生成一个包含合并后内容的新文件。
若觉得上述操作过于复杂,不用担心,这里再给大家分享一些简单易上手的音视频合并工具,感兴趣的朋友可码住收藏哦~

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

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

相关文章

vue项目中使用Element多个Form表单同时验证

一、项目需求 在项目中一个页面中需要实现多个Form表单,并在页面提交时需要对多个Form表单进行校验,多个表单都校验成功时才能提交。 二、实现效果 三、多个表单验证 注意项:多个form表单,每个表单上都设置单独的model和ref&am…

Python tkinter (6) Listbox

Python的标准Tk GUI工具包的接口 tkinter系列文章 python tkinter窗口简单实现 Python tkinter (1) —— Label标签 Python tkinter (2) —— Button标签 Python tkinter (3) —— Entry标签 Python tkinter (4) —— Text控件 GUI 目录 Listbox 创建listbox 添加元素…

51-16 FusionAD 用于自动驾驶预测与规划任务的多模态融合论文精读

今天要分享的是基于BEV的多模态、多任务、端到端自动驾驶模型FusionAD,其专注于自动驾驶预测和规划任务。这项工作首次发表于2023年8月2日,性能超越了2023 CVPR最佳论文UniAD模型。论文题目是FusionAD: Multi-modality Fusion for Prediction and Planni…

【Java 数据结构】LinkedList与链表

LinkedList与链表 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3. LinkedList的模拟实现4.LinkedList的使用4.1 什么是LinkedList4.2LinkedList的使用 5. ArrayList和LinkedList的区别 1. ArrayList的缺陷 上节课已经熟悉了ArrayList的使用,并且…

vue3+elementPlus pc和小程序ai聊天文生图

websocket封装可以看上一篇文章 //pc端 <template><div class"common-layout theme-white"><el-container><el-aside><div class"title-box"><span>AI Chat</span></div><div class"chat-list&…

VMware安装RHEL-磁盘划分和分区

本文探讨了在VMware虚拟机上安装RHEL时遇到的磁盘划分和分区问题。文章详细介绍了磁盘划分过程中可能出现的问题&#xff0c;特别是在选择磁盘类型时可能导致找不到磁盘的情况。通过清晰的步骤和解决方法&#xff0c;读者可以更好地理解如何正确进行磁盘划分以及如何解决磁盘无…

银行数据仓库体系实践(3)--数据架构

狭义的数据仓库数据架构用来特指数据分布&#xff0c;广义的数据仓库数据架构还包括数据模型、数据标准和数据治理。即包含相对静态部分如元数据、业务对象数据模型、主数据、共享数据&#xff0c;也包含相对动态部分如数据流转、ETL、整合、访问应用和数据全生命周期管控治理。…

AWS 专题学习 P12 (CloudWatch、CloudTrail、AWS Config)

文章目录 专题总览1. CloudWatch1.1 Amazon CloudWatch Metrics1.2 CloudWatch Metric Streams1.3 CloudWatch LogsCloudWatch Logs - SourcesCloudWatch Logs Metric Filter & InsightsCloudWatch Logs – S3 ExportCloudWatch Logs SubscriptionsCloudWatch Logs Aggrega…

jetson-inference----训练自己的目标检测模型(一)

系列文章目录 jetson-inference入门 jetson-inference----docker内运行分类任务 jetson-inference----训练自己的目标检测模型&#xff08;一&#xff09; 文章目录 系列文章目录前言一、jetson-inference docker环境介绍二、SSD目标检测三、训练自己的目标检测模型总结 前言 …

自动驾驶的决策层逻辑

作者 / 阿宝 编辑 / 阿宝 出品 / 阿宝1990 自动驾驶意味着决策责任方的转移 我国2020至2025年将会是向高级自动驾驶跨越的关键5年。自动驾驶等级提高意味着对驾驶员参与度的需求降低&#xff0c;以L3级别为界&#xff0c;低级别自动驾驶环境监测主体和决策责任方仍保留于驾驶…

淘宝扭蛋机小程序:新时代的互动营销与娱乐体验

随着科技的快速发展&#xff0c;小程序已经成为人们日常生活中不可或缺的一部分。在众多的小程序中&#xff0c;淘宝扭蛋机小程序以其独特的互动性和趣味性&#xff0c;吸引了大量用户。本文将深入探讨淘宝扭蛋机小程序的特色、用户体验以及未来发展。 一、淘宝扭蛋机小程序的…

Mybatis 拦截器

MyBatis 拦截器&#xff08;Interceptor&#xff09;是 MyBatis 提供的一种强大机制&#xff0c;允许开发者在 SQL 映射语句执行过程中的特定节点进行拦截和定制处理。通过实现 org.apache.ibatis.plugin.Interceptor 接口并注册到 MyBatis 的配置文件中&#xff0c;可以插入自…

Python开发实例 – Lambda表达式

Python开发实例 – Lambda表达式 Python Development Examples – Lambda expression By JacksonML 普通的函数我们很常用&#xff0c;只需要通过 def 声明&#xff0c;并且产生一段代码&#xff0c;包含&#xff08;但不限于&#xff09;参数&#xff0c;返回&#xff08;或…

解决:‘chromedriver’ executable needs to be in PATH

解决&#xff1a;chromedriver’ executable needs to be in PATH 文章目录 解决&#xff1a;chromedriver’ executable needs to be in PATH背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff1a;检查python安装路径有没有添加到环境变量里面方法二&#xff1…

element-ui 树形控件 实现点击某个节点获取本身节点和底下所有的子节点数据

1、需求&#xff1a;点击树形控件中的某个节点&#xff0c;需要拿到它本身和底下所有的子节点的id 1、树形控件代码 <el-tree:data"deptOptions"node-click"getVisitCheckedNodes"ref"target_tree_Speech"node-key"id":default-ex…

漏洞复现-万户OA text2Html 任意文件读取(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

MIT_线性代数笔记:线性代数常用计算公式

目录 1.矩阵的加法和数乘2.矩阵的乘法3.转置 Transposes 相关运算 1.矩阵的加法和数乘 2.矩阵的乘法 1)标准方法&#xff08;行乘以列&#xff09; 矩阵乘法的标准计算方法是通过矩阵 A 第 i 行的行向量和矩阵 B 第 j 列的列向量点积得到 cij。即我们常说的点积&#xff0c;也…

华清远见作业第三十二天——C++(第一天)

思维导图&#xff1a; 提示并输入一个字符串&#xff0c;统计字符中大写、小写个数、空格个数以及其他字符个数要求使用C风格完成。 代码&#xff1a; #include <iostream> #include<array> using namespace std;int main() {string str;cout << "请输…

Python Flask与APScheduler构建简易任务监控

1. Flask Web Flask诞生于2010年&#xff0c;是用Python语言&#xff0c;基于Werkzeug工具箱编写的轻量级、灵活的Web开发框架&#xff0c;非常适合初学者或小型到中型的 Web 项目。 Flask本身相当于一个内核&#xff0c;其他几乎所有的功能都要用到扩展&#xff08;邮件扩展…

【异常收集】IDEA启动项目遇到的异常汇总,包括插件异常,版本依赖异常,启动异常等以及对应的解决办法

该文章旨在记录开发中遇到的一些异常&#xff0c;以供遇到似错误进行参考修改 一、项目在多个环境下切换&#xff0c;有一次启动后编译失败&#xff0c;报异常 背景&#xff1a;项目在不同环境下有对应的分支&#xff0c;切换分支后运行项目&#xff0c;报错如下 错误:Kotlin:…