Wav 音频文件压缩不起作用

2023-11-23

是否可以在不降低采样率的情况下压缩 wav 音频文件?

我有一个 256 比特率和采样率 - 8000Hz 的音频文件。我只想将比特率降低到 128/64 kbs

我尝试转换为 mp3 再转换回 wav, ffmpeg -i 输入.wav 1.mp3 ffmpeg -i“1.mp3”-acodec pcm_s16le -ar 4000 out.wav 但这也降低了采样率。 ffmpeg -i "1.mp3" -acodec pcm_s16le -ab 128 out.wav 默认为 256 比特率


PCM (WAV) 未压缩,因此-b:a/-ab被忽略。

WAV 的比特率直接受到采样率、通道布局和每个样本位数的影响。


计算 PCM/WAV 比特率

假设每秒 8000 个样本,立体声通道布局,每个样本 16 位:

sample rate × number of channels × bits per sample = bitrate
8000 × 2 × 16 = 256000 bits/s, or 256 kb/s

获取通道、采样率、位深度

您只需查看输出即可ffmpeg -i input.wav or use ffprobe为了更简洁的输出:

$ ffprobe -loglevel error -select_streams a -show_entries stream=sample_rate,channels,bits_per_sample -of default=nw=1 input.wav 
sample_rate=8000
channels=2
bits_per_sample=16

更改比特率

使用 WAV 时不应考虑比特率。如果比特率是个问题,那么 WAV 对您来说是错误的选择。话虽这么说,您可以通过更改来更改比特率:

  • 采样率(-ar)
  • 通道数(-ac)
  • 位深度。对于 PCM/WAV,位深度是编码器名称中列出的数字:-c:a pcm_s24le, -c:a pcm_s16le, -c:a pcm_u8等参见ffmpeg -encoders.

128 kb/s 的示例(这可能听起来很糟糕):

ffmpeg -i input.wav -ar 8000 -ac 1 -c:a pcm_s16le output.wav
ffmpeg -i input.wav -ar 8000 -ac 2 -c:a pcm_s8 output.wav

另一种选择是使用无损压缩格式。质量与 WAV 相同,但文件大小会小得多。 FLAC 示例:

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

