Pregunta

Estoy teniendo un mal rato tratando de grabar algo que no sea PCM lineal en el iPhone :-( Las muestras que he encontrado (SDK SPEAKHERE, Zdziarski y libros de Sadun y el de trailsinthesand.com) todo el uso de PCM lineal, pero me gustaría un formato comprimido de uso común en vez (sin ima4 o cualquiera que sea el nombre es ...).

No puedo encontrar la manera de ajustar el código de ejemplo para ser utilizado con, por ejemplo, AAC, MP3 o AMR en su lugar. Todas las sugerencias y consejos sobre cómo hacer que son muy apreciados!

(Por cierto, no creo que un MP3-codificador AMR-codificador ni están disponibles debido a problemas de licencia, pero sí que existe AAC, o ???)

Editar / actualización: Me topé con el siguiente texto en "iPhone Application Programming Guide" de Apple, 2009-01-06, página 137, sección: Grabación de audio:
"Se puede grabar audio en cualquiera de los formatos que aparecen en‘preferidos Formatos de audio en el iPhone OS’(página 140)", y formatos de audio como preferidos en la página 140 es: "Para el audio comprimido durante la reproducción de un sonido a la vez, y cuando no es necesario para reproducir audio simultáneamente con la aplicación iPod, utilice el formato AAC empaquetado en un archivo CAF o M4A. "
Por lo tanto, interpreto eso como una indicación clara de que sí es, no sólo posible, sino incluso preferible, para grabar audio en formato AAC envuelto en un archivo M4A, que es justo lo que quiero. Pero aún así, no soy capaz de lograr eso?!

Gracias, / John

¿Fue útil?

Solución

Sigue buscando en esos documentos. En "Core Audio Essentials", la sección "Core Audio Plug-ins: Unidades de audio y códecs" señala que:

  

iPhone OS incluye la grabación   codecs enumerados en la Tabla 2-5. Como puedas   ver, ni tampoco MP3 AAC es la grabación   disponible. Esto se debe a la alta CPU   gastos generales, y la batería consiguiente   drene, de estos formatos.

La Tabla 2-5 enumera varios formatos, pero a medida que las notas de texto no incluye los que usted está buscando. Si desea que esos formatos que tendrá que traer su propio codificador.

Otros consejos

Es posible en el iPhone 3GS y el iPod segunda generación y superiores. Tienen un enconder hardware para la AAC. Hay un proyecto de ejemplo de Apple para este que hace exactamente lo que quiere hacer:

iPhoneExtAudioFileConvertTest

Un consejo para el uso FAAC convertir de archivos PCM lineal iPhone de salida al formato AAC:

He encontrado por experimentación que usted tiene que utilizar el -X bandera en la versión de línea de comandos de FAAC (que se ejecuta en Mac OS X), que "intercambia los bytes de entrada." (Supongo que cambia la endian-dad.)

Así, por ejemplo, si el audio grabado el archivo linear.pcm en su iPhone, usted podría continuación, ejecute:

faac -XP linear.pcm

en su Mac para convertir esto en el archivo AAC linear.aac.

supongo que esto significa que podría ser capaz de utilizar FAAC dentro de su aplicación para hacer la conversión, si quería, ya que es una biblioteca C.

Tenga en cuenta también que, técnicamente, la salida de los archivos de los servicios de audio de iPhone son generalmente archivos CAF, Core Audio Format, que es una especie de formato de envoltura alrededor de un montón de posibles codificaciones: noreferrer docs apple.com/library/archive/documentation/MusicAudio/Reference/CAFSpec/CAF_overview/CAF_overview.html de Apple en la CAF . La línea de comandos anterior funciona bien para mí, aunque caff comienza con la <=> cabecera.

¿Ha tratado ? O códecs FAAC / faad AAC? Puede incrustar en ffmpeg para los codecs de audio aún más.

¿Por qué no tratar TPAACAudioConverter escrito por el legendaria Michael Tyson?

  

TPAACAudioConverter es un simple clase Objective-C que realiza la   la conversión de cualquier archivo de audio a un M4A AAC codificados, de forma asíncrona   con un delegado, o convierte cualquier archivo de audio proporcionado por una clase de fuente de datos   (Que proporciona para grabar directamente a AAC).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top