我正在使用kAudioFormatiLBC将iPhone上的音频录制到CAF文件,录制效果很好。
我希望能够获取一个示例,并且在我通过rails webservice上的ruby上传后将其转换为其他格式。
我正在尝试使用sox但得到:
sox in.caf out.mp3
sox FAIL formats: can't open input file `in.caf': Supported file format but unsupported encoding.
与ffmpeg类似,我得到:
Unable to find a suitable output format for 'in.caf'
有什么想法吗?
由于
答案 0 :(得分:3)
我发现ffmpeg会使用aac的数据格式翻译caf文件。我在AAC格式的iPhone上以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
答案 1 :(得分:3)
对于CoreAudio文件处理,SOX对libsndfile具有可选的依赖性。
如果您使用brew(1)在酿造sox之前运行brew install libsndfile
。安装libsndfile后,您需要重建sox。
答案 2 :(得分:0)
如果您的服务器正在运行OSX,您应该可以使用afconvert
。或者,使用不同的编解码器。
关于iLBC的维基百科文章有一些可能有用的链接。 http://ilbcfreeware.org/software.html的顶部链接到RFC和用于提取参考源代码的awk脚本。
答案 3 :(得分:0)
以下命令对我有用
brew install sox --with-libsndfile
如果你想编码mp3,你可能还需要
--with-lame