¿Cómo reproducir videos en iOS que se cargan manualmente desde un socket?

Bastante complicado, esto …

Estoy intentando transmitir un video (H264) a través de una networking en iOS. Sin embargo, estoy obteniendo los datos de video en un búfer a través de un socket abierto al server remoto (usando CocoaAsyncSocket), así que no tengo una URL del video que pueda usar para crear un AVAsset o un MPMoviePlayer. El video es una transmisión en vivo, por lo que los datos seguirán llegando (es decir, sin duración establecida) si eso marca alguna diferencia.

Estoy teniendo que hacerlo de esta manera, ya que el server es un server RTSP. He escrito mi propio cliente RTSP para el envío de commands y recepción de respuestas, y ahora estoy tratando de hacer algo útil con los datos de video que se transmiten a través de la connection.

¿Alguna idea sobre cómo puedo reproducir este video? Las únicas cosas que puedo pensar actualmente son, de alguna forma, save en un file y cargarlo (pero no veo cómo funcionará, ya que voy a cargar continuamente nuevos datos) o recurrir a hacerlo manualmente de alguna manera con algo como ffmpeg Y no, lamentablemente no puedo hacer que el server haga HTTP Live Streaming en su lugar.

¡Cualquier ayuda sería muy apreciada!

Aún no he tenido que profundizar profundamente en AVFoundation, pero podrías lograrlo creando un AVAsset con AVAssetWriter . Proporciona AVAssetWriter una instancia de AVAssetWriterInput que toma los datos de CMSampleBuffer y los empaqueta para AVAssetWriter .

Basado en los documentos para AVAssetWriterInput , está diseñado para tomar datos de una "fuente en time real".

Ojalá pudiera ser de más ayuda, pero espero que esto te guíe en la dirección correcta.