Аудио преобразование файла CAF

Я записываю звук на iPhone в файл CAF с помощью kAudioFormatiLBC, запись работает нормально.

Я хочу иметь возможность взять образец, а также преобразовать его в другие форматы после того, как я загрузил его на веб-сервис ruby ​​on rails.

Я пытаюсь использовать 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'

Любые идеи?

Спасибо


person John    schedule 28.06.2010    source источник


Ответы (4)


Я обнаружил, что ffmpeg будет переводить файлы caf с форматом данных aac. Я записываю голос на iPhone в формате AAC на частоте 22050 Гц, 1 канал. На стороне сервера я могу перевести его в формат .wav с помощью ffmpeg, а затем в .mp3 с помощью sox.

Ниже показана конфигурация для ffmpeg, работающего под 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%

И подтверждаем вывод:

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

SOX имеет необязательную зависимость от libsndfile для обработки файлов CoreAudio.

Если вы используете brew(1), запустите brew install libsndfile перед варкой sox. Вам нужно будет пересобрать sox после установки libsndfile.

person Alex Popov    schedule 12.11.2013

Если ваш сервер работает под управлением OSX, вы сможете использовать afconvert. В качестве альтернативы используйте другой кодек.

В статье Википедии на iLBC есть несколько полезных ссылок. Верхняя часть http://ilbcfreeware.org/software.html ссылается на RFC и скрипт awk. для извлечения эталонного исходного кода.

person tc.    schedule 28.06.2010

Следующая команда работала для меня

brew install sox --with-libsndfile

если вы хотите кодировать mp3, вам также может понадобиться

--with-lame
person Till Hoffmann    schedule 13.02.2017