Estoy escribiendo una aplicación en la que estoy tratando de cambiar el tono del audio cuando estoy grabando una película (.m4v). O modificando el tono de audio de la película después. Quiero que el resultado final sea una película (.m4v) que tenga la longitud original (es decir, visual como el original) pero con un tono de sonido modificado, p. una "voz de ardilla". Una conversión en tiempo real es preferir si es posible.Modificar el tono de audio del clip grabado (m4v)
He leído mucho sobre cómo cambiar el tono de audio en iOS, pero la mayoría de los ejemplos se centran en la reproducción, es decir, reproducir el sonido con un tono diferente.
En mi aplicación, estoy grabando una película (.m4v/AVFileTypeQuickTimeMovie) y guardándola con el estándar AVAssetWriter. Al guardar la película Tengo acceso a los siguientes elementos en los que he intentado manipular el audio (por ejemplo, modificar el terreno de juego):
- búfer de audio (CMSampleBufferRef)
- escritor entrada de audio (AVAssetWriterAudioInput)
- opciones de audio escritor de entrada (por ejemplo AVNumberOfChannelsKey, AVSampleRateKey, AVChannelLayoutKey)
- escritor activo (AVAssetWriter)
he tratado de enganchar en los objetivos anteriores para modificar el aud io, pero sin éxito.
También he probado con Dirac como se describe aquí: Real Time Pitch Change In iPhone Using Dirac
Y OpenAL con AL_PITCH como se describe aquí: Piping output from OpenAL into a buffer
Y la biblioteca "BASS" de Un4seen: Change Pitch/Tempo In Realtime
no he tenido éxito con cualquiera de las libs anteriores, probablemente porque realmente no sé cómo usarlas, y dónde engancharlas en el código de ahorro de audio.
Parece que hay muchas bibliotecas que tienen efectos similares pero se centran en la reproducción o el código de grabación personalizado. Quiero manipular la transmisión de audio que ya obtuve (AVAssetWriterAudioInput) o modificar el clip de película guardado (.m4v). Quiero que el video no se modifique visualmente, es decir, que se reproduzca a la misma velocidad. Pero quiero que el audio sea más rápido (como una ardilla) o más lento (como un ... monstruo?
¿Tiene alguna sugerencia de cómo puedo modificar el tono en tiempo real (cuando grabo la película) o después? al convertir la película completa (archivo .m4v)? ¿Debo buscar más en Dirac, OpenAL, SoundTouch, BASS o alguna otra biblioteca?
Quiero poder compartir la película con otros con audio modificado, esa es la razón no puedo confiar en modificar el tono de reproducción solamente.