【FFmpeg】ffmpeg 命令行参数 ⑦ ( 使用 FFmpeg 提取 PCM 音频数据 | PCM 音频格式 | 提取 PCM 音频格式常用参数 | 查询文档方法 )

这篇具有很好参考价值的文章主要介绍了【FFmpeg】ffmpeg 命令行参数 ⑦ ( 使用 FFmpeg 提取 PCM 音频数据 | PCM 音频格式 | 提取 PCM 音频格式常用参数 | 查询文档方法 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。





一、使用 FFmpeg 提取 PCM 音频数据




1、PCM 音频格式


PCM 全称 " Pulse Code Modulation " , 脉冲编码调制 , 该 音频数据 是未经压缩的 采样裸数据 , 只有 知道该数据的 采样率 / 采样位数 / 通道数 才能将该音频数据播放出来 ;

PCM 数据是 最原始的音频数据 , 音频内容完全无损 , 但是 PCM 数据体积庞大 , 对 PCM 音频数据压缩 分为 无损压缩 和 有损压缩 :

  • 无损压缩 : ALAC、APE、FLAC 等格式 ;
  • 有损压缩 : MP3、AAC、OGG、WMA 等格式 ;

将 PCM 数据 单纯的添加一个 文件头 , 注明该文件的 采样率 / 采样数 / 通道数 等核心数据 , 就是 WAV 文件 , 该格式的文件体积很大 ;


2、提取 PCM 音频格式常用参数


在 提取 PCM 音频格式常用参数 时 , 需要设置 PCM 数据的 采样率 , 通道数 , 采样位数 ;

  • 设置 采样率 参数 : 使用 -ar 参数 , 设置采样率 ; 取值 48000 或 44100 ;
  • 设置 通道数 参数 : 使用 -ac 参数 , 设置 PCM 通道数 ; 取值 1 单声道 , 2 立体声 ;
  • 设置 采样位数 参数 :
    • 使用 -f 参数 , 可取值如下 :
      • s16 / s16p : 有符号 16 位 采样 ;
      • s16le : 小端模式 有符号 16 位 采样 ;
      • s16be : 大端模式 有符号 16位 采样 ;
      • s32 / s32p / s32le / s32be : 有符号 32 位采样 / 有符号 32 位采样 / 有符号 32 位 小端字节序 采样 / 有符号 32 位 大端字节序 采样 ;
    • 使用 -sample_fmt参数 , 可取值如下 :
      • s16 / s16p : 有符号 16 位 采样 ;
      • s32 / s32p : 有符号 32 位 采样 ;
    • 使用 -codec:a 参数 , 可取值如下 :
      • pcm_s16le : 小端模式 16 位 有符号整数 采样 ;
      • pcm_s16be : 大端模式 16 位 有符号整数 采样 ;
      • pcm_s32le : 小端模式 32 位 有符号整数 采样 ;
      • pcm_s32be : 大端模式 32 位 有符号整数 采样 ;

3、提取 PCM 音频数据 - 使用 -f 参数


执行

ffmpeg -i input.mp4 -ar 48000 -ac 2 -f s16le output.pcm

命令 , 从 input.mp4 输入文件中 提取 PCM 音频数据 到 output.pcm 输出文件 ;

  • -ar 48000 参数 设置 输出文件的采样率是 48000 Hz ;
  • -ac 2 参数 设置 输出文件 是 双通道 立体声 ;
  • -f s16le 参数 设置 输出文件 是 16 位小端模式 的 采样 ;

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数

执行

ffplay -ar 48000 -ac 2 -f s16le output.pcm

命令 , 播放上述 output.pcm 音频数据 ;

PCM 数据是 纯 音频裸数据 , 没有该音频的 格式信息 , 需要在命令行中额外指定 采样率 , 采样位数 , 通道数 , 如果 指定错了参数 , 播放出来的就是随机噪音 ;

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数


4、提取 PCM 音频数据 - 使用 -sample_fmt 参数


执行

ffmpeg -i input.mp4 -ar 48000 -ac 2 -sample_fmt s16 output.wav

命令 , 从 input.mp4 输入文件中 提取 PCM 音频数据 到 output.pcm 输出文件 ;

  • -ar 48000 参数 设置 输出文件的采样率是 48000 Hz ;
  • -ac 2 参数 设置 输出文件 是 双通道 立体声 ;
  • -sample_fmt s16 参数 设置 输出文件 是 有符号 16 位 的 采样 ;

使用 -sample_fmt 参数设置 采样位数 , 与 -f 参数设置 , 参数取值不同 ;

同时 , 使用 -sample_fmt 参数设置 采样位数 的 输出文件 不能是 PCM 裸数据 , 而是 WAV 封装格式的文件 , WAV 格式的文件就是 PCM 裸数据的基础上 增加了一个文件头 , 用于表明该文件的 采样率 / 采样位数 / 通道数 等音频信息 ;

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数

执行

ffplay output.wav

命令 , 播放上述 提取的 output.wav 音频数据 ;

WAV 格式的文件可以直接使用 ffplay 播放 , 不需要设置 采样率 / 采样位数 / 通道数 等 额外参数 ;

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数

将上述提取的 WAV 文件 与 PCM 文件进行对比 , 发现 WAV 文件 只比 PCM 文件多一个文件头 , 其它数据内容基本一致 ;
ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数


5、提取 PCM 音频数据 - 使用 -codec:a 参数


执行

ffmpeg -i input.mp4 -ar 48000 -ac 2 -codec:a pcm_s16le output.wav

命令 , 从 input.mp4 输入文件中 提取 PCM 音频数据 到 output.pcm 输出文件 ;

  • -ar 48000 参数 设置 输出文件的采样率是 48000 Hz ;
  • -ac 2 参数 设置 输出文件 是 双通道 立体声 ;
  • -codec:a pcm_s16le 参数 设置 输出文件 是 16 位 小端模式 的 采样 ;

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数

由于 WAV 文件自带文件头 , 上述输出文件 , 也可以通过执行

ffplay output.wav

命令 , 进行播放 , 不需要设置 PCM 的播放参数 ;

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数





二、查询文档方法




1、PCM 采样位数查询


上面播放 PCM 格式的音频文件 , 涉及到了设置 PCM 采样位数 , 可以通过如下的命令进行查询 ;

执行

ffmpeg -muxers | findstr PCM

命令 , 可以获取 PCM 的 复用器 ;

  • -muxers 参数 作用是 尝试列出 ffmpeg 支持的所有复用器 ;
  • | 的作用是 用作管道符号 , 将一个命令的输出 作为 另一个命令的输入 ;
  • findstr PCM 的作用是 用于在文本中搜索字符串 " PCM " , findstr 是 Windows 命令提示符中的一个命令 其作用是 查找字符串 ;

可以在命令行中得到如下结果 , 这是 PCM 音频格式的采样位数 可设置的值 ;

D:\004_Operate\ffmpeg>ffmpeg -muxers | findstr PCM
...
  E alaw            PCM A-law
  E f32be           PCM 32-bit floating-point big-endian
  E f32le           PCM 32-bit floating-point little-endian
  E f64be           PCM 64-bit floating-point big-endian
  E f64le           PCM 64-bit floating-point little-endian
  E mulaw           PCM mu-law
  E s16be           PCM signed 16-bit big-endian
  E s16le           PCM signed 16-bit little-endian
  E s24be           PCM signed 24-bit big-endian
  E s24le           PCM signed 24-bit little-endian
  E s32be           PCM signed 32-bit big-endian
  E s32le           PCM signed 32-bit little-endian
  E s8              PCM signed 8-bit
  E u16be           PCM unsigned 16-bit big-endian
  E u16le           PCM unsigned 16-bit little-endian
  E u24be           PCM unsigned 24-bit big-endian
  E u24le           PCM unsigned 24-bit little-endian
  E u32be           PCM unsigned 32-bit big-endian
  E u32le           PCM unsigned 32-bit little-endian
  E u8              PCM unsigned 8-bit
  E vidc            PCM Archimedes VIDC

D:\004_Operate\ffmpeg>

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数


2、-sample_fmts 参数值 查询


执行

ffmpeg -sample_fmts

命令 , 可以查询 -sample_fmts 参数可以设置的值 ;

D:\004_Operate\ffmpeg>ffmpeg -sample_fmts
ffmpeg version n4.4-19-g8d172d9409 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10-win32 (GCC) 20210408
name   depth
u8        8
s16      16
s32      32
flt      32
dbl      64
u8p       8
s16p     16
s32p     32
fltp     32
dblp     64
s64      64
s64p     64

ffmpeg pcm,FFmpeg,ffmpeg,pcm,音视频,ffplay,采样率,采样位数,通道数文章来源地址https://www.toymoban.com/news/detail-848029.html

到了这里,关于【FFmpeg】ffmpeg 命令行参数 ⑦ ( 使用 FFmpeg 提取 PCM 音频数据 | PCM 音频格式 | 提取 PCM 音频格式常用参数 | 查询文档方法 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ffmpeg关于音频的一些命令处理参数

    参考ffmpeg学习笔记五 - 知乎 -aframes number (output) 设置输出的音频帧数,这是-frames:a的别名,已不使用。 -ar[:stream_specifier] freq (input/output,per-stream) 设置音频采样频率,对于输出流,默认情况下将其设置为相应输入流的频率。 对于输入流,此选项仅对音频捕获设备和原始demuxers有

    2024年02月13日
    浏览(29)
  • 【FFmpeg】音视频录制 ① ( 查询系统中 ffmpeg 可录制的音视频输入设备 | 使用 ffmpeg 命令录制音视频数据 | 录制视频数据命令 |录制音频数据| 同时录制音频和视频数据命令 )

    在 Windows 系统中 , 使用 ffmpeg 命令 录制 音视频 , 需要先获取 系统的 音视频设备 信息 , 录制 音视频 本质上是从 系统音视频设备 中获取数据 ; 执行 命令 , 可以获取 系统中 ffmpeg 可用的 DirectShow 音视频输入设备 ; 命令参数解析 : -list_devices true : 列出所有 ffmpeg 的 指定类型的可

    2024年04月25日
    浏览(70)
  • Qt-FFmpeg开发-音频解码为PCM文件(9)

    目录 音视频/FFmpeg #Qt Qt-FFmpeg开发-使用libavcodec API的音频解码示例(MP3转pcm) 1、概述 2、实现效果 3、主要代码 4、完整源代码 更多精彩内容 👉个人内容分类汇总 👈 👉音视频开发 👈 最近研究了一下FFmpeg开发,功能实在是太强大了,网上ffmpeg3、4的文章还是很多的,但是学

    2023年04月08日
    浏览(29)
  • 使用ffmpeg从视频文件中提取音频文件、视频抽帧和切割视频

    目录 ffmpeg下载 使用ffmpeg从视频文件中提取音频文件 批量提取文件夹下多个视频文件的音频 使用ffmpeg从视频文件中提取视频帧 使用ffmpeg将按固定时长将视频切割成多个小片段 将分割得到的视频存放在新建文件夹下(这个我运行的时候好像有点问题,音频文件没有存放在新建

    2023年04月08日
    浏览(45)
  • 音视频 ffmpeg命令提取音视频数据

    保留封装格式 提取视频 提取音频 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月10日
    浏览(45)
  • 使用ffmpeg拼接两段音频的命令

    ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex \\\"[0:a][1:a]concat=n=2:v=0:a=1[out]\\\" -map \\\"[out]\\\" output.mp3 其中, input1.mp3 和 input2.mp3 是需要拼接的两段音频文件名, output.mp3 是输出文件名。 该命令使用 filter_complex 过滤器来将两个输入流连接在一起,其中 [0:a] 表示第一个输入文件的音频流, [1

    2024年02月12日
    浏览(29)
  • FFmpeg从视频中提取音频

    参考博客 ffmpeg Documentation FFmpeg最全教程 FFmpeg 提取视频的音频 FFMPEG 提取音频 ffmpeg 给音频添加封面,ffmpeg对音视频metadata相关操作 查看 使用 FFprobe ffprobe 是一个多媒体流分析工具。它从多媒体流中收集信息,并且以人类和机器可读的形式打印出来。它可以用来检测多媒体流的

    2023年04月08日
    浏览(40)
  • FFmpeg 命令:从入门到精通 | ffppeg 命令提取音视频数据

    本节主要介绍了一些使用 ffmpeg 命令提取、分离音视频数据的方法。 保留编码格式: 强制格式: 保留编码格式: 强制格式:

    2024年02月07日
    浏览(41)
  • ffmpeg视频音频命令

    视频音频合并,以视频时间为主,音频短了循环 方法1:混音,视频权重0,volume调节音量,aloop无限循环,duration:first为第一个素材的长度 ffmpeg -i video.mp4 -i audio.mp3 -filter_complex \\\"[1:a]volume=0.5[a1];[a1]aloop=loop=-1:size=2e+09[a2];[0:a][a2]amix=inputs=2:duration=first:weights=\\\'0 1\\\'[a]\\\" -map 0:v -map \\\"[a]\\\"

    2024年02月13日
    浏览(25)
  • 使用FFMPEG库封装264视频和acc音频数据到MP4文件中

    ffmepeg 4.4 一段H264的视频文件 一段acc格式的音频文件 1.使用avformat_open_input分别打开视频和音频文件,初始化其AVFormatContext,使用avformat_find_stream_info获取编码器基本信息 2.使用avformat_alloc_output_context2初始化输出的AVFormatContext结构 3.使用函数avformat_new_stream给输出的AVFormatContext结

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包