不同持续时间输入的 FFMPEG amix 滤波器音量问题

2023-12-14

我注意到ffmpeg amix过滤器在特定情况下不会输出良好的结果。如果输入文件具有相同的持续时间,它就可以正常工作。在这种情况下,成交量会以恒定值下降,并且可以通过以下方式固定:",volume=2".

就我而言,我使用不同持续时间的文件。结果体积不好。第一个混合流的音量最低,最后一个混合流的音量最高。您可以在图像上看到体积随时间线性增加。

enter image description here

我的命令:

ffmpeg -i temp_0.mp4 -i user_2123_10.mp4  -i user_2123_3.mp4  -i user_2123_4.mp4  
-i user_2123_7.mp4  -i user_2123_5.mp4  -i user_2123_1.mp4  -i user_2123_8.mp4  
-i user_2123_0.mp4  -i user_2123_6.mp4  -i user_2123_9.mp4  -i user_2123_2.mp4  
-i user_2123_11.mp4 -filter_complex "[1:a]adelay=34741.0[aud1];
[2:a]adelay=18241.0[aud2];[3:a]adelay=20602.0[aud3];
[4:a]adelay=27852.0[aud4];[5:a]adelay=22941.0[aud5];
[6:a]adelay=13142.0[aud6];[7:a]adelay=29810.0[aud7];
[8:a]adelay=12.0[aud8];[9:a]adelay=25692.0[aud9];
[10:a]adelay=32143.002[aud10];[11:a]adelay=16101.0[aud11];
[12:a]adelay=40848.0[aud12];
[0:a][aud1][aud2][aud3][aud4][aud5][aud6][aud7]
[aud8][aud9][aud10][aud11]
[aud12]amix=inputs=13:duration=first:dropout_transition=0" 
-vcodec copy -y temp_1.mp4

这可以通过在每个剪辑的开头和结尾应用静音来解决,然后它们将具有相同的持续时间并且音量将处于相同的水平。

请建议我如何使用amix混合许多输入并确保恒定的音量水平。


amix缩放每个输入的音量1/n其中 n = 否。有源输入。这是针对每个音频帧进行评估的。因此,当一个输入消失时,剩余输入的体积会按较小的量缩放,因此它们的体积会增加。

正如其他答案中所建议的,更改所有早期输入的 dropout_transition 是一种方法,但我认为这会导致粗略的音量调制。更好的方法是在混合后标准化音频。

目前,您有两种选择,loudnorm or the 动态范数筛选。后者要快得多

语法是在 amix 之后添加它,所以

[aud11][aud12]amix=inputs=13:duration=first:dropout_transition=0,dynaudnorm"

