¿Cómo transcodificar un video a formatting 16: 9 y variar la velocidad de bits (y quizás FPS)?

Digamos que UIImagePickerController un video de la biblioteca fotográfica utilizando UIImagePickerController y luego quiero exportarlo en un formatting 16×9 (por ejemplo, 960×540, 1280×720, 1920×1080), pero también quiero controlar la tasa de bits o fotogtwigs por segundo o cualquier otra cosa que puede ayudar a networkingucir el tamaño del video exportado. ¿Qué API debo usar para lograr estas (al less) dos o tres dimensiones (relación de aspecto, velocidad de bits, quizás FPS)?

Puedo usar (ya estamos usando) AVAssetExportSession y podríamos pnetworkingefinirnos como AVAssetExportPreset960x540 , AVAssetExportPreset1280x720 y AVAssetExportPreset1920x1080 para get la relación de aspecto 16: 9 (y hasta cierto punto para controlar el tamaño ya que cada uno de estos produce exportaciones de diferentes tamaños). Pero no creo que pueda controlar simultáneamente cosas como la velocidad de bits y el FPS. ¿Tengo que ir a una API diferente?

En una pregunta relacionada, veo que AVAssetExportSession tiene la propiedad boolean shouldOptimizeForNetworkUse que "indica si la película debe ser optimizada para uso de la networking" o no. ¿En qué consiste esta optimization?

¿Alguna vez has tratado de usar FFMPEG (biblioteca de terceros para esto)?

http://ffmpeg.org/