2010-06-28 125 views
2

我正在將iPhone上的音頻錄製到帶有kAudioFormatiLBC的CAF文件,錄製工作正常。CAF文件的音頻轉換

我希望能夠採取一個樣本,也可以通過ruby on rails webservice將其上傳到其他格式。

我想使用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

如果您的服務器正在運行OSX,你應該能夠使用afconvert。或者,使用不同的編解碼器。

維基百科有關iLBC的文章有幾個可能有用的鏈接。 http://ilbcfreeware.org/software.html的頂部鏈接到RFC和用於提取參考源代碼的awk腳本。

3

我發現ffmpeg會翻譯aac數據格式的caf文件。我以22050Hz,1通道的AAC格式捕獲iPhone上的語音。服務器端我可以用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 
3

SOX對libsndfile用於CoreAudio的文件處理的可選的依賴。

如果您在釀造sox之前使用brew(1)運行brew install libsndfile。安裝libsndfile後,您將需要重新構建sox。

0

下面的命令爲我工作

brew install sox --with-libsndfile 

,如果你要編碼的MP3,你可能還需要

--with-lame