Wav 音频文件压缩不起作用 的相关文章

  • 无需构建树即可预测霍夫曼压缩比

    我有一个二进制文件 我知道其中每个符号出现的次数 如果我要使用霍夫曼算法压缩它 我需要预测压缩文件的长度 我只对假设的输出长度感兴趣 而不对单个符号的代码感兴趣 因此构建霍夫曼树似乎是多余的 作为一个例子 我需要得到类似的东西 包含 4 个
  • tar 和 zip 有什么区别? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 tar 和 zip 有什么区别 每个的用例是什么 tar其本身只是将文件捆绑在一起 结果称为tarball 尽管zip也应用压缩 通常你使用gzip随
  • Python 子进程(ffmpeg)仅在我按 Ctrl-C 程序时启动?

    我正在尝试使用 Cygwin 和 Python 2 7 并行运行一些 ffmpeg 命令 这大概是我所拥有的 import subprocess processes set commands ffmpeg i input mp4 outpu
  • .net 中的 deflate、gzip 和 zlib 的一个库

    首先 我们来定义一些容易混淆的术语 deflate compression algorithm zlib header deflate trailer gzip header deflate trailer 我正在寻找一个基本上可以让我执行
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • 致命错误:libavcodec/avcodec.h 没有这样的文件或目录编译终止

    我正在尝试使用 gcc 执行tutorial01 c 并且 gcc 和tutorial01 c 以及 libavcodec 和 libavformat 及其关联文件位于同一文件夹中 它给了我这个错误 致命错误 libavcodec avco
  • Chromium 中的 MP4 编解码器支持

    我们已将 Chromium 嵌入式框架集成到我们的 Windows 游戏中 以允许我们从应用程序内渲染网页 并且一切正常 除了 MP4 视频 据我所知 由于许可问题 Chromium 不包含此编解码器 但任何人都可以提供有关我们如何添加支持
  • 使用 FFMPEG 添加覆盖并最少重新编码

    FFMPEG 对于剪切视频的一部分非常有用 而无需重新编码视频 我知道也可以使用 FFMPEG 添加叠加图像到视频的某个部分 例如从 10 秒到 20 秒 我的问题是 如果我对图像进行叠加 整个视频是否会因此而重新编码 或者只对相关的持续时
  • PageSpeed Insights 没有看到 Gzip 压缩

    我正在努力加快我的网站速度 谷歌洞察 https developers google com speed pagespeed insights https developers google com speed pagespeed insi
  • url文本压缩(不是缩短)并存储在mysql中

    我在 mysql 中有一个 url 表 其中只有两个字段 id 和 varchar 255 用于 url 目前那里有超过 5000 万个 url 我的老板刚刚向我提供了有关当前项目扩展的线索 这将导致在该 url 表中添加更多的 url 预
  • C++ OpenCV 3.4 / FFMPEG 3.4.1 VideoWriter 和 MP4 输出文件格式

    我正在运行 Linux 内核 4 9 35 ti r44 的 ARM BeagleBone X 15 Debian 机器 在我的 C Qt 5 应用程序中 我想将 cv Mat 帧保存为 MP4 格式视频 我安装了 libx264 并从头开
  • 如何启用 FFMPEG 日志记录?

    我想调试 ffmpeg 我添加以下代码来打印日志 av log s AV LOG PANIC fmt or printf msg 但这行不通 没有任何调试信息 然后我启用调试构建选项 export COMMON FF CFG FLAGS C
  • 无法从 webm 视频中提取 webp 中的帧

    我无法从 8K webp 视频中提取帧 我正在使用 ffmpeg 来提取帧 这是我正在使用的命令 ffmpeg i content to extract webm frame 2d webp 我得到的输出文件中没有任何数据 但是 当我导出为
  • ffmpeg计算视频比特率

    我想知道如何计算该视频的比特率 http jell yfish us media jellyfish 30 mbps hd hevc mkv http jell yfish us media jellyfish 30 mbps hd hev
  • FFMPEG 帧到 DirectX 表面

    给定一个指向 FFMPEG 的 AVFrame 的指针avcodec decode video 函数如何将图像复制到 DirectX 表面 假设我有一个指向适当大小的 DX X8R8G8B8 表面的指针 Thanks John 您可以使用
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 在 python 3 中压缩字符串?

    我不明白 在 2 X 中它起作用了 import zlib zlib compress Hello world 现在我有一个 zlib compress Hello world TypeError must be bytes or buff
  • ffmpeg 命令行,用于使用 Windows 7 从 Decklink 卡捕获(和录制)720p 音频和视频

    我正在尝试使用 Windows 7 720p 从 blackmagic Decklink 捕获卡捕获音频和视频 但我似乎无法正确获取 ffmpeg 命令行设置 ffmpeg list devices true f dshow i 虚拟 ds
  • 视频文件转换/转码 Google App Engine

    我想启动一个云计算项目 其简单任务是 接收上传的视频文件 对它们进行一些转码 转换 允许用户下载 流式传输生成的文件 我刚在想ffmpeg作为集成在的外部命令行工具Java Google App engine Application 由于很
  • 使用 ffmpeg 库以可变帧率模式将一系列图像(cv::Mat)保存到 mp4 文件,如何设置 pts?

    在C 代码中 我可以正确保存一系列图像 opencv的cv Mat 到 mp4 文件 使用ffmpeg图书馆 请参阅此处的问题和答案 当我尝试将多个 RGB 数据保存到 output mp4 文件时 avformat write heade

