wav_pcm 的 FFmpeg 奇怪的编解码器 ID

Posted

技术标签:

【中文标题】wav_pcm 的 FFmpeg 奇怪的编解码器 ID【英文标题】:FFmpeg weird codec id for wav_pcm 【发布时间】:2020-08-12 10:01:48 【问题描述】:

所以,我想将大量 32 位 .wav 文件转换为 24 位 .wav 文件,因为我想将它们导入 Omnisphere,一个虚拟合成器。我尝试使用 FFmpeg 将它们全部转换,但 Omnisphere 不支持它们。然后我测试了一些东西,Omnisphere 似乎支持从 Edison 导出的音频,这是 FL Studio 音频编辑和录制工具。由于我不想单独导出它们,我想知道是否有任何方法可以在 FFmpeg 或其他音频转换器中解决此问题。以下是测试文件及其在 MediaInfo 中输出的内容:https://www.mediafire.com/file/l6lojwswsaq9fly/audiotest+wav.zip/file 32位原始文件:

General
Complete name                            : /home/user/Documents/audiotest wav/32bit.wav
Format                                   : Wave
File size                                : 905 KiB
Duration                                 : 2 s 625 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 2 823 kb/s
Writing application                      : Edison
Comment                                  : Recorded on 1/26/2020 in Edison.

Audio
Format                                   : PCM
Format profile                           : Float
Codec ID                                 : 3
Codec ID/Hint                            : IEEE 
Duration                                 : 2 s 625 ms
Bit rate mode                            : Constant
Bit rate                                 : 2 822 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Bit depth                                : 32 bits
Stream size                              : 904 KiB (100%)

从 Edison 导出的 24 位文件:

General
Complete name                            : /home/user/Documents/audiotest wav/edison.wav
Format                                   : Wave
File size                                : 679 KiB
Duration                                 : 2 s 625 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 2 118 kb/s
Writing application                      : Edison
Comment                                  : Recorded on 1/26/2020 in Edison.

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 2 s 625 ms
Bit rate mode                            : Constant
Bit rate                                 : 2 117 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Bit depth                                : 24 bits
Stream size                              : 678 KiB (100%)

用 FFmpeg 转换的 24 位文件:

General
Complete name                            : /home/user/Documents/audiotest wav/ffmpeg.wav
Format                                   : Wave
File size                                : 679 KiB
Duration                                 : 2 s 625 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 2 117 kb/s
Writing application                      : Lavf58.50.100
Comment                                  : Recorded on 1/26/2020 in Edison.

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 00000001-0000-0010-8000-00AA00389B71
Duration                                 : 2 s 625 ms
Bit rate mode                            : Constant
Bit rate                                 : 2 117 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Bit depth                                : 24 bits
Stream size                              : 678 KiB (100%)

【问题讨论】:

【参考方案1】:

FFmpeg 音频编解码器 pcm_s24le 似乎使用的是 Microsoft 媒体格式。

WMMEDIASUBTYPE_PCM:00000001-0000-0010-8000-00AA00389B71 https://docs.microsoft.com/en-us/windows/win32/wmformat/media-type-identifiers

根据.wav文件的定义,我使用十六进制编辑器手动将codecID更改为0x0001(PCM)。在那之后,一切似乎都很顺利,但我不知道它是否有潜在的影响。

【讨论】:

以上是关于wav_pcm 的 FFmpeg 奇怪的编解码器 ID的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg里有x264么

视频的编解码-编码篇

FFmpeg库视频解码初探(软硬件解码)

FFmpeg 支持的所有编解码器和格式是啥?

FFmpeg学习1:视频解码

第一章 FFmpeg简介