Аудио конвертация файла CAF - PullRequest
2 голосов
/ 28 июня 2010

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

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

Я пытаюсь использовать sox, но получаю:

sox in.caf out.mp3<br/><br/> 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'

Есть идеи?

Спасибо

Ответы [ 4 ]

3 голосов
/ 08 июля 2011

Я обнаружил, что 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
3 голосов
/ 12 ноября 2013

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

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

0 голосов
/ 13 февраля 2017

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

brew install sox --with-libsndfile

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

--with-lame
0 голосов
/ 28 июня 2010

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

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

...