EXC_BAD_ACCESS con AVAssetExportSession y AVMutableComposition

Estoy grabando audio por separado de la creación de un video MPEG4 en una aplicación de iPhone. Estoy tratando de combinar estos usando AVAssetExportSession.

La sesión de audio utiliza 1 canal, kAudioFormatAppleLossless y AVAudioQualityMax. El video es AVVideoCodecH264, usando el tipo de formato de píxel kCVPixelFormatType_32ARGB. Este video sin audio se reproduce bien en mi iPhone a través de la biblioteca de fotos.

El exportador me dice que estos son los ajustes preestablecidos admitidos, estoy usando AVAssetExportPresetHighestQuality:

(
    AVAssetExportPresetAppleM4A,
    AVAssetExportPresetLowQuality,
    AVAssetExportPresetHighestQuality,
    AVAssetExportPreset640x480,
    AVAssetExportPresetMediumQuality
)

y me dice que este es el tipo de archivo compatible:

(
    "com.apple.quicktime-movie"
)

si cambio a AVAssetExportPresetPassthrough obtengo tipos de archivos de

(
    "com.apple.quicktime-movie",
    "com.apple.m4a-audio",
    "public.mpeg-4",
    "com.apple.m4v-video",
    "public.3gpp",
    "org.3gpp.adaptive-multi-rate-audio",
    "com.microsoft.waveform-audio",
    "public.aiff-audio",
    "public.aifc-audio"
)

He probado la película quicktime y mpeg 4 como outputFileType y sigo obteniendo los mismos resultados.

EDITAR: 10 de mayo

Crash se debió a un error bastante tonto. Ahora tengo audio y video ... ¡dulce!

La clave es la extensión .mp4, exportSession setOutputFileType: AVFileTypeQuickTimeMovie, presetName: AVAssetExportPresetPassthrough

preguntado el 10 de mayo de 11 a las 13:05

NSZombiesEnabled no muestra nada. Volveré y responderé algunas de mis viejas preguntas. -

1 Respuestas

Mi accidente fue un problema simple. El mayor problema que tuve fue usar la extensión de nombre de archivo incorrecta. Ahora estoy usando .mp4, AVFileTypeQuickTimeMovie y AVAssetExportPresetPassthrough.

contestado el 11 de mayo de 11 a las 19:05

Genial, me alegro de que hayas resuelto tu propio problema. Asegúrese de marcar la pregunta como respondida (con su propia respuesta) para que no aparezca como una pregunta sin respuesta :) - makdad

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.