随机推荐

  • 如何防止使用 Git 自动合并?

    我正在尝试将本地分支合并到主分支中 而无需 Git 进行自动合并 我想 手工挑选 我想要合并到 master 中的内容 当我使用 Git 的 difftool 命令时 我可以比较并选择要添加到 master 分支中的内容 但是当我进行合并时
  • 当属性可以抛出异常时对象初始值设定项和 Dispose

    我有以下设置 public class SomeClass private DirectoryEntry root private DirectorySearcher searcher public SomeClass root new D
  • 带有变量赋值的基本 vue.js 2 和 vue-resource http get

    我真的很难让最基本的 REST 功能在 vue js 2 中工作 我想从某个端点获取数据并将返回值分配给我的 Vue 实例的变量 这是我已经走了多远 var link https jsonplaceholder typicode com u
  • .split(/\s+/) 和 .split(" ") 之间的区别?

    首先 抱歉我的英语不好 p 我正在查看下一个 js 代码片段 var classes element className split s 该代码会将 和 元素的完整类名拆分为包含每个类的数组 但是 使用之间有什么区别 split s 并使用
  • 如何正确使用lua_pop()函数?

    谁能告诉我如何在 C 中正确使用 lua pop 函数 当我使用 lua get 函数时我应该调用它吗 喜欢 lua getglobal L 某事 lua pop L 1 或者如何使用它 垃圾收集器会在阈值之后清除这些东西吗 谢谢 你打电话
  • Angular:将 XML 转换为 JSON

    我有这种方法 我从远程服务器接收 XML 响应 我需要将 XML 转换为 JSON 以便 Angular 2 可以处理数据 private extractData res Response let xml res body console
  • 静态图像的OpenCV haar训练

    我尝试训练 haar 级联分类以进行卡片套装检测 没有旋转并且图像没有失真 例如 我有文件 Clubs png 其中包含白色背景 20x20 像素的俱乐部图像 这个教程好纠结http note sonots com SciSoftware
  • Orchard CMS中如何处理来自JS的跨域Web服务调用

    我正在尝试从 HTML 小部件内跨域调用 Web 服务 这似乎不起作用 它在同一域下运行得很好 我正在尝试在 Orchard 中创建一个登录页面 可用于登录另一个域上的我的软件 Web 服务正在验证用户凭据并返回一个布尔值 然后该布尔值将生
  • 无法执行 dex:Eclipse 中超出了 GC 开销限制

    当我下载Git项目时OsmAnd并去编译它 Eclipse 返回这些错误 Dex Loader Unable to execute dex GC overhead limit exceeded OsmAnd Conversion to Da
  • 如何在Windows上安装gssapi python模块?

    我目前正在尝试获取gssapi模块让 python 在 Windows 上运行 我的目标是使用 python 模块通过 Active Directory 进行身份验证ldap3 gssapi 是其工作的必要条件 但是 安装失败 因为找不到
  • 如何从 Visual Studio (2003) 中运行我的 Windows CE 项目?

    我正在开发一个遗留应用程序 需要在 VS 2003 中继续 但是 我无法有效地调试它 因为当我尝试运行它时 我收到以下对话框 Deploy 选择要定位的设备 如果所选设备上尚未安装 NET Compact Framework 它将与您的应用
  • 是否有相当于 GetLastInputInfo / LASTINPUTINFO 的 64 位?

    We use 获取最后输入信息并计算与GetTickCount64结果的差值来确定空闲情况 然而 GetLastInputInfo返回的tick计数被写入LASTINPUTINFO的成员dwTime中 它是一个DWORD 因此是一个无符号3
  • 在 Windows 中设置 stdout/stderr 文本颜色

    我尝试使用system color 24 但这并没有改变提示中的颜色 所以经过更多的谷歌搜索后我看到SetConsoleTextAttribute并编写了以下代码 这导致两者stdout and stderr两者都变成红色而不是stdout
  • 为什么这个 for 循环不处理数组的所有元素?

    给出以下脚本 bin bash asteriskFiles sip conf extensions conf for asteriskFile in asteriskFiles do backup current configuration
  • 如何与窗框碰撞,弹起球并将球限制在矩形区域内?

    嘿 我正在尝试使用 pygame 创建一个突破克隆 并且我使用了 self course 180 self course 360 为了弹起球拍的球 我正在研究向量 2 类 但我不知道如何使用它来转换我的球类 如果有人能引导我走向正确的方向
  • iOS - 照片后台上传

    我想创建一个应用程序 它将自动将相机胶卷中的新照片上传到我的网络服务 就像新的 Flickr 应用程序的自动上传功能一样 目前我正在研究如何正确设置它 我猜 iOs 7 的新后台功能可以实现这一点 但是 是否可以从后台获取启动后台传输服务
  • 支持 dropdownlist .NET MVC 中的 optgroup?

    从这个问题继续以编程方式创建下拉列表我希望我的清单有几个optgroup也列出了 目前这可能吗 我知道我需要将 selectList 传递到 dropDownList 但不知道如何将文本 值 optgroup 添加到 selectList
  • 从数组填充嵌套对象?

    我有一个问题 如何从数组创建嵌套对象 IE 我有一个以下数组 var myArr foo bar baz 并需要使其成为一个对象 例如 myObj foo bar baz 我怎样才能正确地做到这一点 Use reduce var myArr
  • 如何从下载的页面中删除所有html标签[重复]

    这个问题在这里已经有答案了 我已经使用 urlopen 下载了一个页面 如何从中删除所有 html 标签 是否有任何正则表达式可以替换所有 标签 我也可以推荐美丽汤这是一个易于使用的 html 解析器 在那里你会做类似的事情 from Be
  • Wav 音频文件压缩不起作用

    是否可以在不降低采样率的情况下压缩 wav 音频文件 我有一个 256 比特率和采样率 8000Hz 的音频文件 我只想将比特率降低到 128 64 kbs 我尝试转换为 mp3 再转换回 wav ffmpeg i 输入 wav 1 mp3