使用ffmpeg将WAV转换为AIFF

使用ffmpeg将WAV转换为AIFF,ffmpeg,Ffmpeg,如何使用ffmpeg将wav文件转换为AIF文件 我需要使各种文件一在16位,一在24位和一在32位 我还需要做不同的采样率。例如,176400 kHz和44100 kHz中各有一个 我知道ffmpeg-I input-file.wav output file.aif将转换文件,但我不确定其余部分 表示ffmpeg支持AIFF,但没有关于AIFF编码的文档:查看libavformat/AIFF.h显示: static const AVCodecTag ff_codec_aiff_tags[] =

如何使用ffmpeg将wav文件转换为AIF文件

我需要使各种文件一在16位,一在24位和一在32位

我还需要做不同的采样率。例如,176400 kHz和44100 kHz中各有一个

我知道
ffmpeg-I input-file.wav output file.aif
将转换文件,但我不确定其余部分


表示ffmpeg支持AIFF,但没有关于AIFF编码的文档:

查看
libavformat/AIFF.h
显示:

static const AVCodecTag ff_codec_aiff_tags[] = {
    { AV_CODEC_ID_PCM_S16BE,    MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_S8,       MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_U8,       MKTAG('r','a','w',' ') },
    { AV_CODEC_ID_PCM_S24BE,    MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_S32BE,    MKTAG('N','O','N','E') },
    { AV_CODEC_ID_PCM_F32BE,    MKTAG('f','l','3','2') },
    { AV_CODEC_ID_PCM_F64BE,    MKTAG('f','l','6','4') },
    { AV_CODEC_ID_PCM_ALAW,     MKTAG('a','l','a','w') },
    { AV_CODEC_ID_PCM_MULAW,    MKTAG('u','l','a','w') },
    { AV_CODEC_ID_PCM_S24BE,    MKTAG('i','n','2','4') },
    { AV_CODEC_ID_PCM_S32BE,    MKTAG('i','n','3','2') },
    { AV_CODEC_ID_MACE3,        MKTAG('M','A','C','3') },
    { AV_CODEC_ID_MACE6,        MKTAG('M','A','C','6') },
    { AV_CODEC_ID_GSM,          MKTAG('G','S','M',' ') },
    { AV_CODEC_ID_ADPCM_G722,   MKTAG('G','7','2','2') },
    { AV_CODEC_ID_ADPCM_G726LE, MKTAG('G','7','2','6') },
    { AV_CODEC_ID_PCM_S16BE,    MKTAG('t','w','o','s') },
    { AV_CODEC_ID_PCM_S16LE,    MKTAG('s','o','w','t') },
    { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') },
    { AV_CODEC_ID_QDMC,         MKTAG('Q','D','M','C') },
    { AV_CODEC_ID_QDM2,         MKTAG('Q','D','M','2') },
    { AV_CODEC_ID_QCELP,        MKTAG('Q','c','l','p') },
    { AV_CODEC_ID_SDX2_DPCM,    MKTAG('S','D','X','2') },
    { AV_CODEC_ID_ADPCM_IMA_WS, MKTAG('A','D','P','4') },
    { AV_CODEC_ID_NONE,         0 },
};

其中一些仅在FFmpeg中提供解码支持。请参阅
ffmpeg-codecs
ffmpeg-encoders
或您提供的第一个链接。

您可以使用
-ar
选项设置采样率,并使用
-sample\u fmt
设置位深度

如果不指定
-acodec
它将默认为muxer的默认音频编解码器,即
aiff
文件的
pcm_s16be
,并且该编解码器不支持您想要的所有位深度

#对于目录中的每个wav文件,在每个位深度和采样率上创建一个aiff文件排列。
对于*.wav格式的文件;做
#钻头深度
对于16 24 32中的位_深度;做
#抽样率
采样率为44100 176400;做
#示例_fmt由编解码器确定,编解码器由muxer确定。
#因此,请检查用于您尝试转换为的文件的muxer:
#
#>ffmpeg-h muxer=aiff
#Muxer aiff[音频IFF]:
#常见扩展:aif、aiff、afc、aifc。
#Mime类型:音频/aiff。
#默认视频编解码器:png。
#默认音频编解码器:pcm_s16be。
#
#现在检查该编解码器的特定编码器名称:
#
#>ffmpeg-编解码器| grep-P'pcm_s\d\dbe'
#DEAI.S pcm_s16be pcm带符号16位大端字节
#DEAI.S pcm_s16be_平面pcm有符号16位大端平面
#DEAI.S pcm_s24be pcm带符号24位大端字节
#DEAI.S pcm_s32be pcm带符号32位大端字节
#DEAI.S pcm_s64be pcm带符号64位大端字节
#并确保对每一个都只使用适当的参数。
SAMPLE_FMT=“s${BIT_DEPTH}”
如果[“$BIT_DEPTH”-等式“24”];然后
#pcm_s24be编解码器仅支持s32示例_fmt(请使用“ffmpeg-h编码器=pcm_s24be”进行检查)
示例_FMT=“s32”
fi
ffmpeg-i“$FILE”-ar“$SAMPLING\u RATE”-sample\u fmt“$sample\u fmt”-y-acodec“pcm\u s${BIT\u DEPTH}为“${FILE%.wav}.$BIT\u DEPTH.$SAMPLING\u RATE.aiff”
完成
完成
完成
然后,您可以从使用
find*.aiff-exec ffprobe-v error-select_streams a:0-show_entries stream{}创建的aiff文件中获取详细信息以确保它们具有正确的采样率和位深度

ffmpeg的帮助输出:
└─[$]ffmpeg-h
ffmpeg版本4.3.1版权所有(c)2000-2020 ffmpeg开发者
使用Apple clang 12.0.0版(clang-1200.0.32.29)构建
配置:--prefix=/usr/local/cillar/ffmpeg/4.3.1_9--启用共享--启用pthreads--启用-version3--启用avresample--cc=clang--主机cflags=--主机ldflags=--启用ffplay--启用gnutls--启用gpl--启用libaom--启用libblubluray--启用-libdav1d--启用-libopus--启用librubberband--启用libopus--启用librubberband--启用libsnapy--enable libsrt--enable libtesseract--enable libthera--enable libvidstab--enable libvorbis--enable libvpx--enable libwebp--enable-libx264--enable-libx265--enable-libxml2--enable libxvid--enable libfontconfig--enable libfreetype--enable-frei0r--enable libass enable libopencore amrnb--启用libopencore amrwb--enable libopenjpeg--enable librtmp--enable libspeex--enable libsoxr--enable libzmq--enable libzimg--disable libjack--disable indev=jack--enable videotoolbox
libavutil 56。51.100 / 56. 51.100
libav编解码器58。91.100 / 58. 91.100
libav58格式。45.100 / 58. 45.100
libav58设备。10.100 / 58. 10.100
libav7。85.100 /  7. 85.100
libavresample4。00 /  4.  00
Libsw5。7.100 /  5.  7.100
libswresample 3。7.100 /  3.  7.100
Libroc 55。7.100 / 55.  7.100
超高速音频和视频编码器
用法:ffmpeg[options][[infle options]-i infle]。。。{[outfile选项]outfile}。。。
获取帮助:
-h—打印基本选项
-h long--打印更多选项
-h full——打印所有选项(包括所有特定于格式和编解码器的选项,非常长)
-h type=name——打印指定解码器/编码器/解复用器/复用器/过滤器/bsf/协议的所有选项
有关选项的详细说明,请参见man ffmpeg。
打印帮助/信息/功能:
-我出示执照
-h主题显示帮助
-? 主题显示帮助
-帮助主题显示帮助
--帮助主题显示帮助
-版本显示版本
-buildconf显示构建配置
-格式显示可用的格式
-多路复用器显示可用的多路复用器
-解复用器显示可用的解复用器
-设备显示可用的设备
-编解码器显示可用的编解码器
-解码器显示可用的解码器
-编码器显示可用的编码器
-BSF显示可用的位流过滤器
-协议显示可用的协议
-过滤器显示可用的过滤器
-pix_FMT显示可用的像素格式
-布局显示标准通道布局
-示例\u FMT显示可用的音频示例格式
-颜色显示可用的颜色名称
-源设备列出输入设备的源
-接收器设备列出输出设备的接收器
-hWatcels显示可用的硬件加速方法
全球期权(AFFC)