CAF文件的音频转换

发布于 2024-09-07 15:03:00 字数 338 浏览 7 评论 0原文

我正在 iPhone 上使用 kAudioFormatiLBC 将音频录制到 CAF 文件,录制效果很好。

我希望能够获取样本,并在通过 ruby​​ on Rails Web 服务将其上传到后将其转换为其他格式。

我正在尝试使用 sox 但得到:

sox in.caf out.mp3

sox 失败格式:无法打开输入文件“in.caf”:支持的文件格式,但不支持的编码。

与 ffmpeg 类似,我得到:

无法为 'in.caf' 找到合适的输出格式

有什么想法吗?

谢谢

I am recording audio on the iPhone to a CAF file with kAudioFormatiLBC, the recording works fine.

I want to be able to take a sample and also get it to convert to other formats after I have uploaded it to by ruby on rails webservice.

I am trying to use sox but get:


sox in.caf out.mp3

sox FAIL formats: can't open input file `in.caf': Supported file format but unsupported encoding.

Similar with ffmpeg I get:

Unable to find a suitable output format for 'in.caf'

Any ideas?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苍白女子 2024-09-14 15:03:00

我发现 ffmpeg 会翻译 aac 数据格式的 caf 文件。我正在 iPhone 上以 AAC 格式、22050Hz、1 通道捕捉语音。服务器端我可以使用 ffmpeg 将其转换为 .wav 格式,然后使用 sox 将其转换为 .mp3。

下面显示了在 FreeBSD 下运行 ffmpeg 的配置。

%ffmpeg -i test_aac_22050_1.caf test_pcm_22050_1.wav
FFmpeg version 0.6.3, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jul  7 2011 16:16:19 with gcc 4.2.1 20070719  [FreeBSD]
  configuration: --prefix=/usr/local --mandir=/usr/local/man --enable-shared --enable-    gpl --enable-postproc --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-x11grab --enable-memalign-hack --cc=cc --extra-cflags=-I/usr/local/include/vorbis -I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-pthread --disable-debug --enable-runtime-cpudetect --disable-sse --disable-mmx --disable-indev=alsa --disable-outdev=alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libdirac --enable-libfaac --enable-nonfree --enable-libfaad --enable-libfaadbin --disable-libgsm --disable-libmp3lame --disable-libopenjpeg --enable-libschroedinger --disable-ffplay --disable-libspeex --enable-libtheora --disable-vaapi --disable-vdpau --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.19. 0 /  1.19. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Input #0, caf, from 'test_aac_22050_1.caf':
  Duration: 00:00:09.89, start: 0.000000, bitrate: 44 kb/s
    Stream #0.0: Audio: aac, 22050 Hz, mono, s16, 30 kb/s
Output #0, wav, to 'test_pcm_22050_1.wav':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Audio: pcm_s16le, 22050 Hz, mono, s16, 352 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
size=     426kB time=9.89 bitrate= 352.8kbits/s    
video:0kB audio:426kB global headers:0kB muxing overhead 0.010087%

并确认输出:

%file test_pcm_22050_1.wav 
test_pcm_22050_1.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz

I've found ffmpeg will translate caf files with a data format of aac. I'm capturing voice on the iPhone in AAC format at 22050Hz, 1 channel. Server side I can translate it to .wav format with ffmpeg and then to .mp3 with sox.

The following shows the configuration for ffmpeg running under FreeBSD.

%ffmpeg -i test_aac_22050_1.caf test_pcm_22050_1.wav
FFmpeg version 0.6.3, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jul  7 2011 16:16:19 with gcc 4.2.1 20070719  [FreeBSD]
  configuration: --prefix=/usr/local --mandir=/usr/local/man --enable-shared --enable-    gpl --enable-postproc --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-x11grab --enable-memalign-hack --cc=cc --extra-cflags=-I/usr/local/include/vorbis -I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-pthread --disable-debug --enable-runtime-cpudetect --disable-sse --disable-mmx --disable-indev=alsa --disable-outdev=alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libdirac --enable-libfaac --enable-nonfree --enable-libfaad --enable-libfaadbin --disable-libgsm --disable-libmp3lame --disable-libopenjpeg --enable-libschroedinger --disable-ffplay --disable-libspeex --enable-libtheora --disable-vaapi --disable-vdpau --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.19. 0 /  1.19. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Input #0, caf, from 'test_aac_22050_1.caf':
  Duration: 00:00:09.89, start: 0.000000, bitrate: 44 kb/s
    Stream #0.0: Audio: aac, 22050 Hz, mono, s16, 30 kb/s
Output #0, wav, to 'test_pcm_22050_1.wav':
  Metadata:
    encoder         : Lavf52.64.2
    Stream #0.0: Audio: pcm_s16le, 22050 Hz, mono, s16, 352 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
size=     426kB time=9.89 bitrate= 352.8kbits/s    
video:0kB audio:426kB global headers:0kB muxing overhead 0.010087%

And confirming the output:

%file test_pcm_22050_1.wav 
test_pcm_22050_1.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
只有影子陪我不离不弃 2024-09-14 15:03:00

SOX 对 CoreAudio 文件处理的 libsndfile 有一个可选的依赖项。

如果您使用brew(1),请在brew sox之前运行brew install libsndfile。安装 libsndfile 后,您需要重建 sox。

SOX has an optional dependency on libsndfile for CoreAudio file processing.

If you use brew(1) run brew install libsndfile prior to brewing sox. You will need to rebuild the sox after you install libsndfile.

ペ泪落弦音 2024-09-14 15:03:00

如果您的服务器运行 OSX,您应该能够使用 afconvert。或者,使用不同的编解码器。

关于 iLBC 的维基百科文章有一些可能有用的链接。 http://ilbcfreeware.org/software.html 顶部链接到 RFC 和 awk 脚本用于提取参考源代码。

If your server is running OSX, you should be able to use afconvert. Alternatively, use a different codec.

The Wikipedia article on iLBC has a few links which might be useful. The top of http://ilbcfreeware.org/software.html links to the RFC and an awk script for extracting the reference source code.

绻影浮沉 2024-09-14 15:03:00

以下命令对我有用,您可能还需要

brew install sox --with-libsndfile

如果您想对 mp3 进行编码,

--with-lame

The following command worked for me

brew install sox --with-libsndfile

if you want to encode mp3 you may also need

--with-lame
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文