当前位置: 首页 > news >正文

一款强大的音视频处理工具--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!!!

相关文章:

  • RPC - 服务注册与发现模块
  • 搜索二叉数(c++)
  • [MSPM0开发]之九 MSPM0G3507的ADC
  • SpringBoot电脑商城项目--商品详情+加入购物车
  • springboot将文件插入到指定路径文件夹,判断文件是否存在以及根据名称删除
  • 思辨场域丨AR技术如何重塑未来学术会议体验?
  • 绝不强迫登录!Apipost 离线模式正式上线
  • [学习] 在C语言中使用字典(附示例)
  • tkinter Entry(输入框)组件学习指南
  • Ajax-入门
  • React Native【详解】动画
  • 小白的进阶之路系列之十七----人工智能从初步到精通pytorch综合运用的讲解第十部分
  • 【unitrix】 3.4 类型级逻辑运算(bit.rs)
  • 【Docker】docker-compose中的nginx为何突然访问不到服务了?
  • 【CS创世SD NAND征文】STM32户外无线终端管理设备的数据存储方案
  • 拼多多消息对接、支付服务策略(策略+工厂)
  • supervisor /usr/bin/dotnet: cannot execute binary file
  • cili3d笔记20 正交投影3d重建笔记1
  • GoFrame的Gtoken--基于电商项目以及GPT-o3的辅助解惑
  • 如何轻松地将联系人从 iPhone 转移到 iPhone?
  • 嘉兴网站建设需要多少钱/疫情最新消息今天封城了
  • 做网站设计收入/百度账号个人中心
  • 宣传型网站/论坛企业推广
  • wordpress插件使用/seo是什么软件
  • 做情侣网站/网站如何建立
  • 小说阅读网站开发论文/搭建网站教程