一款强大的音视频处理工具--FFmpeg-2--常用音频处理示例

1、查看音频文件详细信息

opus,wav,pcm等音频格式都适用。

ffprobe -i 1.opus

在这里插入图片描述
说明:
Input 0, ogg, from ‘1.opus’:

  • Input 0:表示这是第一个输入文件。
  • ogg:表示该文件封装在Ogg容器格式中(Opus通常封装在Ogg中)。
  • from ‘1.opus’:源文件名是1.opus。
    Duration: 00:00:10.01, start: 0.000000, bitrate: 67 kb/s
    • Duration: 音频总时长为10.01秒
  • start: 起始时间为0秒
  • bitrate: 平均比特率为67kbps
    Stream 0:0: Audio: opus, 48000 Hz, mono, fltp
  • Stream 0:0:第一个输入文件的第一个流(即音频流)
  • Audio: opus: 使用的音频编码为 Opus
  • 48000 Hz: 采样率为 48 kHz(Opus 的标准采样率)
  • mono: 单声道(只有一个音频通道)
  • fltp: 浮点型样本格式(32-bit floating point, planar)
    Metadata: encoder : Lavc58.134.100 libopus
  • encoder表示该音频是由libopus编码器编码生成的。
  • Lavc58.134.100是FFmpeg的音频编码库版本号。

查看详情或者使用:

ffprobe -v error -show_entries stream=index,codec_name,codec_type,channels,sample_rate,channel_layout,format,sample_fmt,bits_per_sample -of default=nw=1 1.opus

在这里插入图片描述
在或者:

file 1.wav

在这里插入图片描述

2、wav转opus

ffmpeg -i 1.wav -c:a libopus 1.opus

在这里插入图片描述
说明:

  • -i 1.wav: 指定输入文件为input.wav
  • -c:a libopus: 使用Opus编码器进行编码
  • 1.opus: 输出文件名

3、wav转pcm

ffmpeg -i 1.wav -f s16le -acodec pcm_s16le 1.pcm

在这里插入图片描述
命令说明:

  • -f 表示强制指定封装格式(format)。
  • s16le 是一种raw PCM的封装格式:
    • s:signed(有符号)
    • 16:16 bit(每个样本2字节)
    • le:little-endian(小端字节序)
  • acodec pcm_s16le: 指定音频编解码器为PCM signed 16-bit little-endian。

批量处理文件夹中的所有wav文件,且指定频率和声道:

for file in /data/zhangwei/pcm/wav2pcm/*.wav; do ffmpeg -i "$file" -f s16le -acodec pcm_s16le -ar 16000 -ac 1 "${file%.wav}.pcm"
done

-ar指定频率16kHz,-ac指定声道数量为1。

pcm文件说明:

  • 无文件头:.pcm文件是一个纯音频裸流文件,没有WAV、MP3等容器的元信息。
  • 内容:仅包含原始PCM数据,每两个字节代表一个采样点。
  • 播放方式:
    • 需要你知道它的采样率、声道数、样本格式才能正确播放。
    • 可以用工具如ffplay或专业软件(Audition CC)加载播放。

4、opus转wav

ffmpeg -i 1.opus 11.wav

说明:
这里FFmpeg自动选择合适的解码器并将Opus流解码为PCM,然后将其封装到WAV容器中。默认解码器其实就是pcm_s16le,当然如果必要也可以动态指定使用的解码器。

指定pcm_s16le示例:

ffmpeg -i 1.opus -c:a pcm_s16le 11.wavffmpeg -i 1734442380625.opus -ar 48000 -ac 1 -c:a pcm_s16le output1.wav

或更详细指定输出格式:

ffmpeg -i 1.opus \-ar 48000 -ac 1 -sample_fmt s16 \-c:a pcm_s16le \1111.wav

或:绝对路径

ffmpeg -i /data/zhangwei/opus/1734442380625.opus -ar 48000 -ac 1 -c:a pcm_s16le /data/zhangwei/opus/output2.wav

在这里插入图片描述
说明:
指定输出:48kHz采样率,单声道,16-bit PCM。
-ar 48000:指定输出采样率为 48000 Hz。
-ac 1:指定输出为单声道

5、opus转pcm

ffmpeg -i 11.opus -f s16le -acodec pcm_s16le 11.pcm

在这里插入图片描述
说明:

  • -i 11.opus:输入opus文件路径。
  • -f s16le:指定输出格式为小端16位整数PCM。
  • -acodec pcm_s16le:使用pcm_s16le编码器来解码音频流。
  • 11.pcm:输出PCM文件路径。

注意,默认情况下,FFmpeg会根据输入音频的参数(如采样率、声道数)来决定输出PCM的相应参数。如果你需要特定的输出参数,比如更改采样率或声道数,可以加上相应的选项:

ffmpeg -i 11.opus -f s16le -ar 96000 -ac 1 11_96k.pcm

在这里插入图片描述
说明:
强制将输出PCM的采样率设置为96kHz,声道数设置为单声道(-ac 1)。

6、pcm转wav

ffmpeg -f s16le -ar 48000 -ac 1 -i 1.pcm 111.wav

在这里插入图片描述
说明:

  • -f s16le: 输入文件格式为小端16位整数PCM。
  • -ar 48000: 设置采样率为48kHz。
  • -ac 1: 设置为单声道。

7、pcm转opus

ffmpeg -f s16le -ar 48000 -ac 1 -i 1.pcm -c:a libopus 11.opus

在这里插入图片描述
说明:

  • -f s16le:指定输入文件格式为小端16位整数PCM。
  • -ar 48000:设置输入音频的采样率为48kHz。根据实际情况调整。
  • -ac 1:设置输入音频的声道数为1。根据实际情况调整。
  • -i input.pcm:输入PCM文件路径。
  • -c:a libopus:指定使用libopus编码器。
  • output.opus:输出Opus文件路径。

8、mp3转pcm(同wav转一致)

同wav转pcm一致。

ffmpeg -i /data/zhangwei/pcm/mp32pcm/黑2.mp3 -f s16le -acodec pcm_s16le -ar 16000 -ac 1 /data/zhangwei/pcm/mp32pcm/黑2.pcm

在这里插入图片描述
命令说明:

  • -f 表示强制指定封装格式(format)。
  • s16le 是一种raw PCM的封装格式:
    • s:signed(有符号)
    • 16:16 bit(每个样本2字节)
    • le:little-endian(小端字节序)
  • -acodec pcm_s16le: 指定音频编解码器为PCM signed 16-bit little-endian。
    –ar 16000,指定输出频率16kHz。
    –ac 1,指定单通道。

如果要批量处理整个文件夹下的mp3文件,执行如下:

for file in /data/zhangwei/pcm/mp32pcm/*.mp3; do ffmpeg -i "$file" -f s16le -acodec pcm_s16le -ar 16000 -ac 1 "${file%.mp3}.pcm"
done

9、arm转pcm(同wav一致)

ffmpeg -i 陈建强024-09-03-19-38-15.amr -f s16le -acodec pcm_s16le -ar 16000 -ac 1 output.pcm

在这里插入图片描述
命令说明:

  • -f 表示强制指定封装格式(format)。
  • s16le 是一种raw PCM的封装格式:
    • s:signed(有符号)
    • 16:16 bit(每个样本2字节)
    • le:little-endian(小端字节序)
  • -acodec pcm_s16le: 指定音频编解码器为PCM signed 16-bit little-endian。
    –ar 16000,指定输出频率16kHz。
    –ac 1,指定单通道

向阳而生,Dare To Be!!!

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

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

相关文章

在 ArcPy 脚本中进行错误处理和调试

查看错误信息 当捕获到错误后,查看详细的错误信息对于定位问题和解决问题至关重要。 (一)打印错误消息 在 except 块中,可以直接打印错误对象来获取错误消息。例如: try:arcpy.CalculateField_management("in…

C++11标准(4)——并发库(多线程)

欢迎来到博主的专栏:c杂谈 博主ID:代码小豪 文章目录 thread的相关函数thisthread c11新增了与并发相关的库,包含线程、以及互斥、同步等与线程安全相关的库,与linux中所使用POSIX库不同,并发库是将其进行了封装,不再是…

优化TCP/IP协议栈与网络层

优化TCP/IP协议栈与网络层 在高性能架构中,网络性能往往成为系统吞吐量与响应速度的关键因素之一。而TCP/IP协议栈作为现代互联网通信的核心,其默认配置在高并发场景下常常无法满足大规模分布式系统的性能需求。因此,架构师在构建系统时,有必要对TCP/IP协议栈及其所在的网…

Nginx常见功能

Nginx 是一个高性能的 HTTP 和反向代理服务器,除了基本的 Web 服务功能外,它还支持许多高级功能。以下是 Nginx 常用的一些功能及其设置方法: 1. 反向代理 反向代理是 Nginx 最常用的功能之一,用于将客户端请求转发给后端服务器&a…

UniSAL:用于组织病理学图像分类的统一半监督主动学习方法|文献速递-深度学习医疗AI最新文献

Title 题目 UniSAL: Unified Semi-supervised Active Learning for histopathologicalimage classification UniSAL:用于组织病理学图像分类的统一半监督主动学习方法 01 文献速递介绍 组织病理学图像在癌症筛查、诊断及治疗决策中起着关键作用,有助…

智慧园区建设资料合集(Wordppt原件)

化工园区安全风险智能化管控平台.docx 数字孪生赋能的智慧园区物联网云平台建设方案.pptx 园区智慧安防解决方案.docx 新型智慧园区规划设计方案.pptx 新型智慧园区建设方案.docx 园区大数据治理解决方案.pptx 智慧产业园区综合解决方案.docx 智慧工业园区大数据云平台解决方案…

好玩的镜像汇总

一些镜像仓库汇总 https://github.com/code-lives/Nas-Docker https://github.com/TWO-ICE/Awesome-NAS-Docker image-matting是一款集成了AI大模型的,支持容器化部署的短平快抠图工具 https://mp.weixin.qq.com/s/A1VKAYaDdbCs2o1L4ZYkSw Moodist是一个有助于专注…

langchain 开发实战

我的开发环境是 windows python3.8 langchain版本: # langchain 0.2.17 # langchain-community 0.2.19 # langchain-core 0.2.43 # langchain-openai 0.1.25 # langchain-text-…

粉色 PCB:当电路板染上温柔的科技浪漫

在电子产品的世界里,印制电路板(PCB)是其核心的 “骨架”,支撑并连接着各种电子元件,让电子产品得以实现复杂的功能。以往,PCB 常见的颜色是绿色,然而,猎板打破常规,推出…

Navicat 技术指引 | TiDB 数据查看器

目前,Navicat 两款工具支持对 TiDB 数据库的管理开发功能:一款是旗舰款 Navicat Premium,另一款是其轻量化功能的 Navicat Premium Lite(官方轻量级免费版)。Navicat 自版本 17.1 开始支持 TiDB 7。它支持的系统有 Win…

xlsx、xlsx-style 的配置及导出(分享)

文章目录 1. 基础配置1.1 单元格内容1.2 单元格合并、列宽、行高1.3 单元格样式 2. sheet 配置、多个 sheet3. excel 导出4. 数据插入(进阶) 1. 基础配置 1.1 单元格内容 注:xlsx、xlsx-style 都存在 write 方法,xlsx 设置单元格…

算法第38天|322.零钱兑换\139. 单词拆分

322.零钱兑换 题目 思路与解法 class Solution { public:int coinChange(vector<int>& coins, int amount) {// dp数组&#xff1a;// dp[i]: 凑成总金额i&#xff0c;所需的最少硬币个数vector<int> dp(amount 1, INT_MAX);dp[0] 0;for (int i 0; i &l…

使用MobileNetV3训练水果分类模型并用Flask部署

前言 在计算机视觉领域&#xff0c;图像分类是一个基础且重要的任务。本文将介绍如何使用MobileNetV3预训练模型来训练一个水果分类模型&#xff0c;并通过Flask框架进行部署。MobileNetV3作为轻量级网络&#xff0c;在保持较高精度的同时&#xff0c;具有较快的推理速度&…

SCADA技术与市场全景解析

SCADA系统作为工业自动化领域的关键组成部分&#xff0c;成为了工业企业推进数字化转型的有力抓手。本文将重点介绍SCADA系统的发展历程、系统构成及工作原理、发展趋势&#xff0c;分析其行业应用差异&#xff0c;以及与物联网和组态软件的区别&#xff0c;梳理其在不同行业的…

在线教学课程视频AI智能大纲代码与演示

AI根据视频内容自动生成视频大纲&#xff0c;极大地提高了视频内容的管理效率、可访问性和用户体验&#xff0c;是推动视频内容智能化发展的重要一环。AI根据视频内容自动生成视频内容大纲。这种功能&#xff0c;应用场景有哪些&#xff1f; 应用场景&#xff1a; 在线教育平台…

动态WCMP+Flowlet ALB:双引擎驱动智算网络负载均衡

传统网络架构的困境 在 AI 算力爆发的今天&#xff0c;数据中心网络正经历前所未有的流量形态变革。传统 Clos 网络架构依赖逐流 ECMP 均衡算法&#xff0c;其设计逻辑基于 “大量短流” 假设&#xff0c;通过五元组 HASH 实现负载分担。然而 AI 训练场景呈现出鲜明的流量特征…

软件测试题

选择题 1、导致软件缺陷的原因有很多&#xff0c;①—④是可能的原因&#xff0c;其中最主要的原因包括( )。 ①软件需求说明书编写的不全面&#xff0c;不完整&#xff0c;不准确&#xff0c;而且经常更改 ②软件设计说明书 ③软件操作人员的水平 ④开发人员不能很好的…

微信小程序页面容器弹出层

效果图 .JS Page({data: {show: false,duration: 300,position: right,round: false,overlay: true,customStyle: ,overlayStyle: },popup(e) {const position e.currentTarget.dataset.positionlet customStyle let duration this.data.durationswitch(position) {case to…

Excel批量计算时间差

执行以下操作&#xff0c;将自定义格式代码应用到单元格&#xff1a; 选择相应的单元格。在"开始"选项卡上的"数字"组中&#xff0c;单击"常规"框旁边的箭头&#xff0c;然后单击"其他数字格式"。在"设置单元格格式"对话框…

shell脚本--变量

1.变量是什么 2.变量类型 3.动态&#xff0c;静态&#xff0c;强弱类型 4.变量的命名 5.变量的定义和引用 5.1三种变量类型 普通变量 环境变量 局部变量 5.2单引号&#xff0c;双引号&#xff0c;强弱引用 双引号对变量赋值的影响01:59&#xff1a;给变量加双引号&#x…