如果您想调整最大音量或 RMS 模式标准化参数等,请阅读文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不同持续时间输入的 FFMPEG amix 滤波器音量问题 的相关文章

  • 在 macOS 上为 MoviePy 安装 ffmpeg 失败并出现 SSL 错误

    我正在尝试编写一个 Python 程序 在 Mac OS 10 11 16 上使用 MoviePy 将 MP4 文件转换为 GIF 我用 import moviepy editor as mp 我收到一条错误消息 说我需要打电话imagei
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知
  • 在浏览器中以低延迟捕获声音输入

    是否可以在浏览器中捕获低延迟的声音输入 主要用于录制吉他 我知道这也取决于硬件 但我们假设硬件足够好 我尝试使用 Web Audio API 但它的延迟有点糟糕 是否还有其他技术可以在浏览器中提供高性能的声音输入捕获 可以使用Unity3D
  • 如何在Mac上使用AVFoundation将图片编码为H264,而不是使用x264

    我正在尝试制作一个 Mac 广播客户端 使用 FFmpeg 但不使用 x264 库编码为 H264 所以基本上 我可以从 AVFoundation 中获取原始帧CMSampleBufferRef or AVPicture 那么有没有一种方法
  • FFMPEG:使用具有复杂滤波器的视频滤波器

    我正在使用fluent ffmpeg用于对视频文件执行批量操作的 Node js 库 视频过滤器裁剪 16 9 输入 添加填充并将字幕刻录到填充中 在下一步中 我想使用复杂的滤镜来覆盖图像作为水印 ff input video mp4 ff
  • 捕获当前正在播放的声音

    是否可以捕获计算机上当前播放的声音 如果能够将其保存为 mp3 就好了 但我认为这样做会存在一些法律问题 所以 wav 也可以 我环顾四周 有人建议使用虚拟音频线之类的东西 在 C 中捕获声音输出 https stackoverflow c
  • 致命错误:libavcodec/avcodec.h 没有这样的文件或目录编译终止

    我正在尝试使用 gcc 执行tutorial01 c 并且 gcc 和tutorial01 c 以及 libavcodec 和 libavformat 及其关联文件位于同一文件夹中 它给了我这个错误 致命错误 libavcodec avco
  • 如何让 Python 找到 ffprobe?

    I have ffmpeg and ffprobe安装在我的 mac macOS Sierra 上 并且我已将它们的路径添加到 PATH 中 我可以从终端运行它们 我正在尝试使用ffprobe使用以下代码获取视频文件的宽度和高度 impor
  • 使用 Coldfusion 的 CFFILE 标签监控 FFMpeg 的进度日志

    我想学习如何使用 ColdFusion 中的 CFFILE 标签来读取文本文件的内容 就我而言 该文本文件是 FFMpeg 在对媒体文件进行转码时生成的进度日志 我想编写一个 ColdFusion 脚本 该脚本将定期轮询进度日志 直到日志表
  • Node.js - 将数据缓冲到 Ffmpeg

    我使用 Node js 和 Ffmpeg 来创建动画 因为我试图避免第三方 avi mp4 解析器 所以我决定将动画输出为原始 rgb24 数据文件 然后使用一些程序将其转换为 mp4 文件 我发现 Ffmpeg 是免费且开源的 它完全可以
  • 如何将背景音乐添加到我的 spritekit 文件中

    有人可以给我一个快速简单的步骤 以便在我的应用程序加载后添加背景 m4a 音乐 它是一个精灵套件Xcode文件 音乐是m4a格式 谢谢 尝试用这个 import AVFoundation AVAudioPlayer backgroundMu
  • Python FFmpeg查询rtsp太慢

    目前 我正在尝试使用 python 和 FFmpeg 来查询原始格式为 h264 的 rtsp 数据 直播流视频的信息为 fps 29 分辨率 1280 720 我希望我可以以相同的格式 h264 查询数据并将其放入python队列中以便将
  • 在 Windows Phone 8 中以编程方式下载媒体文件

    我们的应用程序是基于视频 音频的应用程序 我们已将所有媒体上传到 Windows Azure 上 但需要方便用户点播下载音视频文件 以便在本地播放 所以我需要以编程方式下载音频 视频文件并将其保存在IsolatedStorage中 我们有每
  • 如何在 RTMP 流中嵌入 pic_timing SEI 挂钟时间码?

    我需要将我的桌面流式传输到 AWS MediaLive 服务 并且根据要求 我必须在流中包含挂钟时间码 AWS 支持人员善意地通知我 对于 h 264 编码流 我需要提供时间码作为 pic timing SEI 消息 我在 Windows
  • FFmpeg av_read_frame 无法正确读取帧?

    好吧 我已经下载了一些 yuv 格式的原始 UHD 序列 并在 mp4 容器中使用 ffmpeg 对其进行编码 h264 4 4 4 100 质量 25fps 当我使用 ffprobe 找出编码了多少帧时 我得到 600 所以这是 24 秒
  • 如何让游戏音频在某个点循环播放

    我的游戏中有一场风暴 所以我制作了一个环境音频文件 它慢慢成长为一场风暴 雨逐渐消失 然后变成一个可循环的风暴音频文件 我是这样做的 Play intro clip and merge into main loop var introTim
  • FFMPEG:将 YUV 数据转储到 AVFrame 结构中

    我正在尝试转储YUV420数据进入AVFrameFFMPEG 的结构 从下面的链接 http ffmpeg org doxygen trunk structAVFrame html http ffmpeg org doxygen trunk
  • 如何禁用 WebBrowser 控件中的点击声音

    我使用 Javascript 单击网络浏览器控件中的链接 但我不想听到IE的 咔哒 声 有什么办法可以做到这一点吗 P S 我不想更改系统设置 我见过这个 如何仅在您的应用程序中禁用网络浏览器 点击声音 https stackoverflo

