使用FFMPEG转码,转单声道,转标准WAV,转PCM

本文为使用FFMPEG命令行的方式处理音频,来获取想要得到的音频文件。

零、使用命令行查看编码封装信息

格式:ffprobe.exe -show_format inputfile
例子:ffprobe.exe -show_format .\stereo_44_16bit.wav

运行结果为下图:

如图可知,其采样率、声道数、位深、码率等信息。

一、双声道转单声道

格式: ffmpeg.exe -i inputfile -ac 1 outputfile
例子: ffmpeg.exe -i .\stereo_44_16bit.wav -ac 1 mono_44_16bit.wav

结果可以通过【零】节介绍的命令行查看,确定是否成功转为单声道。

二、使用ffmpeg得到的wav存在问题

我们使用文本工具,以十六进制的方式打开wav文件(FFMPEG输出),会发现其文件头并不是标准的44个字节,而是还包含其他内容,这对于处理44个字节的wav程序很不友好。我们需要将其去掉。如图:wav文件的头部大于44个字节。

三、使用ffmpeg得到标准WAV(44个字节的头部)

格式:ffmpeg.exe -i inputfile -map_metadata -1 -fflags +bitexact outputfile -y
例子:ffmpeg.exe -i .\mono_44_16bit.wav -map_metadata -1 -fflags +bitexact new.wav -y

处理后的头部信息如图:符合预期。

四、音频转PCM

格式: ffmpeg.exe -i inputfile -f s16le -acodec pcm_s16le outputfile
例子: ffmpeg.exe -i .\new.wav -f s16le -acodec pcm_s16le out.pcm

我们将new.wav转成pcm,其结果如下图,通过对比可知仅仅是将wav的头部44个字节去掉,结果正确。

结束。

命令行中的参数含义,需稳步另行查阅。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一起学习生成式人工智能(一)|生成式人工智能基础与负责任的 AI

点击蓝字 关注我们 编辑:Alan Wang 排版:Rani Sun 微软 Reactor 为帮助广开发者,技术爱好者,更好的学习 .NET Core, C#, Python,数据科学,机器学习,AI,区块链, IoT 等技术&#xff0…

指纹芯片的工作原理及应用领域详解

指纹芯片是一种利用指纹识别技术的电子设备,可以通过扫描人体指纹的纹理特征,将其转化为数字化信息并进行存储和识别。指纹芯片广泛应用于各个领域,包括智能手机、银行和金融、门禁系统、身份验证等,因其高度准确、快速便捷的特点,得到了广大用户的青睐。 指纹芯片的原理是基于…

达索系统SOLIDWORKS 2024工程图新功能

工程图概述 设计模型不仅能比绘制直线更快;SOLIDWORKS 从模型中生成工程图,模型的参数和几何关系在工程图中被保留,这样工程图可反映模型的设计意图;模型或工程图中的更改反映在其相关文件中,这样更改起来更容易&…

【Docker】安装RabbitMQ

1.拉取镜像 docker pull rabbitmq 2.运行容器 docker run \-e RABBITMQ_DEFAULT_USERitcast \-e RABBITMQ_DEFAULT_PASS123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \-d \rabbitmq 3.安装管理页面的插件 进入容器内部 dock…

认识JVM 一个Java文件的JVM之旅

准备 我是一个java文件,如何实现我的功能呢?需要去JVM(Java Virtual Machine)这个地方旅行。 变身 我高高兴兴的来到JVM,想要开始JVM之旅,它确说:“现在的我还不能进去,需要做一次转换,生成c…

Jmeter测试移动接口性能 —— 压测

一般的公司都想知道自己产品的性能瓶颈和以及提升性能,以期大流量来了还撑得住。其实性能测试很难,难点在你不知道性能要达到怎样的需求。难点在于你没有实际的环境场景给你测试,总不能给线上环境你测试吧? 难点在于找性能瓶颈&a…

前端笔记:React的form表单全部置空或者某个操作框置空的做法

原创/朱季谦 在React框架前端开发中,经常会有弹出框的开发,涉及到弹出框,难免就会有表单。一般在关闭弹出框或者对表单联动时,往往都需要考虑对表单进行置空操作了。 我以前在工作就遇到过这类问题,正好顺便对表单置空…

数据结构-04-队列

1-队列的结构和特点 生活中我们排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的"队列"。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入…

Android UiAutoMatorViewer打不开

UIAutoMatorViewer是个很好用的工具,能解析出任意手机页面的UI树,非常方便。 工具位置:SDK\tools\bin\uiautomatorviewer.bat 一般双击就能打开。 但有时会打不开,双击后无反应,在cmd窗口中运行也是如此。 这种情况…

【Docker】Swarm内部的负载均衡与VIP

在Docker Swarm中,有两种方式可以实现内部的负载均衡:Service VIP和Routing Mesh。 Service VIP(Virtual IP):Service VIP是一种基于VIP的负载均衡方式,它为每个服务分配一个虚拟IP地址。当请求到达Servic…

智能优化算法应用:基于风驱动算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于风驱动算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于风驱动算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.风驱动算法4.实验参数设定5.算法结果6.参考文献7.…

Golang数据类型(数字型)

Go数据类型(数字型) Go中数字型数据类型大致分为整数(integer)、浮点数(floating point )和复数(Complex)三种 整数重要概念 整数在Go和Python中有较大区别,主要体现在…