随机推荐

  • WiX ICE30 错误但目录正确

    我的 WiX 3 10 3 3007 项目有 2 个不同的 web config 文件 它们安装在 2 个不同的位置 我的构建中的 2 个错误是 错误 ICE30 目标文件 svcenub9 con Web config 由 LFN 系统上
  • 什么是 Docker 镜像“层”?

    我是 Docker 的新手 我正在尝试确切地了解 Docker 是什么image是 Docker 镜像的每个定义都使用术语 层 但似乎没有定义 层 的含义layer 来自官方Docker 文档 我们已经看到 Docker 镜像是启动 Doc
  • 如何让 Twig 将 HTML 输出写入文件而不是浏览器?

    我有一个想要渲染的 Twig 模板 html 文件 将标记替换为 PHP 文件中的值 然而 我不想将渲染结果发送到浏览器 而是将其写入新的 html 文件 我想 Django 模板的解决方案也是类似的 我怎样才能在 PHP 中做到这一点 您
  • 按位乘以 5/8 观察溢出

    我被分配了一大堆问题 这是唯一一个我不知道如何优化的问题 目标是乘以 5 8 舍入到 0 并防止溢出 运算顺序是乘以 5 然后除以 8 即 11 5 8 6 优化的目标是使用 12 个或更少的运算符 规定仅此而已 允许 gt 运算和8 位整
  • JTable -> TableModeListener

    我有这个JTable有一个DefaultTableModel作为它的模型 桌子上我有几个秋千组件 JComboBox and JCheckBox 通过设置在特定列上DefaultCellEditor and DefaultCellRende
  • SecCopyErrorMessageString 在 swift 中给出“使用未解析的标识符”

    尝试使用 SecCopyErrorMessageString 来解释 errorCode 迅速 var result OSStatus result SecItemAdd query as CFDictionary nil if resul
  • Firebase 与 Swift 对observeEventType 的使用不明确

    因为这个我一直在拔头发 转到包含相关事件和多个教程的所有页面 我发现这里的代码没有任何问题 但不知怎的 如果我打印出值 有效 或将它们分配为 它就不会失败 NSArray 然后给我一个空数组 snapshot value 的打印显示 fri
  • 在 Netbeans 中编译简单的新 CUDA 项目

    我在 Netbeans 中创建了新的 C Application 并想要编译简单的 CUDA 例如 include
  • C11可选功能宏在哪里?

    C11 标准中写道 编译器应该提供一些宏来测试可选功能的存在 我可以在哪些标题中找到它们 例如位于哪里 STDC NO VLA 对于 GCC 即 如果我尝试找到 STDC NO COMPLEX into complex h我在那里没找到 它
  • R - if 条件的子集数据

    如何使用逻辑条件对数据进行子集化 假设我有如下数据 我想对数据集进行子集化 第一个条件是所有动物都有 FCR 记录 然后我想将所有动物与新数据集中的这些动物放在同一个围栏中 animal Feed Litter Pen 1 0 2 5 3
  • Gearman:仍然没有办法从后台工作者检索自定义数据吗?

    首先 我知道this问题 Gearman 将数据从后台工作人员发送到客户端 我想知道 Gearman还是这样吗 我计划将一批图像 URL 从 PHP Web 应用程序发送到 gearman Worker 也是用 PHP 编写的 我们称之为
  • 使用 MVVM,每个 UI 窗口都有自己的 ViewModel 吗?

    当我在 MVVM 模式下设计多个视图时 每个视图是否都有自己的 ViewModel 还是它们都共享同一个 ViewModel 我知道这最终是一个灵活的决定 但最佳实践是什么 我的直觉告诉我每个视图 即每个单独的 UI 窗口 都有一个 Vie
  • 只让某些内部div控制外部div的宽度

    我有以下 html 结构 div div img src someimage path div div Some Text div div Some Text div div 容器是float left 容器将伸展到最宽的 div 但是如果
  • 为什么这个 VLA(可变长度数组)定义不可靠?

    为什么定义和使用 VLA 可变长度数组 的代码不能可靠地工作 include
  • 从基础组件导入找不到变量

    我创建了一个 BaseComponent 它将在所有其他组件中扩展 import React Component from react import ScrollView Text Image View TouchableOpacity T
  • libpcap - 从所有接口捕获数据包

    我需要从 Linux 机器上的所有网络接口捕获数据包 为了做到这一点 我计划使用pcap open live API 并传递 any 作为设备参数 我有不同类型的端口 以太网端口 例如 eth0 和 GRE 隧道 例如 tun0 来自不同类
  • npm start 不起作用 npm (错误!在 [email protected] 启动脚本处失败。)

    我正在使用示例link学习角度 但当我跑步时npm 启动它显示错误 我搜索了它要求更新 npm 或 Angular 版本的解决方案 但我已经在使用最新版本 如下所示 npm v 6 4 1 节点 v 10 9 0 角度 CLI 6 1 5
  • Microsoft Visual Studio:在Qt应用程序中加载资源(无插件)

    我们没有为 MSVS 安装 Qt 插件 这让我想知道如何 是否可以将资源 图像等 加载到应用程序中 是的 您可以加载资源 不幸的是 创建 qrc 文件的 qrc 编辑器是 Qt Addin for VS 的一部分 但是你可以手动创建这个xm
  • 如何为JTree单元设置透明背景?

    Folks 我正在尝试创建一个渐变 JTree 控件 除了树单元的背景不透明之外 以下代码大部分都可以工作 如果有人打电话告诉我我做错了什么 我将不胜感激 预先感谢您的帮助 问候 Peter package TestPackage impo
  • 不同持续时间输入的 FFMPEG amix 滤波器音量问题

    我注意到ffmpeg amix过滤器在特定情况下不会输出良好的结果 如果输入文件具有相同的持续时间 它就可以正常工作 在这种情况下 成交量会以恒定值下降 并且可以通过以下方式固定 volume 2 就我而言 我使用不同持续时间的文件 结果体